2

バックエンド API 用の Apigee プロキシがあります。API のリソースを定義しない場合、プロキシは単にパススルーとして機能します。リソースとして定義して明示的に許可するパスを除いて、デフォルトですべてのパスをブロックするにはどうすればよいですか?

たとえば、20 個のドメイン オブジェクトとそれぞれに 4 つの CRUD メソッドがあります。それは 80 の潜在的なリソースです。開発者がこれらのリソースのうち、たとえば 10 個のリソースにアクセスできるようにしたいと考えています。他の 70 人へのアクセスを簡単にブロックするにはどうすればよいですか?

私が求めているのは、バックエンド サービスを開発者に公開するために最小権限のアプローチを取る方法だと思いますか?

4

4 に答える 4

1

これらのリクエストをトラップする無効なパスを定義し、次の定義で障害ポリシーを発生させます。

<Flows>
    <Flow name="Purchase Item Details">
        <Description/>
        <Request>
            <Step>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/{purchase_id}") and (request.verb = "GET")</Condition>
    </Flow>
    <Flow name="Invalid Path"> <!-- THE MAGIC STARTS HERE -->
        <Description>Invalid Path</Description>
        <Request>
            <Step>
                <Name>raisefault-invalidpath</Name> <!-- RIGHT HERE -->
                <FaultRules/>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET") <!--*** RIGHT HERE *** --></Condition>
    </Flow>
</Flows>

上記の例では、「無効なパス」フローから上記のリソースをキャッチしようとします。/basepath/{purchase_id} との一致を試みます。リソースが見つからない場合、2 番目のフローがフォールトを発生させ、クライアントに応答を返すことにより、キャッチオールとして機能します。

于 2014-02-01T05:36:57.827 に答える
0

製品に煩わされることなく、URI のルートをリッスンする条件付きフローを作成できます (通常、これはフロー内に条件が定義されていないことを意味します)。そのフローには、障害を発生させる単一のポリシーを含めることができます。通常、この障害の応答コードを 404 に設定し、探しているリソースが存在しないことを示すメッセージを設定します。

于 2014-01-28T21:35:38.377 に答える