在Azure Bot中使用User-assigned managed identity完成认证
分类: Teams应用开发 ◆ 标签: #Azure Bot Framework SDK #Azure Bot Service #Teams App ◆ 发布于: 2025-03-06 16:35:28

在使用Bot Framework
开发定制的Bot
时,如果使用Azure Bot
连接其他的Channel
, 例如Teams
, 那么需要将Bot
的代码部署到相应的Web
服务中,并在Azure Bot
中配置API
的endpoint
指向该Web
服务,这需要在Web
服务中配置认证来访问该Azure Bot
的资源, 一般情况下我们可以使用Serivce Principal
来访问,但是为了安全,我们可以使用User-assigned managed Identity
来完成认证。
我们下面来描述如何配置通过User-assigned Managed Identity
实现认证。
创建资源
我们所需要创建的资源包括:
User Assigned Managed Identity
Azure Bot
Azure Web App
创建顺序是先创建User Assigned Managed Identity
, 再创建Azure Bot
, 最后创建Azure Web app
。
创建
User Assigned Managed Identity
在
Azure Portal
的菜单里点击创建
, 然后搜索User Assigned Managed Identity
, 按照步骤选择区域,创建资源组,起名字创建就好了,如下图:创建完成之后,找到该
User Assigned Managed Identity
的资源,选择左侧菜单Properties
, 然后记录一下如下的基本信息:Id
Tenant Id
Client Id
在创建
Azure Bot
的时候需要使用到上述三个值。创建
Azure Bot
在
Azure Portal
的菜单里点击创建, 然后搜索Azure Bot
, 如下图:在创建的过程中,要如下图选择:
Microsoft App ID
的Type of App
的值为User-Assigned Managed Id
,然后将前一个步骤的值填到如下的图中:然后按照顺序创建就可以了。
创建`Azure Web App
Azure Web App
主要是用于部署Bot
的代码的,我们先创建一个Azure Web app
, 如下图搜索出服务,并创建:需要注意的是创建
Web App
的时候,根据需要选择需要的发布方式:
配置通过User Assigned Managed Identity
认证
创建Azure Web App
之后,找到该资源,然后选择左侧菜单Identity
, 然后选择User Assign
, 然后选择Add
, 将之前创建的User Assigned Managed Identity
添加进去就可以了。
同时在Web App
的左侧菜单Environment Variable
添加应用需要的几个变量:
MicrosoftAppId
: 这里填User Assigned Managed Identity
的client id
MicrosoftAppPassword
: 因为我们用了UMI,这里的值是空。MicrosoftAppTenantId
: 填您的Tenant Id
MicrosoftAppType
: 这里的值是固定的:UserAssignedMSI