分享方式:


建立受控識別

本文將向您展示如何在 Azure Web PubSub 中建立和使用受控識別。

重要

Azure Web PubSub 只能支援一個受控識別。 您可以新增系統指派的身分識別或使用者指派的身分識別 [任一項]

新增系統指派的身分識別

若要在 Azure 入口網站中設定受控識別,請建立 Azure Web PubSub 執行個體,然後開啟功能。

  1. 在 Azure 入口網站中,建立 Web PubSub 資源。 移至入口網站中的資源。

  2. 在左側功能表上,選取 [身分識別]

  3. 選取 [系統指派] 索引標籤,然後將 [狀態] 設定為 [開啟]。 選取 [儲存]。

    顯示在 Azure 入口網站中新增系統指派的身分識別之螢幕擷取畫面。

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

若要使用使用者指派的身分識別建立 Web PubSub 資源,請建立身分識別,然後將身分識別的資源識別碼新增至您的服務中。

  1. 建立 [使用者指派的受控識別資源]

  2. 在 Azure 入口網站中,建立 Web PubSub 資源。 移至入口網站中的資源。

  3. 在左側功能表上,選取 [身分識別]

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

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

    顯示在 Azure 入口網站中新增使用者指派的身分識別之螢幕擷取畫面。

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

Azure Web PubSub 是完全受管理的服務,因此您不能使用受控識別手動取得權杖。 相反,當 Web PubSub 向事件處理常式傳送事件時,它使用受控識別來取得存取權杖。 然後,服務在 HTTP 要求的 Authorization 標頭中設定存取權杖。

為事件處理常式設定受控識別驗證

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

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

    顯示 [設定中樞設定] 窗格上要使用的設定之螢幕擷取畫面。

  3. 在 [驗證] 下,選取 [使用受控識別],然後選取 [指定已核發的權杖對象] 核取方塊。 對象成為存取權杖中的 aud 宣告。 宣告可以作為事件處理常式驗證的一部分。

    對於驗證,您可以選擇以下選項之一:

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

    重要

    使用空資源實際上會取得 Microsoft Graph 的權杖目標。 目前,Microsoft Graph 支援權杖加密,因此不支援應用程式對權杖進行驗證,除非使用 Microsoft Graph。 您應該一律建立服務主體來代表上游目標。 為您建立的服務主體設定 [應用程序識別碼] 或 [應用程式識別碼 URI] 值。

Azure Functions 應用程式中的驗證

您可以輕鬆設定 Functions 應用程式的存取驗證,而無需變更程式碼。

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

  2. 在左側功能表中,選取 [驗證]

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

  4. 在 [基本] 索引標籤上,針對 [識別提供者] 選取 [Microsoft]

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

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

    顯示新增識別提供者的基本資訊之螢幕擷取畫面。

  7. 移至您的 Web PubSub 資源,並 [新增系統指派的身分識別或使用者指派的身分識別]

  8. 在 Web PubSub 資源的左側功能表上,選取 [設定]

  9. 選取 [編輯] 以編輯您的中樞設定,然後選取 [編輯] 以編輯您的事件處理常式設定。 在 [驗證] 下,選取 [使用受控識別],然後選取 [從現有應用程式中選取] 核取方塊。 選取您建立的應用程式。

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

驗證存取權杖

如果您沒有使用 Azure App Service 或 Azure Functions 的 Web Apps 功能,您也可以驗證權杖。

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

若要驗證存取權杖,您的應用程式也應該驗證對象及簽署權杖。 簽署權杖必須根據 OpenID 探索文件中的值進行驗證。 例如,請參閱租用戶獨立版文件

Microsoft Entra 中介軟體具有驗證存取權杖的內建功能。 您可以瀏覽我們的 [範例],以尋找用您想要使用的語言編寫的範例。

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

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

使用受控識別作為金鑰保存庫參考

Web PubSub 可以使用受控識別存取金鑰保存庫以取得祕密。

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

  2. 在金鑰保存庫中,使用存取原則為受控識別授與祕密讀取權限。 如需詳細資訊,請參閱 [在 Azure 入口網站中指派金鑰保存庫存取原則]

此功能目前可在以下案例中使用:

  • 使用語法 {@Microsoft.KeyVault(SecretUri=<secret-identity>)} 從事件處理常式 URL 範本設定中的金鑰保存庫取得祕密。
  • [教學課程:透過使用 Azure Functions 和 Azure Web PubSub 建立無伺服器即時聊天應用程式]