共用方式為


關於 API 認證和認證管理員

適用於:所有 APIM 層

為了協助您管理後端 API 的存取權,您的 APIM 執行個體包含認證管理員。 使用認證管理員來管理、儲存及控制來自 APIM 執行個體之 API 認證的存取權。

附註

  • 目前,您可以使用認證管理員設定和管理後端 OAuth 2.0 API 的連線 (先前稱為授權)。
  • 認證管理員不會引進任何重大變更。 OAuth 2.0 認證提供者和資源提供者會使用現有的 APIM 授權 API 和資源提供者。

附註

目前,此功能無法在工作區中使用。

OAuth 2.0 API 的受控連線

使用認證管理員,您可以大幅簡化跨一或多個使用 OAuth 2.0 的後端或 SaaS 服務驗證及授權使用者、群組及服務主體的流程。 使用 API 管理 的認證管理員,您可以輕鬆地設定 OAuth 2.0、同意、取得權杖、在認證存放區中快取權杖,以及重新整理權杖,而不需要撰寫任何程式碼。 使用存取原則,將驗證委派給 APIM 執行個體、服務主體、使用者或群組。 如需 OAuth 2.0 的背景,請參閱 Microsoft 身分識別平台和 OAuth 2.0 授權碼流程

此功能可讓您公開有或沒有訂閱金鑰的 API、使用後端服務的 OAuth 2.0 授權,以及降低透過服務整合來提升、實作和維護安全功能的開發成本。

API 管理認證管理員和支援的 SaaS 識別提供者的圖表。

使用案例範例

使用 APIM 中管理的 OAuth 連線,客戶可以輕鬆地連線到使用 OAuth 2.0 的 SaaS 提供者或後端服務。 以下是一些範例:

  • 輕鬆地透過附加已儲存的授權憑證和轉送請求,連接到 SaaS 後端。

  • 透過連結授權權杖,通過 Proxy 處理對 Azure App Service Web 應用程式或 Azure Functions 後端的要求,其稍後可將要求傳送至套用轉換邏輯的 SaaS 後端。

  • 透過附加多個存取權杖來向 GraphQL 聯合後端發送代理請求,以便更輕鬆地實現聯合。

  • 公開擷取權杖端點、取得快取的權杖,以及代表使用者從任何計算呼叫 SaaS 後端;例如,主控台應用程式或 Kubernetes 精靈 。 以支援的語言合併您最愛的 SaaS SDK。

  • 連線到多個 SaaS 後端時的 Azure Functions 自動案例。

  • Durable Functions 更接近具有 SaaS 連線的 Logic Apps。

  • 透過 OAuth 2.0 連線,APIM 中的每個 API 都可作為 Logic Apps 自訂連接器。

認證管理員如何運作?

認證管理員中的權杖認證包含兩個部分:管理執行階段

  • 認證管理員中的 管理 部分負責設定和設定 OAuth 2.0 權杖的 認證提供者 、啟用身分提供者的同意流程,以及設定一或多個與認證提供者的 連線 以存取認證。 如需詳細資訊,請參閱連線管理

  • 執行階段組件使用 get-authorization-context 原則來擷取與儲存連線的存取和重新整理權杖。 當呼叫進入 API 管理系統並執行get-authorization-context原則時,系統會先驗證現有的授權 Token 是否有效。 如果授權權杖已過期,APIM 會使用 OAuth 2.0 流程,重新整理來自識別提供者的已儲存權杖。 然後,存取權杖會用來授權存取後端服務。 如需詳細資訊,請參閱連線執行階段

何時使用認證管理員?

以下是使用認證管理員的三種案例。

設定案例

設定認證提供者和連線之後,API 管理員可以測試連線。 API 管理員會設定測試後端 OAuth API,以使用執行個體的受控識別來使用 get-authorization-context 原則。 然後,API 管理員可以藉由呼叫測試 API 來測試連線。

認證管理員的初始設定案例的圖表。

自動情節

根據預設,建立連線時,會針對 APIM 執行個體的受控識別預先設定存取原則和連線。 若要使用這類連線,不同的使用者可以登入用戶端應用程式,例如靜態 Web 應用程式,然後呼叫透過 API 管理 公開的後端 API。 若要進行此呼叫,會使用 get-authorization-context 原則套用連線。 由於 API 呼叫會使用與使用者內容無關的預先設定連線,因此會將相同的資料傳回給所有使用者。

認證管理員的受控識別案例的圖表。

已出席 (使用者委派) 案例

若要為呼叫需要使用者內容的後端 SaaS API 的用戶端應用程式 (例如靜態 Web 應用程式) 的使用者啟用簡化的驗證體驗,您可以代表 Microsoft Entra 使用者或群組身分識別啟用連線的存取權。 在此情況下,已設定的使用者只需要登入並提供一次同意,之後 API 管理 實例會建立和管理其連線。 當 APIM 取得要轉送至外部服務的傳入呼叫時,它會將存取權杖從連線附加至要求。 當 API 請求和回應面向個人時 (例如,擷取使用者特定的設定檔資訊),這是理想的選擇。

認證管理員的使用者委派案例的圖表。

如何設定認證管理員?

需求

  • 必須為 APIM 執行個體啟用受控系統指派身分識別。

  • APIM 執行個體必須在連接埠 443 (HTTPS) 上輸出連線到網際網路。

可用性

  • 所有 APIM 服務層級

  • 自我裝載閘道不支援

  • 主權雲端或以下區域不支援:australiacentral, australiacentral2, indiacentral

逐步範例

安全性考量

存取權杖和其他祕密 (例如,用戶端密碼) 會以信封加密的形式進行加密,並儲存在多租用戶的內部儲存體。 資料會使用 AES-128 加密,使用每個資料唯一的金鑰。 那些金鑰會以非對稱方式,對儲存在 Azure Key Vault 的主要憑證進行加密,且每月輪替。

限制

資源 限制
每個服務執行個體的認證提供者數量上限 1,000
每個認證提供者的連線數目上限 10,000
每個連線的存取原則數目上限 100
每個連線每分鐘授權要求數目上限 250

常見問題集 (FAQ)

何時會重新整理存取權杖?

對於授權碼類型的連線,存取憑證會重新整理,如下所示:

在執行階段get-authorization-context執行此項原則時,API管理會檢查儲存的存取權杖是否有效。 如果權杖已過期或即將到期,APIM 會使用重新整理權杖,從已設定的識別提供者擷取新的存取權杖和新的重新整理權杖。 若重新整理權杖已過期,即會擲回錯誤,而且連線必須先重新授權,才能運作授權。

若用戶端密碼在識別提供者端到期,會發生什麼事?

在執行階段,API 管理無法擷取新權杖,並發生錯誤。

  • 如果連線類型為 授權碼,則需要在認證提供者層級更新用戶端密碼。

  • 如果連線的類型是 用戶端認證,則需要在連線層級更新用戶端密碼。

此功能是否支援在 VNet 中執行 APIM?

是,只要為 AzureConnectors 服務標籤啟用連接埠 443 上的輸出連線即可。 如需詳細資訊,請參閱虛擬網路設定參考

若認證提供者遭到刪除,會發生什麼事?

也會刪除所有基礎連接和存取原則。

存取權杖是否由 APIM 進行快取?

在傳統和 v2 服務層中,APIM 執行個體會快取存取權杖,直到權杖到期前三分鐘為止。 如果存取權杖距離到期時間不到三分鐘,則快取的時間將持續到存取權杖到期為止。

不會在使用量階層中快取存取權杖。