聊天机器人单点登录

时间:2019-01-04 16:16:18

标签: botframework

我有一个在主机页面上运行的漫游器,在该页面上,用户使用SSO登录。 我想在漫游器启动时自动在漫游器中对用户进行身份验证,并且我不想使用AuthCard来执行此操作。只是想使用SSO来自动对用户进行身份验证,而无需任何提示。

我发现一个article引用了三种在机器人中验证用户身份的方式:

  1. 通过ChannelData直接与漫游器共享客户端的用户令牌

  2. 使用OAuthCard为任何OAuth提供商带来登录体验

正在开发中的称为单点登录(SSO)的第三个选项。

根据这篇文章,我的情况是:

  

经过身份验证的网站中的WebChat,其中用户已经登录,并且该网站具有指向同一身份提供者但该机器人需要的其他应用程序的令牌->以后,这是单点登录,但对于现在您需要使用OAuthCard。

此功能是否有任何更新?如何在不使用OAuthCard或SigninCard的情况下向机器人验证用户身份?

预先感谢

2 个答案:

答案 0 :(得分:0)

不确定您是否尝试过将WebChat与Azure Bot Service的身份验证结合使用的选项,该身份验证提供内置身份验证功能,可以通过各种身份提供商(例如AAD,GitHub,Facebook等)对聊天用户进行身份验证。

如果您正在寻找此内置功能,则可能需要通过传递经过身份验证的用户的令牌ID,使用Google登录来构建自己的自定义构建解决方案。或如以下链接中所述,用于帐户链接OAuth2解决方案:How to implement Login in Dialogflow chatbot

答案 1 :(得分:0)

Microsoft专家正在研究此问题。您可以跟踪进度here。 我实施了一个对我有用的解决方案。我的机器人在.net核心网络应用中运行 这是我所做的:

  1. 在初始化BotApp之前生成一个userId
  2. 当用户单击按钮打开网聊时,我正在弹出的窗口中打开经过身份验证的控制器,该弹出窗口接收生成的userId。该页面已通过身份验证,因此您需要进行身份验证。我将userId以及access_token和一些用户信息存储在数据库中。控制器应在运行机器人的同一Web应用中创建。
  3. 存储所有信息后,我关闭选项卡,并使用生成的userId启动BotApp。
  4. 在bot代码中,您将能够查询数据库(使用userId)。

要等到弹出窗口关闭,您可以查看此here

我希望这对某人有帮助。

最诚挚的问候

相关问题