OAuth エンドポイントについて

OAuth2 認可サーバーとしての Apigee Edge には、クライアントがトークンと認可コードをリクエストできるように、エンドポイントが公開されている必要があります。このトピックでは、これらのエンドポイントについて簡単に紹介し、Edge でエンドポイントをセットアップする方法を説明します。

OAuth2 エンドポイントとは

OAuth2 エンドポイントとは、クライアントが OAuth トークン(または認可コード)をリクエストするために呼び出す URL です。次にアクセス トークンのリクエストの例を示します。

    $ curl -i -H 'ContentType: x-www-form-urlencoded' \
    -X POST 'https://docs-test.apigee.net/oauth/client_credential/accesstoken' \
    -d 'grant_type=client_credentials' \
    -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ'
    

Apigee Edge 環境では、このようなリクエストを処理するポリシーが必要です。リクエストから推測できるように、ポリシーは「クライアント認証情報」の権限付与タイプをサポートしており、パス /oauth/client_credentials/accesstoken で実行される必要があります。

この場合の正しいポリシーは OAuthV2 ポリシーであり、次の例に示すようなフローで実行するように構成されています(ポリシー名は GenerateAccessTokenClient です)。

            <Flow name="AccessTokenClientCredential">
                <Description/>
                <Request>
                    <Step>
                        <FaultRules/>
                        <Name>GenerateAccessTokenClient</Name>
                    </Step>
                </Request>
                <Response/>
                <Condition>(proxy.pathsuffix MatchesPath &quot;/accesstoken&quot;) and (request.verb = &quot;POST&quot;)</Condition>
            </Flow>
    

クライアントが正しい認証情報を提供すると、ポリシーはトークンを生成して返します。それ以外の場合は、エラーを返します。

デフォルトのエンドポイントの特定

Apigee はデフォルトで、作成するすべての新しい組織にサンプルの OAuth2 エンドポイント プロキシを追加します。確認すれば、組織に oauth というプロキシがあるはずです。

このプロキシを見つけるには:

  1. Apigee Edge のアカウントにログインします。
  2. メインメニューで [APIs] > [API Proxies] を選択します。
  3. プロキシのリストで oauth というプロキシを選択します。
  4. プロキシの概要ページで [Develop] タブを選択すると、プロキシ エディタが表示されます。プロキシのポリシーとフローを調べます。

おすすめの方法: 独自の OAuth2 エンドポイント プロキシの作成

デフォルトの oauth プロキシは制限されています。クライアント認証情報の権限付与タイプのみがサポートされます。このプロキシは一例にすぎません。本番環境では、OAuth2 エンドポイントを構成するプロキシを作成して、要件を満たす必要があります。

重要な注意事項: OAuth2 エンドポイントを定義するプロキシは通常、No Target プロキシです。プロキシは、ProxyEndpoint で実行され、クライアントに直接返されるサービスとして機能します。

関連トピック

アクセス トークンと認可コードのリクエスト