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 "/accesstoken") and (request.verb = "POST")</Condition> </Flow>
クライアントが正しい認証情報を提供すると、ポリシーはトークンを生成して返します。それ以外の場合は、エラーを返します。
デフォルトのエンドポイントの特定
Apigee はデフォルトで、作成するすべての新しい組織にサンプルの OAuth2 エンドポイント プロキシを追加します。確認すれば、組織に oauth というプロキシがあるはずです。
このプロキシを見つけるには:
- 下記の手順に従って [API Proxies] ページにアクセスします。
Edge
Edge UI を使用して [API Proxies] ページにアクセスするには:
- apigee.com/edge にログインします。
- 左側のナビゲーション バーで [Develop] > [API Proxies] を選択します。
- [+Proxy] をクリックします。
Classic Edge(Private Cloud)
Classic Edge UI を使用して [API Proxies] ページにアクセスするには:
http://ms-ip:9000
にログインします。ここで、ms-ip は、Management Server ノードの IP アドレスまたは DNS 名です。- 上部のナビゲーション バーで [APIs] > [API Proxies] を選択します。
- プロキシのリストで oauth というプロキシを選択します。
- プロキシの概要ページで [Develop] タブを選択すると、プロキシ エディタが表示されます。プロキシのポリシーとフローを調べます。
ベスト プラクティス: 独自の OAuth2 エンドポイント プロキシの作成
デフォルトの oauth プロキシは制限されています。クライアント認証情報の権限付与タイプのみがサポートされます。このプロキシは一例にすぎません。本番環境では、OAuth2 エンドポイントを構成するプロキシを作成して、要件を満たす必要があります。
重要な注意事項: OAuth2 エンドポイントを定義するプロキシは通常、No Target プロキシです。プロキシは、ProxyEndpoint で実行され、クライアントに直接返されるサービスとして機能します。