適用於:所有 APIM 層
在本文中,你將了解如何在你的 Azure API Management 實例中設定身份識別提供者以進行管理的 連線。 適用於下列常見提供者的設定:
- Microsoft Entra
- 一般 OAuth 2
您可以在 API 管理 實例的認證管理員中設定認證提供者。 關於如何設定Microsoft Entra提供者與連線的逐步範例,請參見 Configure credential manager - Microsoft Graph API。
先決條件
若要在 APIM 中設定任何支援的提供者,必須先在識別提供者中,設定用來授權 API 存取權的 OAuth 2.0 應用程式。 如需設定詳細資料,請參閱提供者的開發人員文件。
如果您要建立使用授權碼授與類型的認證提供者,請在應用程式中設定重新導向 URL (有時稱為授權回呼 URL 或類似名稱)。 值請輸入
https://authorization-manager.consent.azure-apim.net/redirect/apim/<API-management-instance-name>。視您的案例而定,設定應用程式設定,例如範圍 (API 許可權)。
至少,取得以下應用程式憑證,這些憑證會在 API 管理中設定:應用程式的 客戶端 ID 與 客戶端秘密 (客戶端秘密並非聯邦身份憑證所必需)。
視提供者和您的案例而定,您可能需要擷取其他設定,例如授權端點 URL 或範圍。
提供者的授權端點必須能夠從您的 API 管理執行個體透過網際網路存取。 如果您的 API 管理執行個體在虛擬網路中受到保護,請設定網路或防火牆規則以允許存取提供者的端點。
此外,憑證的請求必須從客戶的網路發出,發送到憑證管理端點,該端點仍位於 Microsoft 網路中。 要到達憑證管理器端點,允許虛擬網路對 443 埠的 AzureConnections 服務標籤進行外發存取。
Microsoft Entra 提供者
API 管理憑證管理器支援 Microsoft Entra 身份提供者,該服務是 Azure 中的身份服務,提供身份管理與存取控制功能。 它使用戶能夠透過業界標準協定安全地登入。
支援的授權類型:授權碼、用戶端憑證、帶有聯邦身份憑證的授權碼
附註
目前,Microsoft Entra 憑證提供者僅支援 Azure Active Directory v1.0 端點。
微軟 Entra 提供者設定
| 屬性 | 描述 | 必要 | 預設 |
|---|---|---|---|
| 認證提供者名稱 | API 管理中認證提供者資源的名稱。 | 是 | N/A |
| 身分識別提供者 | 選擇 Azure Active Directory v1。 | 是 | N/A |
| 撥款類型 | 要使用的 OAuth 2.0 授權授與類型。 根據你的情境,選擇授權 碼、 客戶憑證,或 是帶有聯邦身份憑證的授權碼。 |
是 | 授權碼 |
| 授權 URL | 授權 URL。 | 否 | https://login.microsoftonline.com |
| 用戶端識別碼 | 用來識別 Microsoft Entra 應用程式的應用程式(用戶端)ID。 | 是 | N/A |
| 客戶端密碼 | 用於 Microsoft Entra 應用程式的用戶端密碼。 | 對於授權碼和客戶端憑證授予類型是可以的,但對於聯邦身份憑證則不可以。 | N/A |
| 資源網址 | 需要授權之資源的 URL。 範例: https://graph.microsoft.com |
是 | N/A |
| 租用戶標識碼 | 你 Microsoft Entra 應用程式的租戶 ID。 | 否 | 共通 |
| 範圍 | 一個或多個 API 權限用於你的 Microsoft Entra 應用程式,並以空格分隔。 範例: ChannelMessage.Read.All User.Read |
否 | Microsoft Entra 應用程式中設定的 API 權限 |
關於使用聯邦身分識別憑證授權類型的授權碼額外設定:
| 屬性 | 描述 | 必要 | 預設 |
|---|---|---|---|
| 簽發者 | 聯邦身份提供者的發行者網址。 | 是 | https://login.microsoftonline.com/<tenant-id>/v2.0 |
| 主體標識碼 | 由 API Management 為憑證管理器產生的主體識別符。 | 是 | N/A |
| 觀眾 | 受眾會向聯邦身份提供者索取代幣。 | 是 | api://AzureADTokenExchange |
泛型 OAuth 提供者
您可以使用三個一般提供者來配置連線:
- 泛型 OAuth 2.0
- 使用 PKCE 的一般 OAuth 2.0
- 通用 OAuth 2.1 搭配 PKCE 與動態用戶端註冊(DCR)
泛型提供者可讓您根據您的特定需求使用自己的 OAuth 身分識別提供者。
附註
如果您的身分提供者支援,建議您使用 PKCE 提供者來提高安全性。 欲了解更多資訊,請參閱代碼交換的證明密鑰。
支援的授與類型:授權碼和用戶端認證 (視提供者而定)
一般認證提供者設定
| 屬性 | 描述 | 必要 | 預設 |
|---|---|---|---|
| 認證提供者名稱 | API 管理中認證提供者資源的名稱。 | 是 | N/A |
| 身分識別提供者 | 選取 [OAuth 2.0]、[ OAuth 2.0 with PKCE] 或 [OAuth 2.1 with PKCE with DCR]。 | 是 | N/A |
| 撥款類型 | 要使用的 OAuth 2.0 授權授與類型。 根據案例與識別提供者,選取 [授權碼] 或 [用戶端認證]。 |
是 | 授權碼 |
| 授權 URL | 授權端點 URL。 | 是的,對於 PKCE | 未用於 OAuth 2.0 |
| 用戶端識別碼 | 用於向識別提供者的授權伺服器識別應用程式的識別碼。 | 是 | N/A |
| 客戶端密碼 | 應用程式用來向身分識別提供者的授權伺服器進行驗證的密碼。 | 是 | N/A |
| 重新整理 URL | 您的應用程式用來發出要求的 URL,以便將重新整理權杖交換為更新的存取權杖。 | 是的,對於 PKCE | 未用於 OAuth 2.0 |
| 伺服器網址 | 基底伺服器 URL。 | 是,對於具有 PKCE 和 DCR 的 OAuth 2.1 | N/A |
| 權杖 URL | 識別提供者授權伺服器上用於以程式設計方式要求權杖的 URL。 | 是 | N/A |
| 範圍 | 允許應用程式執行的一或多個特定動作,或可代表使用者向 API 要求的資訊,以空格分隔。 範例: user web api openid |
否 | N/A |
其他身分識別提供者
API 管理支援多個熱門 SaaS 服務提供者,包括 GitHub、LinkedIn 等。 當你建立憑證提供者時,可以在 Azure 入口網站的清單中選擇這些提供者。
支援的授權類型:授權碼
這些提供者的必要設定會因提供者而異,但與 一般 OAuth 提供者的設定類似。 請參閱各個提供者的開發人員文件。
附註
目前,該 Salesforce 供應商的代幣中並未包含到期聲明。 因此,憑證管理器無法偵測這些憑證何時到期,也不會暴露強制刷新機制。 使用 Salesforce 供應商時,你需要自訂刷新邏輯,手動重新授權連線,當現有權杖到期時取得新的權杖。
相關內容
- 深入了解如何在 APIM 管理連線。
- 建立一個連線,支援 Microsoft Graph API 或 GitHub API。