Share via


使用 Azure SignalR 服務的 Microsoft Entra 識別碼授權存取權

Azure SignalR Service 支援 Microsoft Entra 識別碼,以授權對其資源的要求。 使用 Microsoft Entra ID,您可以使用角色型存取控制 (RBAC) 將許可權授與 安全性主體 。 安全性主體是使用者/資源群組、應用程式或服務主體,例如系統指派的身分識別和使用者指派的身分識別。

Microsoft Entra ID 會驗證安全性主體,並傳回 OAuth 2.0 權杖。 權杖接著會用來授權對 Azure SignalR 服務資源的要求。

使用 Microsoft Entra ID 來授權對 Azure SignalR Service 的要求,相較于存取金鑰授權,提供更高的安全性和便於使用性。 強烈建議您盡可能使用 Microsoft Entra ID 進行授權,因為它可確保具有最低必要許可權的存取權。

重要

停用本機驗證可能會產生下列結果:

  • 目前一組存取金鑰會永久刪除。
  • 使用目前一組存取金鑰簽署的權杖變得無法使用。

Microsoft Entra ID 的概觀

當安全性主體嘗試存取 Azure SignalR 服務資源時,必須授權要求。 使用 Microsoft Entra ID 取得資源的存取權需要兩個步驟:

  1. Microsoft Entra ID 會驗證安全性主體,然後傳回 OAuth 2.0 權杖。
  2. 權杖會當做要求傳遞至 Azure SignalR 服務資源的一部分,以授權要求。

使用 Microsoft Entra 識別碼進行用戶端驗證

當您使用存取金鑰時,金鑰會在您的應用程式伺服器(或函式應用程式)與 Azure SignalR Service 資源之間共用。 Azure SignalR Service 會使用共用金鑰來驗證用戶端連線要求。

當您使用 Microsoft Entra 識別碼時,沒有共用金鑰。 相反地,Azure SignalR Service 會使用 暫時存取金鑰 來簽署用戶端連線中使用的權杖。 工作流程包含四個步驟:

  1. 安全性主體需要來自 Microsoft Entra ID 的 OAuth 2.0 權杖,才能自行驗證。
  2. 安全性主體會呼叫 SignalR 驗證 API,以取得暫時存取金鑰。
  3. 安全性主體會在交涉期間使用用戶端連線的暫時存取金鑰簽署用戶端權杖。
  4. 用戶端會使用用戶端權杖來連線到 Azure SignalR 服務資源。

暫時存取金鑰會在 90 分鐘內到期。 我們建議您取得新的 ,並每小時輪替舊的一次。

工作流程內建在 適用于應用程式伺服器的 Azure SignalR Service SDK 中。

指派 Azure 角色以取得存取權限

Microsoft Entra ID 會透過 Azure RBAC 授與受保護資源的存取權限。 Azure SignalR Service 會定義一組 Azure 內建角色,其中包含存取 Azure SignalR 服務資源的常見許可權集合。 您也可以定義自訂角色來存取 Azure SignalR 服務資源。

資源範圍

您可能必須判斷安全性主體應該具備的存取範圍,才能將任何 Azure RBAC 角色指派給安全性主體。 我們建議您只授與最窄的範圍。 在更廣泛的範圍內定義的 Azure RBAC 角色會由其下方的資源繼承。

您可以從最窄的範圍開始,在下列層級設定 Azure SignalR Service 資源的存取範圍。

影響範圍 描述
個別資源 僅適用于目標資源。
資源群組 適用于資源群組中的所有資源。
訂用帳戶 適用于訂用帳戶中的所有資源。
管理群組 適用于管理群組中包含的訂用帳戶中的所有資源。

適用于 Azure SignalR Service 資源的 Azure 內建角色

角色 描述 使用案例
SignalR App Server 存取 WebSocket 連線建立 API 和驗證 API。 最常用於應用程式伺服器。
SignalR 服務擁有者 所有資料平面 API 的完整存取權,包括 REST API、WebSocket 連線建立 API 和驗證 API。 針對無伺服器模式 使用 Microsoft Entra ID 進行授權,因為它需要 REST API 許可權和驗證 API 許可權。
SignalR REST API 擁有者 資料平面 REST API 的完整存取權。 通常用來撰寫可管理連線和群組的工具,但不會 建立連線或呼叫驗證 API。
SignalR REST API 讀取器 資料平面 REST API 的唯讀存取權。 通常用來撰寫只 呼叫 Azure SignalR Service 資料平面唯讀 REST API 的監視工具。

下一步