【问题标题】:Sending a JWT through Direct-line API to authenticate the user, in Microsoft chat bot在 Microsoft 聊天机器人中通过 Direct-line API 发送 JWT 以对用户进行身份验证
【发布时间】:2020-08-07 11:06:26
【问题描述】:

我需要通过直线向聊天机器人发送 JWt(访问令牌)。我用react做前端,聊天机器人通过botframework-webchat集成到前端。

到目前为止,我能够通过一个活动发送访问令牌,但我认为不建议这样做。

现在,聊天机器人正在要求用户登录,这不好,因为用户已经登录到应用程序。

我的第一个问题 - 是否可以通过 id 令牌对聊天机器人进行身份验证,而不是连接 Azure AD、B2C 或任何身份验证服务提供商?

如果可能,我如何通过botframework-webchat 将 id 令牌发送给机器人

提前致谢

这是我的前端代码

const Chatbot = (props) => {
  const language = localStorage.getItem('language');
  const directLine = useMemo(
    () => createDirectLine({ token: <my_token>, locale: 'sv-se' }),
    []
  );

  useEffect(() => {
    var activity = {
      from: {
        id: '001',
        name: 'noviral',
      },
      name: 'startConversation',
      type: 'event',
      value: 'Hi noviral!',
      locale: language === 'en' ? 'en-US' : 'sv-se',
    };
    

    directLine.postActivity(activity).subscribe(function (id) {
      if (console) {
        console.log('welcome message sent to health bot');
      }
    });

  }, []);

  return (
    <Layout className="login-layout">
      <div className="login-div">
        <div className="chatbot">
          <div className="consent-wrapper">
            <ReactWebChat
              directLine={directLine}
              userID={'001'}
              username="Noviral"
              locale={language === 'en' ? 'en-US' : 'sv-se'}
            ></ReactWebChat>
          </div>
        </div>
      </div>
    </Layout>
  );
};

export default withTranslation()(Chatbot);

【问题讨论】:

  • 接受/投票支持更大的 Stack Overflow 社区和任何有类似问题的人。如果您觉得我的回答足够,请“接受”并点赞。如果没有,请告诉我我还能提供哪些帮助!

标签: botframework direct-line-botframework web-chat


【解决方案1】:

通过活动发送令牌是可以接受的,因为通过 Direct Line 发送的活动是安全的。如果您查看24.bot-authentication-msgraph 示例,您会看到机器人执行的默认操作是发送显示用户令牌的活动。

至于身份验证,问题似乎不在于您将使用什么令牌,而在于您将如何进行身份验证。如果您不使用服务提供商+登录,机器人将如何验证用户是谁?话虽如此,通过网络聊天(请参阅here)可以使用一些 SSO(单点登录)选项,如果用户已经登录,则 SSO 可以选择它。您必须查看它们以确定这些选项是否满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多