提问者:小点点

AzureADB2C和MS团队应用(机器人选项卡)身份验证


我们正在使用带有机器人和标签的团队应用程序将我们的应用程序与MS团队集成,我们正在努力进行身份验证。

我们的场景是:

  • 我们使用AzureADB2C对应用进行身份验证(使用预定义的用户流)。
  • 我们有不同的客户使用AzureAD(每个客户都有自己的AzureAD租户)。我们创建了一个自定义标识提供程序,允许用户使用自己的AzureAD凭据登录/注册我们的应用。
  • 我们使用"Generic Oauth 2"服务提供程序创建了一个机器人通道注册,以便通过AzureADB2C连接到我们的机器人。

我们面临的挑战是:

  • 理想情况下,我们希望在Teams中为我们的机器人实现SSO,以允许我们的客户能够使用他们的MSTeams凭据登录我们的应用程序。我们设法使用OAuthPrompt进行身份验证,但我们看到的挑战是用户每次打开机器人时都需要登录(即刷新令牌不起作用),而且我们无法发送“domain_hint”查询字符串来区分我们的客户。
  • 理想情况下,我们希望仅使用一个机器人通道注册来处理身份验证。可能可以通过为每个客户创建一个通道注册来实现,但从长远来看,我们需要为每个客户创建一个机器人,这可能难以维护/避免我们的客户在其AzureAD上安装应用注册。

任何人都有使用AzureADB2C为多个AzureAD租户处理MSTeams应用的类似经历吗?您建议如何处理这种情况?

您的帮助将不胜感激!

提前感谢!


共2个答案

匿名用户

如果它对某人有帮助,经过一些研究,我们正在为我们的场景执行以下操作:

>

  • 对于选项卡中的SSO,鉴于OAuthPrompt不刷新令牌的限制(我们不希望用户每次令牌过期都登录),我们遵循几个月前发布的解决方案https://github.com/igrep/example-teams-bot-with-ms-account-refresh-token.

    为了处理B2C内的多个AzureAD租户,鉴于我们使用预定义的用户流,并且需要为我们的方案构建自定义登录,我们将传递get并将domain_hint从MSTeams传递到AzureADB2C。

  • 匿名用户

    • 要实现SSO,请通过添加单一登录到机器人,也可以参考EA Finder应用程序模板中的代码库,它已经实现了相同的机器人登录功能,并且工作正常。
    • 请查看使用AzureADB2C配置多租户ADB2C的多个AzureAD租户。