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. 下記の手順に従って [API Proxies] ページにアクセスします。

    Edge

    Edge UI を使用して [API Proxies] ページにアクセスするには:

    1. apigee.com/edge にログインします。
    2. 左側のナビゲーション バーで [Develop] > [API Proxies] を選択します。
    3. [+Proxy] をクリックします。

    Classic Edge(Private Cloud)

    Classic Edge UI を使用して [API Proxies] ページにアクセスするには:

    1. http://ms-ip:9000 にログインします。ここで、ms-ip は、Management Server ノードの IP アドレスまたは DNS 名です。
    2. 上部のナビゲーション バーで [APIs] > [API Proxies] を選択します。
  2. プロキシのリストで oauth というプロキシを選択します。
  3. プロキシの概要ページで [Develop] タブを選択すると、プロキシ エディタが表示されます。プロキシのポリシーとフローを調べます。

ベスト プラクティス: 独自の OAuth2 エンドポイント プロキシの作成

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

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

関連トピック

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