Azure Web PubSub 服務的受控識別

本文說明如何為 Azure Web PubSub 服務建立受控識別,並說明如何使用。

重要

Azure Web PubSub 服務只能支援一個受控識別。 這表示您可以新增系統指派的身分識別或使用者指派的身分識別。

新增系統指派的身分識別

若要在 Azure 入口網站中設定受控識別,則須先建立 Azure Web PubSub 服務執行個體,再啟用該功能。

  1. 像平常一樣在入口網站中建立 Azure Web PubSub 服務執行個體。 在入口網站中瀏覽至該執行個體。

  2. 選取 [身分識別]。

  3. [系統指派] 索引標籤上,將 [狀態] 切換為 [開啟]。 選取 [儲存]。

    Add a system-assigned identity in the portal

新增使用者指派的身分識別

若要建立具有使用者指派身分識別的 Azure Web PubSub 服務執行個體,您需要先建立身分識別,然後將其資源識別碼新增到服務中。

  1. 根據這些指示建立使用者指派的受控識別資源。

  2. 像平常一樣在入口網站中建立 Azure Web PubSub 服務執行個體。 在入口網站中瀏覽至該執行個體。

  3. 選取 [身分識別]。

  4. [使用者指派] 索引標籤上,選取 [新增]

  5. 搜尋先前已建立的身分識別並加以選取。 選取 [新增]。

    Add a user-assigned identity in the portal

在用戶端事件案例中使用受控識別

Azure Web PubSub 服務是完全受控的服務,因此您無法使用受控識別手動取得權杖, 相反地,當 Azure Web PubSub 服務將事件傳送至事件處理常式時,則會使用受控識別來取得存取權杖。 服務接著會在 HTTP 要求中的 Authorization 標頭中設定存取權杖。

在事件處理常式設定中啟用受控識別驗證

  1. 新增系統指派或使用者指派的身分識別。

  2. 瀏覽至 [設定中樞設定],然後新增或編輯事件處理常式上游。

    msi-setting

  3. 在 [驗證] 區段中,選取 [使用驗證] 並勾選 [指定已發行的權杖對象]。 對象將會成為所取得存取權杖中的 aud 宣告,可用來作為事件處理常式驗證的一部分。 您可以選擇下列其中一個方法:

    • 從現有的 Microsoft Entra 應用程式選取。 您將使用您選擇的應用程式識別碼。
    • 服務主體的應用程式識別碼 URI。

    重要

    使用空的資源會實際取得以 Microsoft Graph 為目標的權杖。 像現在一樣,Microsoft Graph 會啟用權杖加密,因此應用程式無法驗證 Microsoft Graph 以外的權杖。 在常見的做法中,您應該一律建立服務主體來代表上游目標。 並且設定您所建立服務主體的 [應用程式識別碼] 或 [應用程式識別碼 URI]

函式應用程式中的驗證

您可以使用 Azure 入口網站,輕鬆地設定函式應用程式的存取驗證,而不需變更程式碼:

  1. 在 Azure 入口網站中,移至函式應用程式。

  2. 從選單中選擇 驗證

  3. 選取 [新增識別提供者]

  4. 在 [基本] 索引標籤的 [識別提供者] 下拉式清單中,選取 [Microsoft]

  5. 在 [當要求未經驗證時所要採取的動作] 中,選取 [使用 Microsoft Entra ID 登入]

  6. 預設會選取建立新註冊的選項。 您可以變更註冊的名稱。 如需啟用 Microsoft Entra 提供者的詳細資訊,請參閱設定 App Service 或 Azure Functions 應用程式以使用 Microsoft Entra ID 登入

    Screenshot that shows basic information for adding an identity provider.

  7. 移至 Azure SignalR Service,並遵循步驟來新增系統指派的身分識別或使用者指派的身分識別。

  8. 在 Azure SignalR Service 中,移至 [上游設定],然後選取 [使用受控識別] 和 [從現有的應用程式選取]。 選取您先前建立的應用程式。

完成這些設定之後,函式應用程式會拒絕標頭中沒有存取權杖的要求。

驗證存取權杖

如果您未使用 WebApp 或 Azure 函式,您也可以驗證權杖。

Authorization 標頭中的權杖是 Microsoft 身分識別平台存取權杖

為了驗證存取權杖,應用程式也應該驗證對象及簽署權杖。 這些都需要對 OpenID 探索文件中的值進行驗證。 例如,請參閱租用戶獨立版文件

Microsoft Entra 中介軟體具有驗證存取權杖的內建功能。 您可以瀏覽我們的樣本以尋找您選擇的語言之一。

我們提供示範如何處理權杖驗證的程式庫和程式碼範例。 也有數個開放原始碼合作夥伴程式庫可供 JSON Web 權杖 (JWT) 驗證使用。 幾乎每個平台和語言都有至少一個選項。 如需有關 Microsoft Entra 驗證程式庫和程式碼範例的詳細資訊,請參閱 Microsoft 身分識別平台驗證程式庫

特別是,如果事件處理常式裝載於 Azure Function 或 Web Apps,則較簡單的方式是設定 Microsoft Entra 登入

使用受控識別作為 Key Vault 參考

Web PubSub 服務可以使用受控識別存取 Key Vault 以取得密碼。

  1. 為 Azure Web PubSub 服務新增系統指派的身分識別或使用者指派的身分識別。

  2. 在 Key Vault 的 [存取] 原則中授與受控識別的密碼讀取權限。 請參閱,使用 Azure 入口網站指派 Key Vault 存取原則

此功能目前可用於下列案例:

  • 使用 {@Microsoft.KeyVault(SecretUri=<secret-identity>)} 語法從事件處理常式 URL 範本設定中的 KeyVault 取得祕密。

下一步