進階 OAuth 2.0 主題

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

使用第三方 OAuth 憑證

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

指定多個重新導向 URI

使用授權碼授權類型時,您必須在註冊開發人員應用程式時指定重新導向 URI。重新導向 URI 會指定應用程式的 URI,該應用程式會代表用戶端應用程式接收授權碼。用戶端要求授權碼和權杖時,必須將這個 URI 傳送至 Apigee,且 redirect_uri 參數必須與註冊的參數相符。另請參閱「取得 OAuth 2.0 權杖」。

例如:

https://mydomain.com/authorize?\
client_id=123456&\
response_type=code&\
redirect_uri=https%3A%2F%2Fmydomain.com%2Fcallback&scope=scope1%20scope2&state=abc

在單一 Proxy 應用程式中指定多個重新導向 URI 的使用案例。舉例來說,您可能需要驗證多個網域。舉例來說:

  • https://mydomain.com/callback
  • https://mydomain.uk/callback
  • https://mydomain.ja/callback

如要在開發人員應用程式中指定多個重新導向 URI,請在開發人員應用程式 UI 的「回呼網址」欄位中,以逗號分隔清單的形式加入這些 URI。例如:

https://mydomain.com/callback,https://mydomain.uk/callback,https://mydomain.ja/callback

請注意,/authorize 要求在 redirect_uri 參數中只能攜帶一個 URI。 只要重新導向 URI 符合開發人員應用程式 UI 中「回呼網址」欄位指定的其中一個 URI,要求就會成功。

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

根據預設,OAuthv2 政策的 GenerateAuthCode 作業會傳回 302, 重新導向至 重新導向 URI,並包含含有授權碼的 ?code 查詢參數。

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

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

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

您可能需要驗證應用程式使用者是否已授權應用程式。您可以使用 Apigee Audit API 進行驗證。

Outbound OAuth 範例

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