azure-active-directory - Azure AD B2C 和 MS Teams 应用(机器人 + 选项卡)身份验证
问题描述
我们正在使用带有机器人和选项卡的 Teams 应用程序将我们的应用程序与 MS Teams 集成,我们正在努力进行身份验证。
我们的场景是:
- 我们使用 Azure AD B2C 对我们的应用进行身份验证(使用预定义的用户流)。
- 我们有不同的客户使用 Azure AD(每个客户都有自己的 Azure AD 租户)。我们创建了一个自定义身份提供程序,使用户能够使用他们自己的 Azure AD 凭据登录/注册我们的应用程序。
- 我们使用“通用 Oauth 2”服务提供程序创建了一个机器人通道注册,以使用 Azure AD B2C 连接到我们的机器人。
我们的挑战是:
- 理想情况下,我们希望在 Teams 中为我们的机器人实施 SSO,以允许我们的客户能够使用他们的 MS Teams 凭据登录我们的应用程序。我们设法按照此示例
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 并将其
domain_hint
从 MS Teams 传递到 Azure AD B2C。
推荐阅读
- python - 如何对值进行排序并按降序将其放入数组中?
- firebase - 如何模拟 Firebase 扩展?
- php - PHP - 有什么方法可以区分 unset 和 null 吗?
- javascript - suiteCRM 错误 40 中的 JOIN 子查询,("name":"Access Denied","number":40,"description":"You do not have access")
- docker - Nginx 无法访问 SSL 证书
- arrays - 将字符串添加到数组
- java - Android:如何自动更改视频活动中的方向?
- c++ - 抛出 'std::invalid_argument' what(): stof 的实例后调用终止
- javascript - 400 Bad request for Token Get Pair, Django REST simpleJWT and Vue 3 composition API
- javascript - 未捕获的类型错误:无法读取未定义的属性“addLayer”