如何在Bot中实现OAuth流,而不使用不支持的通道(如Zoom和WebEx)的OAuthPrompt Dialog.&



我有一个现有的bot代码,使用OAuthPrompt对话框,我想为Azure bot服务不支持的Zoom和WebEx部署。根据文档和示例代码,我使用适配器来支持这些通道。它工作得很好。但是它不支持OAuthPrompt对话框,它返回"OAuthPrompt. begindialog():不支持当前适配器"

当我用源代码(Bot builder SDK/w Adapter)调试时,OAuthPrompt对话框的实现检查适配器是否实现了IExtendedUserTokenProvider接口,目前不是,所以它返回错误。如何添加OAuth卡支持而不使用OAuthPrompt对话框/Azure Bot服务?

这个问题和我的相似:(有没有办法使用身份验证服务没有azure bot服务?)以下是我的想法:

  1. 直接向身份提供者发送请求,重定向URL(我的bot端点)OAuth2代码流。也更新重定向URI在应用程序注册门户与bot端点,目前我已提供重定向URI为"https://token.botframework.com/.auth/web/redirect"对于支持的通道。

  2. 在适配器中实现IExtendedUserTokenProvider(类似于Emulator)。

感谢您的反馈。

我可以通过为Zoom定制OAuthPrompt对话框来实现它,在ZoomAdapter (ZoomAdapterWIthErrorHandler)中实现IExtendedUserTokenProvider。OAuth连接设置(如身份服务器端点、作用域、重定向uri)存储在appSettings中。Json作为连接名。支持的通道(MS Teams和Slack)将使用SDK提供的实现(OAuthPrompt Dialog),并在Azure中配置ConnectionName设置,不支持的通道将从AppSettings获取设置。json文件。GetSignInResourceAsync()应该有正确的实现,返回登录资源Uri。

最新更新