Azure SignalR 服務的受控識別
在 Azure SignalR Service 中,您可以使用來自 Microsoft Entra ID 的受控識別來:
- 取得存取權杖。
- 存取 Azure 金鑰保存庫中的秘密。
服務僅支援一個受控識別。 您可以建立系統指派或使用者指派的身分識別。 系統指派的身分識別專用於您的 Azure SignalR Service 實例,並在您刪除實例時刪除。 使用者指派的身分識別是由 Azure SignalR Service 資源所獨立管理。
本文說明如何建立 Azure SignalR 服務的受控識別,以及如何在無伺服器案例中使用。
必要條件
若要使用受控識別,您必須具有下列專案:
- Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
- Azure SignalR 服務資源。
- 您想要存取的上游資源,例如 Azure 金鑰保存庫 資源。
- Azure Functions 應用程式(函式應用程式)。
將受控識別新增至 Azure SignalR 服務
您可以在 Azure 入口網站 或 Azure CLI 中將受控識別新增至 Azure SignalR Service。 本文說明如何在Azure 入口網站中將受控識別新增至 Azure SignalR Service。
新增系統指派的身分識別
若要將系統指派的受控識別新增至 Azure SignalR Service 實例:
在Azure 入口網站中,流覽至您的 Azure SignalR Service 實例。
選取 [身分識別]。
在 [ 系統指派] 索引 標籤上,將 [狀態 ] 切換 為 [ 開啟 ]。
選取 [儲存]。
按一下 [是] 以確認變更。
新增使用者指派的身分識別
若要將使用者指派的身分識別新增至 Azure SignalR Service 實例,您需要建立身分識別,然後將它新增至服務。
根據 這些指示 建立使用者指派的受控識別資源。
在Azure 入口網站中,流覽至您的 Azure SignalR Service 實例。
選取 [身分識別]。
在 [ 使用者指派] 索引 標籤上,選取 [ 新增 ]。
在 [ 使用者指派的受控識別] 下拉式功能表上,選取身分識別。
選取新增。
在無伺服器案例中使用受控識別
Azure SignalR Service 是完全受控的服務。 它會使用受控識別來取得存取權杖。 在無伺服器案例中,服務會將存取權杖新增至 Authorization
上游要求中的標頭。
在上游設定中啟用受控識別驗證
將系統指派的 身分識別或 使用者指派 的身分識別新增 至 Azure SignalR Service 實例之後,您可以在上游端點設定中啟用受控識別驗證:
在Azure 入口網站中,流覽至您的 Azure SignalR Service 實例。
從功能表中選取 [設定]。
選取無 伺服器服務模式。
在 [ 新增上游 URL 模式 ] 文字方塊中,輸入上游端點 URL 模式。 請參閱 URL 範本設定 。
選取 [新增一個上游設定 ],然後選取任何星號。
在 上游設定 中,設定上游端點設定。
在受控識別驗證設定中,針對 發行的權杖 中的 [物件],您可以指定目標 資源 。 資源 將會成為
aud
所取得存取權杖中的宣告,其可作為上游端點驗證的一部分。 資源可以是下列其中一種格式:- 服務主體的應用程式 (用戶端) 識別碼。
- 服務主體的應用程式識別碼 URI。
重要
使用空的資源會以動作方式取得 Microsoft Graph 的權杖目標。 和今天一樣,Microsoft Graph 會啟用權杖加密,因此應用程式無法驗證 Microsoft Graph 以外的權杖。 在常見的做法中,您應該一律建立服務主體來代表上游目標。 並設定 您所建立服務主體的應用程式識別碼或 應用程式識別碼 URI 。
函式應用程式中的驗證
您可以使用 Azure 入口網站,輕鬆地設定函式應用程式的存取驗證,而不需變更程式碼:
在Azure 入口網站中,移至函式應用程式。
從選單中選擇 驗證。
選取 [ 新增識別提供者 ]。
在 [ 基本] 索引 標籤的 [識別提供者 ] 下拉式清單中,選取 [Microsoft ]。
在 [要求未通過驗證 時採取的動作] 中,選取 [ 使用 Microsoft Entra ID 登入]。
預設會選取建立新註冊的選項。 您可以變更註冊的名稱。 如需啟用 Microsoft Entra 提供者的詳細資訊,請參閱 設定 App Service 或 Azure Functions 應用程式以使用 Microsoft Entra ID 登入 。
移至 Azure SignalR 服務,並遵循 步驟 來新增系統指派的身分識別或使用者指派的身分識別。
在 Azure SignalR Service 中,移至 [上游設定 ],然後選取 [使用受控識別 ],然後 從現有的應用程式 選取 [選取]。 選取您先前建立的應用程式。
設定這些設定之後,函式應用程式將會拒絕標頭中沒有存取權杖的要求。
驗證存取權杖
如果您未使用 WebApp 或 Azure 函式,您也可以驗證權杖。
標頭中的 Authorization
權杖是 Microsoft 身分識別平臺存取權杖 。
若要驗證存取權杖,您的應用程式也應該驗證物件和簽署權杖。 這些權杖必須根據 OpenID 探索檔中的值進行驗證。 如需範例,請參閱與 租使用者無關的檔 版本。
Microsoft Entra 中介軟體具有用來驗證存取權杖的內建功能。 您可以流覽 Microsoft 身分識別平臺程式碼範例 ,以尋找您選擇的語言。
示範如何處理權杖驗證的程式庫和程式碼範例可供使用。 也有數個開放原始碼合作夥伴程式庫可供 JSON Web 權杖 (JWT) 驗證使用。 幾乎每個平臺和語言都有至少一個選項。 如需 Microsoft Entra 驗證程式庫和程式碼範例的詳細資訊,請參閱 Microsoft 身分識別平臺驗證程式庫 。
使用受控識別進行金鑰保存庫參考
Azure SignalR Service 可以使用受控識別來存取金鑰保存庫以取得秘密。
- 將系統指派的身 分識別或 使用者指派的 身分識別新增至您的 Azure SignalR Service 實例。
- 在 金鑰保存庫 的存取原則中授與受控識別的秘密讀取權限。 請參閱 使用 Azure 入口網站指派金鑰保存庫存取原則。
目前,您可以使用這項功能來 參考上游 URL 模式 中的秘密。