你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
除了 Azure SignalR 服务提供的默认域外,还可以向服务添加自定义域名系统(DNS)域。 本文介绍如何将自定义域添加到 Azure SignalR 服务资源。
Prerequisites
- 通过 Azure 应用服务或非Microsoft注册机构注册的自定义域。
- 具有活动订阅的 Azure 帐户。 如果没有帐户,可以免费创建一个帐户。
- Azure 资源组。
- Azure SignalR 服务资源。
- 一个 Azure 密钥保管库实例。
- 存储在 Key Vault 实例中的自定义域 TLS/SSL 证书。 有关详细信息,请参阅 Key Vault 证书入门。
- Azure DNS 区域(可选)。
添加自定义证书
在添加自定义域之前,需要添加自定义 TLS/SSL 证书。 Azure SignalR 服务资源通过托管标识访问密钥保管库中存储的证书。
注意
自定义域功能是高级层功能。 可以将标准层资源升级到高级层,而无需停机。
在 Azure SignalR 服务中启用托管标识
可以使用系统分配的或用户分配的托管标识。 本文演示如何使用系统分配的托管标识。
在 Azure 门户中,转到 Azure SignalR 服务资源。
在左窗格中,选择“标识”。
在“系统分配”选项卡中,将“状态”切换为“启用”。
选择“保存”。 当系统提示启用系统分配的托管标识时,请选择“ 是”。
创建标识后,将显示对象(主体)ID。 Azure SignalR 服务使用系统分配的托管标识的对象 ID 来访问密钥保管库。 托管标识的名称与 Azure SignalR 服务实例的名称相同。 在下一部分中,使用该名称或对象 ID 搜索主体(托管标识)。
向托管标识授予对密钥保管库的访问权限
Azure SignalR 服务使用 托管标识 访问密钥保管库。 必须向托管标识授予对密钥保管库的访问权限。
授予权限的步骤取决于你选择了 保管库访问策略 还是 Azure 基于角色的访问控制 作为密钥保管库权限模型。
如果使用“保管库访问策略”作为密钥保管库权限模型,请按照此过程添加新的访问策略。
转到密钥保管库资源。
在左窗格中,选择 “访问策略”。
选择“创建”。
在 “权限 ”选项卡上:
- 在 “机密权限”下,选择“ 获取”。
- 在 “证书权限”下,选择“ 获取”。
选择“下一步”,转到“主体”选项卡。
在搜索框中输入该托管身份的对象 ID。
从搜索结果中选择该托管标识。
选择“查看 + 创建”选项卡。
在“查看 + 创建”选项卡上,选择“创建”。
Azure SignalR 服务实例的托管标识列在访问策略表中。
将自定义证书添加到 Azure SignalR 服务资源
若要将自定义证书添加到 Azure SignalR 服务资源,请执行以下步骤:
在 Azure 门户中,转到 Azure SignalR 服务资源。
在左窗格中,选择“ 自定义域”。
在“自定义证书”下,选择“添加”。
输入自定义证书的名称。
若要选择 Key Vault 证书,请 从 Key Vault 中选择。 选择后, Key Vault 基本 URI 和 Key Vault 机密名称 会自动填充。 或者,手动填写字段。
(可选)如果要将证书固定到特定版本,可以为 Key Vault 机密版本 指定值。
选择 添加 。
Azure SignalR 服务提取证书并验证其内容。 成功后, 预配状态 会显示证书的 “成功 ”。
创建自定义域 CNAME 记录
必须在 Azure DNS 区域中或使用非Microsoft注册机构服务为自定义域创建 CNAME 记录。
CNAME 记录创建从自定义域到 Azure SignalR 服务默认域的别名。 Azure SignalR 服务使用记录来验证自定义域的所有权。
例如,如果默认域是contoso.service.signalr.net,而自定义域是contoso.example.com,那么您需要在CNAME上创建一个example.com记录。
创建 CNAME 记录后,可以执行 DNS 查找来查看 CNAME 信息。 在此示例中,(DNS 查找)命令的 linux dig 输出类似于以下输出:
contoso.example.com. 0 IN CNAME contoso.service.signalr.net.
如果使用 Azure DNS 区域,请参阅 “管理 DNS 记录 ”,了解如何添加 CNAME 记录。
如果使用其他 DNS 提供程序,请按照提供程序的指南创建记录 CNAME 。
添加自定义域
现在,将自定义域添加到 Azure SignalR 服务资源。
在 Azure 门户中,转到 Azure SignalR 服务资源。
在左窗格中,选择“ 自定义域”。
在“自定义域”下,选择“添加”。
输入自定义域的名称。
输入自定义域的完整域名。 例如,使用 contoso.com。
选择适用于此自定义域的自定义证书。
选择 添加 。
验证自定义域
若要验证自定义域,可以使用运行状况 API。 健康API是一个公共终结点,用于返回Azure SignalR服务实例的运行状况状态。 可通过 https://<your custom domain>/api/health 获取运行状况 API。
下面是使用 cURL 的示例:
PS C:\> curl.exe -v https://contoso.example.com/api/health
...
> GET /api/health HTTP/1.1
> Host: contoso.example.com
< HTTP/1.1 200 OK
它应返回 200 状态代码而不出现任何证书错误。
在专用网络中访问 Key Vault
如果将 专用终结点 配置为密钥保管库,Azure SignalR 服务无法通过公用网络访问密钥保管库。 可以通过创建 共享专用终结点,通过专用网络向 Azure SignalR 服务授予对密钥保管库的访问权限。
创建共享专用终结点后,添加自定义证书。 有关详细信息,请参阅 将自定义证书添加到 Azure SignalR 服务资源。
重要说明
无需更改密钥保管库 URI 中的域。 例如,如果密钥保管库基 URI 是 https://contoso.vault.azure.net,则使用此 URI 来配置自定义证书。
无需在密钥保管库防火墙设置中显式允许 Azure SignalR 服务 IP 地址。 有关详细信息,请参阅 Key Vault 专用链接诊断。
证书轮换
如果在创建自定义证书时未指定机密版本,Azure SignalR 服务会定期检查 Key Vault 中的最新版本。 发布新版本时,将会自动应用该版本。 延迟通常在一小时内。
或者,可以将自定义证书固定到 Key Vault 中的特定机密版本。 需要应用新证书时,可以编辑机密版本,然后主动更新自定义证书。
清理资源
如果不打算使用本文中创建的资源,可以删除资源组。
警告
删除资源组会删除其中包含的所有资源。 如果本文范围之外的资源存在于指定的资源组中,则它们也会被删除。