瞭解 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 政策才能處理這項要求。如您從上述範例要求推斷,政策必須支援「client credentials」授權類型,並在路徑 /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 權杖」。