Azure AD B2C 和 MS Teams 应用程序机器人 + 选项卡身份验证

问题描述

希望你一切都好。

我们正在努力使用带有机器人和选项卡的 Teams 应用程序将我们的应用程序与 MS Teams 集成,但我们正在努力进行身份验证。

我们的场景是:

  • 我们使用 Azure AD B2C 对我们的应用进行身份验证(使用预定义的用户流)。
  • 我们有不同的客户使用 Azure AD(每个客户都有自己的 Azure AD 租户)。我们创建了一个 custom identity provider,允许用户使用他们自己的 Azure AD 凭据登录/注册我们的应用程序。
  • 我们使用“通用 Oauth 2”服务提供商创建了一个机器人频道注册,以通过 Azure AD B2C 连接到我们的机器人。

我们面临的挑战是:

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

有人在使用 Azure AD B2C 为多个 Azure AD 租户处理 MS Teams 应用程序方面有类似的经验吗?您推荐的处理这种情况的最佳方法是什么?

您的帮助将不胜感激!

提前致谢!

解决方法

,

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

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

  • 为了在 B2C 中处理多个 Azure AD 租户,鉴于我们使用的是预定义的用户流并且我们需要为我们的场景构建自定义登录,我们将传递 get 并传递 {{1 }} 从 MS Teams 到 Azure AD B2C。