進階 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 查詢參數。

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

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

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

您可能需要驗證應用程式使用者是否授權應用程式。您可以使用 Apigee Audit API 執行此操作。

Outbound OAuth 範例

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