瞭解 OAuth 端點

本頁適用於 ApigeeApigee Hybrid

查看 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 上執行。

這是已設定為接受 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>
...

如果用戶端提供正確的憑證,政策就會產生並傳回權杖;否則會傳回錯誤。

相關主題

如要進一步瞭解所有支援的授權類型和範例程式碼,請參閱「取得 OAuth 2.0 權杖」一文。