c# - 使用 MS Graph 进行机器人身份验证 - 如何在不手动输入的情况下动态读取 6 位代码
问题描述
我可以使用 Azure AD 和 MSGraph 对我的聊天机器人用户进行身份验证,但它在我的屏幕上显示了一个 6 位数的代码。我怎样才能避免这一步。我希望我的用户在输入用户名、密码和“登录”后能够登录。但是它在另一个窗口上显示了一个 6 位代码,用户需要回复这个号码才能成功登录。
如何让我的机器人在没有额外用户输入的情况下动态读取此代码。这种行为是否仅适用于 Bot 模拟器?
注意: 我没有在 MS 团队和其他频道上进行测试。它对 MS 团队和其他频道的行为是否也一样?
更新
我可以通过取消选中“使用登录验证码..”选项来从我的机器人模拟器设置中禁用魔术码。
但在其他渠道,我的机器人用户仍然需要输入这个 6 位代码。
解决方案
您可以使用OauthCards在 MS Teams 中进行身份验证。
WebChat 和 DirectLineJS 库已经改进以支持新的身份验证功能,例如消除对 6 位魔术码验证的需要。您可以参考这些链接以防止出现魔术代码:
https://github.com/Microsoft/BotBuilder/issues/4632#issuecomment-441957719(参考@compulim的评论,他是Web Chat的开发者,并指定了消除魔术代码流的步骤)。
https://github.com/Microsoft/BotFramework-WebChat/pull/1218(令牌服务器示例的拉取请求)。
- 此外,https://github.com/Microsoft/BotFramework-WebChat/issues/1001#issuecomment-434530463是一种涉及与 AAD 配合使用且无魔法代码的网络聊天的解决方案。
注意:如果您的浏览器设置为阻止 3rd 方 cookie,它将再次退回到神奇的代码流。
希望这可以帮助
推荐阅读
- vue.js - GET http://localhost:3000/api/eventNames net::ERR_CONNECTION_REFUSED
- python-3.x - 根据 Pandas 中的前缀将多列融合到对应的列
- python - 在 tkinter 中将文本添加到自定义圆形按钮
- jenkins - 在没有 Artifactory 插件的情况下将 Jenkins 凭据传递给 Artifactory
- javascript - 是什么导致我的支付网关设置失败?
- asp.net - 将字符串与配置文件中的 Octopus 变量连接起来
- ios - 尝试将图像存储为 base64 并使用它
- flutter - Flutter Web - 播放 uint8list n 视频播放器
- javascript - 来自外部geojson的标记不在MapBox中呈现
- java - 如何有效地将用户输入的字符转换为 Java 中的数值(双精度)?