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

Apigee がジョブを OAuth2 認証サーバーとして使用するには、クライアントがトークンと認証コードをリクエストできるエンドポイントを公開する必要があります。このトピックでは、これらのエンドポイントについて簡単に紹介し、Apigee でエンドポイントを設定する方法を説明します。

OAuth2 エンドポイントとは

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

$ curl -i -H "ContentType: x-www-form-urlencoded" \
-X POST "https://apitest.acme.com/oauth/client_credential/accesstoken" \
-d "grant_type=client_credentials" \
-H "Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ"

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

これは、client_credentials 付与タイプを受け付けるよう構成された OAuthV2 ポリシーのサンプルです。このポリシーで構成できる任意の構成要素については、OAuthV2 ポリシーをご覧ください。

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <SupportedGrantTypes>
      <GrantType>client_credentials</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

ここでは、アクセス トークンを生成するためのエンドポイント構成のサンプルを示します。これにより GenerateAccessToken ポリシーが実行されます。このポリシーは、client_credentials 付与タイプをサポートするように構成する必要があります。

...
       <Flow name="generate-access-token">
            <Request>
                <Step>
                    <Name>GenerateAccessToken</Name>
                </Step>
            </Request>
            <Response/>
            <Condition>(proxy.pathsuffix MatchesPath "/token") and (request.verb = "POST")</Condition>
        </Flow>
...

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

関連トピック

サポートされているすべての付与タイプとサンプルコードについては、アクセス トークンと認証コードのリクエストをご覧ください。