在BotFrameworkAdapter中如何使用托管标识替代MicrosoftAppCredentials
使用托管标识替代应用密钥实现BotFrameworkAdapter通知发送
是的,你可以使用托管标识替代传统的应用ID和密码,完成BotFrameworkAdapter中CreateConversationAsync方法的身份验证,无需依赖MicrosoftAppCredentials的密钥配置。
具体实现步骤:
- 配置托管标识:在你的Azure应用服务(如App Service、Function)中启用系统分配或用户分配的托管标识,确保该标识拥有Bot Framework所需的权限(例如
Bot Framework Channel的Send Messages权限)。 - 替换身份验证凭据:不再使用
MicrosoftAppCredentials,改用Bot Framework SDK提供的ManagedIdentityAppCredentials类,传入你的微软应用ID即可,无需密码参数。 - 初始化Adapter:创建
BotFrameworkAdapter实例时,传入ManagedIdentityAppCredentials对象,示例代码如下:
var credentials = new ManagedIdentityAppCredentials("<你的微软应用ID>"); var adapter = new BotFrameworkAdapter(credentials);
- 调用通知方法:使用调整后的adapter调用
CreateConversationAsync,此时身份验证会通过托管标识自动完成,无需配置应用注册密钥。
注意事项:
- 需确保Azure Bot Service已配置为关联你的托管标识资源。
- 托管标识的权限必须正确配置,否则会出现身份验证失败的错误。
- 本地开发时,需借助Azure托管标识模拟工具(如Azure CLI的
az login或Visual Studio的账户关联)来模拟身份验证流程。
内容的提问来源于stack exchange,提问作者Naveen Gorojanam
相关产品推荐
相关产品推荐

