進階 OAuth 2.0 主題

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

使用第三方 OAuth 憑證

請參閱「使用第三方 OAuth 權杖」。

指定多個回呼網址

使用授權碼授權類型時,您必須在註冊開發人員應用程式時指定回呼網址。回呼網址通常會指定應用程式的網址,該應用程式會代表用戶端應用程式接收授權碼。此外,這個網址字串也會用於驗證。用戶端必須在要求授權碼和存取權杖時,將這個網址傳送至 Apigee Edge,且 redirect_uri 參數必須與註冊的參數相符。另請參閱「要求存取權杖和授權碼」。

例如:

http://myorg-test.apigee.net/weather/oauth/authorizationcode?client_id=123456&response_type=code&redirect_uri=http://example.com/callback&scope=scope1%20scope2&state=abc

在單一 Proxy 應用程式中指定多個回呼網址,是其中一種使用案例。舉例來說,您可能需要驗證多個網域。例如:

  • http://myexample.com/callback
  • http://myexample.uk/callback
  • http://myexample.ja/callback

註冊開發人員應用程式時,Edge 不支援指定多個回呼網址或使用萬用字元。如要達成這個用途,您可以在註冊開發人員應用程式時指定空白的回呼網址,然後在 JavaScript 政策中加入邏輯,驗證傳入的重新導向 URI。

變更 GenerateAuthCode 作業的預設傳回行為

根據預設,OAuthV2 政策的 GenerateAuthCode 作業會傳回 302 重新導向至回呼網址,並在 ?code 查詢參數中包含授權碼。

在某些情況下,您可能會想變更這項行為。舉例來說,您可能想傳回含有程式碼的結構化 JSON,並以 200 回應。

如要達成這個用途,其中一種方法是將 OAuthV2 政策的 GenerateResponse 屬性設為 false。 使用 ExtractVariable 政策,從變數 oauthv2authcode.{policy_name}.code 取得授權碼的值。接著,您可以使用 AssignMessage 政策,以狀態為 200 的 JSON 酬載傳回代碼。

稽核應用程式使用者同意聲明

您可能需要驗證應用程式使用者是否已授權應用程式。如要進行驗證,請使用 Apigee Edge 稽核 API

外送 OAuth 範例

請參閱 GitHub 上 Apigee api-platform-samples 存放區中的 outbound-oauth 範例。您可以複製、部署及執行範例。這個範例會使用 Microsoft Azure 翻譯工具 API 翻譯推文。為此,系統會發出外送呼叫來取得 OAuth 存取權杖,然後使用 API 服務快取政策快取權杖,每次發出外送呼叫時都會重複使用快取的權杖。此外,也包含用於叫用 API Proxy 的示範瀏覽器應用程式。