建立受控識別
本文將向您展示如何在 Azure Web PubSub 中建立和使用受控識別。
重要
Azure Web PubSub 只能支援一個受控識別。 您可以新增系統指派的身分識別或使用者指派的身分識別 [任一項]。
新增系統指派的身分識別
若要在 Azure 入口網站中設定受控識別,請建立 Azure Web PubSub 執行個體,然後開啟功能。
在 Azure 入口網站中,建立 Web PubSub 資源。 移至入口網站中的資源。
在左側功能表上,選取 [身分識別]。
選取 [系統指派] 索引標籤,然後將 [狀態] 設定為 [開啟]。 選取 [儲存]。
新增使用者指派的身分識別
若要使用使用者指派的身分識別建立 Web PubSub 資源,請建立身分識別,然後將身分識別的資源識別碼新增至您的服務中。
在 Azure 入口網站中,建立 Web PubSub 資源。 移至入口網站中的資源。
在左側功能表上,選取 [身分識別]。
選取 [使用者指派] 索引標籤,然後選取 [新增]。
搜尋已建立的身分識別並選取。 選取 [新增]。
在用戶端事件案例中使用受控識別
Azure Web PubSub 是完全受管理的服務,因此您不能使用受控識別手動取得權杖。 相反,當 Web PubSub 向事件處理常式傳送事件時,它使用受控識別來取得存取權杖。 然後,服務在 HTTP 要求的 Authorization
標頭中設定存取權杖。
為事件處理常式設定受控識別驗證
新增系統指派或使用者指派的身分識別。
移至 [設定中樞設定],並新增或編輯上游事件處理常式。
在 [驗證] 下,選取 [使用受控識別],然後選取 [指定已核發的權杖對象] 核取方塊。 對象成為存取權杖中的
aud
宣告。 宣告可以作為事件處理常式驗證的一部分。對於驗證,您可以選擇以下選項之一:
- 使用現有 Microsoft Entra 應用程式。 將使用您選擇的應用程式之應用程式識別碼。
- 使用服務主體的應用程式識別碼 URI。
重要
使用空資源實際上會取得 Microsoft Graph 的權杖目標。 目前,Microsoft Graph 支援權杖加密,因此不支援應用程式對權杖進行驗證,除非使用 Microsoft Graph。 您應該一律建立服務主體來代表上游目標。 為您建立的服務主體設定 [應用程序識別碼] 或 [應用程式識別碼 URI] 值。
Azure Functions 應用程式中的驗證
您可以輕鬆設定 Functions 應用程式的存取驗證,而無需變更程式碼。
在 Azure 入口網站中,移至 Functions 應用程式。
在左側功能表中,選取 [驗證]。
選取 [新增識別提供者]。
在 [基本] 索引標籤上,針對 [識別提供者] 選取 [Microsoft]。
針對 [當要求未經驗證時所要採取的動作] 中,選取 [使用 Microsoft Entra ID 登入]。
預設會選取建立新註冊的選項。 您可以變更註冊的名稱。 如需如何啟用 Microsoft Entra 提供者的詳細資料,請參閱 [設定您的 Azure App Service 或 Azure Functions 應用程式以使用 Microsoft Entra ID 登入]。
在 Web PubSub 資源的左側功能表上,選取 [設定]。
選取 [編輯] 以編輯您的中樞設定,然後選取 [編輯] 以編輯您的事件處理常式設定。 在 [驗證] 下,選取 [使用受控識別],然後選取 [從現有應用程式中選取] 核取方塊。 選取您建立的應用程式。
設定這些設定後,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 可以使用受控識別存取金鑰保存庫以取得祕密。
為 Azure Web PubSub 新增系統指派的身分識別或使用者指派的身分識別。
在金鑰保存庫中,使用存取原則為受控識別授與祕密讀取權限。 如需詳細資訊,請參閱 [在 Azure 入口網站中指派金鑰保存庫存取原則]。
此功能目前可在以下案例中使用:
- 使用語法
{@Microsoft.KeyVault(SecretUri=<secret-identity>)}
從事件處理常式 URL 範本設定中的金鑰保存庫取得祕密。