您现在访问的是微软AZURE全睃版技术文档网站,若需覝访问由世纪互蝔违蝥的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

使用 Azure Active Directory 对托管标识进行身份验证,以访问 Azure SignalR 资源

Azure SignalR 服务支持使用 Azure 资源的托管标识进行 Azure Active Directory (Azure AD) 身份验证。 Azure 资源的托管标识可以从 Azure 虚拟机 (VM)、函数应用、虚拟机规模集和其他服务中运行的应用程序使用 Azure AD 凭据授权对 Azure SignalR 服务资源的访问权限。 将 Azure 资源的托管标识与 Azure AD 身份验证结合使用,可避免将凭据随在云中运行的应用程序一起存储。

本文介绍如何使用托管标识授予对 Azure SignalR 服务的访问权限。

启用托管标识

在使用 Azure 资源的托管标识授予对 Azure SIgnalR 服务的访问权限之前,必须首先启用 Azure 资源的托管标识。

对于 VM 上的 Azure 资源

若要了解如何在 VM 上为 Azure 资源启用托管标识,请参阅下述文章之一:

对于 Azure Functions

请参阅如何使用应用服务和 Azure Functions 的托管标识

向 Azure AD 中的托管标识授予权限

若要通过应用程序中的托管标识授权对 Azure SignalR 服务的请求,请先为该托管标识配置基于角色的访问控制 (RBAC) 设置。 Azure SignalR 服务定义 RBAC 角色,这些角色包含用于获取 AccessKeyClientToken 的权限。 将 RBAC 角色分配给托管标识后,将在适当的范围内授予托管标识对 Azure SignalR 服务的访问权限。

按照以下说明来管理角色分配:

  1. Azure 门户中,导航到你的 SignalR 资源。

  2. 选择“访问控制(IAM)”,显示 Azure SignalR 的访问控制设置。

  3. 选择“角色分配” 选项卡以查看角色分配列表。 在工具栏上选择“添加”按钮,然后选择“添加角色分配”。

    工具栏上的“添加”按钮

  4. 在“添加角色分配” 页上,执行以下步骤:

    1. 选择“SignalR 服务所有者”作为角色。

    2. 通过搜索找到要为其分配该角色的 安全主体(用户、组、服务主体)。

    3. 选择“保存”以保存角色分配。

      将角色分配给应用程序

    4. 分配有该角色的标识列出在该角色下。 例如,下图显示应用程序 signalr-devsignalr-service 具有 SignalR 应用服务器角色。

      角色分配列表

可采用类似的步骤来分配限定为资源组或订阅范围的角色。 定义角色及其范围后,可以使用此 GitHub 位置提供的示例测试此行为。

有关分配 RBAC 角色的详细信息,请参阅使用 Azure Active Directory 进行身份验证以访问 Azure SignalR 服务资源

若要详细了解如何使用 Azure RBAC 和 Azure 门户管理对 Azure 资源的访问,请参阅此文

配置应用程序

应用服务器

AddAzureSignalR 时,添加以下选项:

services.AddSignalR().AddAzureSignalR(option =>
{
    option.ConnectionString = "Endpoint=https://<name>.signalr.net;AuthType=aad;Version=1.0;";
});

Azure Functions 应用

在 Azure 门户上,添加名称为 AzureSignalRConnectionString 且值为 Endpoint=https://<name>.signalr.net;AuthType=aad; 的应用程序设置。

在本地的 local.appsettings.json 文件中,添加到 Values 部分:

{
    "Values": {
        "AzureSignalRConnectionString": "Endpoint=https://<name>.signalr.net;AuthType=aad;Version=1.0;"
    }
}

后续步骤

请参阅以下相关文章: