使用 Bot Framework SDK 与多个机器人进行单 SSO

问题描述 投票:0回答:1

我们目前有一个机器人(作为应用程序托管在团队中),它调用其余 api(api/消息)来获取详细信息。我们使用

TeamsSSOTokenExchangeMiddleware
进行 SSO,使用
OAuthPrompt
并使用
ConfigurationBotFrameworkAuthentication
进行 Appid 身份验证。

我们希望支持其他机器人(在 Teams 中创建新应用程序)并使用相同的端点和代码,以便我们可以根据传入的请求进行某些自定义。这将避免我们托管另一个 Web 服务并创建新项目。

我尝试查看并发现我可以使用

ICredentialProvider
来验证 appid,尽管根据 MS 这已经过时了。但是为了进行 SSO,我无法成功,我创建了
MultiBotTeamsSSOTokenExchangeMiddleware
并通过根据传入请求传递 connectionName 来实例化
TeamsSSOTokenExchangeMiddleware
。我们现在将有 2 个连接,因此我们将根据连接名称创建 2 个
TeamsSSOTokenExchangeMiddleware
实例,然后我们将调用
OnTurnAsync
事件。完成后,我们将调用
OAuthPrompt
,它不应该显示用户登录提示,因为我们已经注入了
TeamsSSOTokenExchangeMiddleware
,应该小心。

目前我们确实将

TeamsSSOTokenExchangeMiddleware
作为
AdapterWithErrorHandler
的一部分注入,SSO 工作正常,但当我尝试实现多机器人时却失败了。

有人可以提供帮助吗?

Use(new TeamsSSOTokenExchangeMiddleware(storage, configuration["ConnectionName"]));
c# bots botframework microsoft-teams
1个回答
0
投票

多个机器人无法使用同一个 AAD 应用程序进行 SSO,因为 AAD 只允许为一个 AAD 应用程序指定一个应用程序 ID URI/资源 URI。

© www.soinside.com 2019 - 2024. All rights reserved.