使用 Microsoft Entra ID 授权应用程序请求
Azure Web PubSub 支持使用 Microsoft Entra ID 从应用程序授权请求。
本文将介绍如何配置 Web PubSub 资源和代码,以从 Azure 应用程序为 Web PubSub 资源请求授权。
注册应用程序
第一步是注册 Azure 应用程序。
- 在 Azure 门户中,搜索并选择“Microsoft Entra ID”。
- 在左侧菜单的“管理”下,选择“应用注册”。
- 选择新注册。
- 对于“名称”,请输入要为应用程序使用的名称。
- 选择“注册”以确认应用程序注册。
注册应用程序后,请转到应用程序概述,查看“应用程序(客户端)ID”和“目录(租户)ID”的值。 你将在以下部分中使用这些值。
有关注册应用程序的详细信息,请参阅快速入门使用 Microsoft 标识平台注册应用程序。
添加凭据
可将证书和客户端密码(字符串)作为凭据添加到机密客户端应用注册。
有关添加凭据的详细信息,请参阅“添加凭据”。
添加客户端密码
应用程序要求客户端在请求令牌时提供客户端密码以证明其身份。
若要创建客户端机密,请执行以下操作:
在左侧菜单中“管理”下,选择“证书和机密”。
在“客户端密码”选项卡上,选择“新建客户端密码”。
输入客户端密码的说明,然后选择密码的过期时间。
复制“客户端密码”的值,然后将其粘贴到安全位置。
注意
仅当你创建密码时,密码才可见。 以后无法在门户中查看客户端密码。
添加证书
你可以上传证书,而不是创建客户端密码。
在 Azure 门户中添加角色分配
本部分演示如何将 Web PubSub 服务所有者角色分配给 Web PubSub 资源的服务主体(应用程序)。
注意
可以将角色分配给任何作用域,包括管理组、订阅、资源组和单个资源。 有关范围的详细信息,请参阅了解 Azure 基于角色的访问控制的范围。
在 Azure 门户中转到你的 Web PubSub 资源。
选择左侧菜单上的“访问控制 (IAM)”,以显示资源的访问控制设置。
选择“角色分配”选项卡并查看此范围内的角色分配。
下图显示了 Web PubSub 资源的“访问控制 (IAM)”窗格示例:
选择“添加”>“添加角色分配”。
选择“角色”选项卡,然后选择“Web PubSub 服务所有者”。
选择下一步。
选择“成员”选项卡。在“将访问权限分配给”下,选择“用户、组或服务主体”。
选择“选择成员”。
搜索并选择要向其分配角色的应用程序。
选择“选择”确认选择。
选择下一步。
选择“查看 + 分配”以确认更改。
重要
Azure 角色分配可能需要多达 30 分钟时间来进行传播。
若要详细了解如何分配和管理 Azure 角色分配,请参阅以下文章:
- 使用 Azure 门户分配 Azure 角色
- 使用 REST API 分配 Azure 角色
- 使用 Azure PowerShell 分配 Azure 角色
- 使用 Azure CLI 分配 Azure 角色
- 使用 Azure 资源管理器模板分配 Azure 角色
使用 Postman 获取 Microsoft Entra 令牌
打开 Postman。
对于“方法”,请选择“GET” 。
对于“URI”,输入
https://login.chinacloudapi.cn/<TENANT ID>/oauth2/token
。 将<TENANT ID>
替换为创建的应用程序的“概述”窗格中的“目录(租户) ID”值。选择“标头”选项卡,然后添加以下键和值:
- 对于“密钥”,请选择“内容类型”。
- 为值输入
application/x-www-form-urlencoded
。
选择“正文”选项卡。
选择 x-www-form-urlencoded 的正文类型。
在“密钥”下,添加以下键和值:
- 选择 grant_type,然后选择值 client_credentials。
- 选择 client_id,然后从所创建应用程序的“概述”窗格中粘贴应用程序(客户端)ID 的值。
- 选择 client_secret,然后粘贴保存的客户端密码的值。
- 选择“资源”,然后输入
https://webpubsub.azure.com
该值。
对于 OAuth2/v2.0/token 终结点,传递
scope
的值,而不是resource
的值:client_id: *your client ID* client_secret: *your client secret* grant_type: client_credentials scope: https://webpubsub.azure.com/.default
选择“发送”以发送获取令牌的请求。
access_token
的值是访问令牌。
使用 Microsoft Entra 授权的代码实例
获取使用 Microsoft Entra 授权的示例(以四种正式支持的编程语言编写):