了解 OAuth 端点

您正在查看 Apigee X 文档。
查看 Apigee Edge 文档。

作为 OAuth2 授权服务器,Apigee 需要公开客户端可请求令牌和授权代码的端点。本主题简要介绍这些端点,并说明如何在 Apigee 中设置这些端点。

什么是 OAuth2 端点?

OAuth2 端点是一个网址,客户端调用该网址以请求 OAuth 令牌(或授权代码)。以下是访问令牌的示例请求:

$ 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 上执行。

这是一个示例 OAuthV2 政策,配置为接受 client_credentials 授权类型。如需了解可以使用此政策进行配置的可选配置元素的信息,请参阅 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>
...

如果客户端提供了正确的凭据,则政策会生成并返回一个令牌;否则,将返回错误。

相关主题

如需详细了解所有支持的授权类型和示例代码,请参阅请求访问令牌和授权代码