分享方式:


Azure SignalR Service 的受控識別

在 Azure SignalR Service 中,您可以使用 Microsoft Entra ID 的受控識別:

  • 取得存取權杖。
  • 存取 Azure Key Vault 中的祕密。

服務僅支援一個受控識別。 您可以建立系統指派或使用者指派的身分識別。 系統指派的身分識別專用於 Azure SignalR Service 執行個體,並在刪除執行個體時加以刪除。 使用者指派的身分識別的管理獨立於 Azure SignalR Service 資源。

本文說明如何為 Azure SignalR Service 建立受控識別,以及如何用於無伺服器案例。

必要條件

若要使用受控識別,您必須具備下列項目:

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶
  • Azure SignalR Service 資源。
  • 您要存取的上游資源,例如 Azure Key Vault 資源。
  • Azure Functions 應用程式 (函數應用程式)。

將受控識別新增至 Azure SignalR Service

您可以在 Azure 入口網站或 Azure CLI 中將受控識別新增至 Azure SignalR Service。 本文將示範如何在 Azure 入口網站中將受控識別新增至 Azure SignalR Service。

新增系統指派的身分識別

若要將系統指派的受控識別新增至 Azure SignalR Service 執行個體:

  1. 在 Azure 入口網站中,瀏覽至 Azure SignalR Service 執行個體。

  2. 選取 [身分識別]。

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

    Screenshot that shows selections for adding a system-assigned identity in the portal.

  4. 選取 [儲存]。

  5. 按一下 [是] 以確認變更。

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

若要將使用者指派的身分識別新增至 Azure SignalR Service 執行個體,您必須建立身分識別並將其新增至服務。

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

  2. 在 Azure 入口網站中,瀏覽至 Azure SignalR Service 執行個體。

  3. 選取 [身分識別]。

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

  5. 在 [使用者指派的受控識別] 下拉式功能表上,選擇身分識別。

    Screenshot that shows selections for adding a user-assigned identity in the portal.

  6. 選取 [新增]。

在無伺服器案例中使用受控識別

Azure SignalR Service 是完全受控服務。 該服務使用受控識別以取得存取權杖。 在無伺服器案例中,服務會將存取權杖新增至上流要求中的 Authorization 標頭。

在上游設定中啟用受控識別驗證

系統指派的身分識別使用者指派的身分識別新增至 Azure SignalR Service 執行個體之後,您可以在上游端點設定中啟用受控識別驗證:

  1. 在 Azure 入口網站中,瀏覽至 Azure SignalR Service 執行個體。

  2. 從功能表中選取 [設定]

  3. 選取 [無伺服器] 服務模式。

  4. 在 [新增上游 URL 模式] 文字方塊中,輸入上游端點 URL 模式。 請參閱 URL 範本設定

  5. 選取 [新增一個上游設定],然後選取任何星號。

    Screenshot that shows Azure SignalR Service settings for adding an upstream URL pattern.

  6. 在 [上游設定] 中,設定上游端點設定。

    Screenshot of upstream settings for Azure SignalR Service.

  7. 在受控識別驗證設定中,針對 [已發行權杖中的對象],您可以指定目標資源。 資源將會成為所取得存取權杖中的 aud 宣告,可用來作為上游端點驗證的一部分。 資源的格式可以是下列其中一種:

    • 服務主體的應用程式 (用戶端) 識別碼。
    • 服務主體的應用程式識別碼 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 中介軟體具有驗證存取權杖的內建功能。 您可以瀏覽 Microsoft 身分識別平台程式碼範例以尋找您選擇的語言之一。

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

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

Azure SignalR Service 可以使用受控識別存取 Key Vault 以取得祕密。

  1. 系統指派的身分識別使用者指派的身分識別新增至 Azure SignalR Service 執行個體。
  2. 在 Key Vault 的存取原則中授與受控識別的祕密讀取權限。 請參閱使用 Azure 入口網站指派 Key Vault 存取原則

您目前可以使用此功能以在上游 URL 模式中參考秘密

下一步