Botframework 聊天机器人单点登录

Botframework 聊天机器人单点登录,botframework,Botframework,我有一个运行在托管页面上的bot,用户使用SSO登录。 我想在bot启动时自动对bot中的用户进行身份验证,我不想使用身份验证卡进行身份验证。只需要使用SSO,就可以在不向用户提示任何内容的情况下自动对用户进行身份验证 我发现了一个引用了三种方法来验证bot中的用户的身份: 通过ChannelData直接与bot共享客户端的用户令牌 使用OAuthCard向任何OAuth提供商提供登录体验 第三个选项称为单点登录(SSO),正在开发中 根据这篇文章,我的情况是: WebChat在经过身份验证的网

我有一个运行在托管页面上的bot,用户使用SSO登录。 我想在bot启动时自动对bot中的用户进行身份验证,我不想使用身份验证卡进行身份验证。只需要使用SSO,就可以在不向用户提示任何内容的情况下自动对用户进行身份验证

我发现了一个引用了三种方法来验证bot中的用户的身份:

  • 通过ChannelData直接与bot共享客户端的用户令牌

  • 使用OAuthCard向任何OAuth提供商提供登录体验

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

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

    WebChat在经过身份验证的网站中,用户已经登录,并且该网站具有指向同一身份提供商的令牌,但指向bot需要的不同应用->在将来,这是单次登录,但现在您需要使用OAuthCard

    此功能是否有任何更新?如何在不使用OAuthCard或SigninCard的情况下将用户验证到bot中


    提前感谢

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


    如果您正在寻找此内置功能,那么您可能需要通过传递经过身份验证的用户的令牌ID,使用Google登录构建自己的自定义构建解决方案。或者,对于链接OAuth2解决方案的帐户,如此链接中所述:。

    微软的人现在正在研究这个问题。您可以跟踪进度。 我实现了一个适合我的解决方案。我有一个运行在.net核心web应用程序中的机器人 以下是我所做的:

  • 在初始化BotApp之前生成用户ID
  • 当用户单击按钮打开webchat时,我正在弹出窗口中打开一个经过身份验证的控制器,该弹出窗口接收生成的用户ID。页面已通过身份验证,因此您需要进行身份验证。我将userId、access_令牌和一些用户信息存储在数据库中。控制器应在运行bot的同一webapp中创建
  • 存储完所有信息后,我关闭选项卡并使用生成的用户ID启动BotApp
  • 在bot代码中,您将能够查询数据库(使用userId)
  • 要等到弹出窗口关闭,您可以查看一下

    我希望这能帮助别人

    致意