【问题标题】:How to get Authentication details of user over Skype for Business channel in Microsoft Bot Framework如何在 Microsoft Bot Framework 中通过 Skype for Business 通道获取用户的身份验证详细信息
【发布时间】:2018-03-04 07:02:56
【问题描述】:

我使用Microsft Bot FrameworkNode JS 中创建了一个机器人,并部署在Skype for Business (SFB) channel 上。

每当用户通过 SFB 与 Bot 交互并要求获取一些详细信息时,我希望 Bot 使用用户登录 SFB 时应该生成的用户身份验证令牌从我公司的内部系统获取这些详细信息。

那么,有没有办法从 SFB 获取用户的令牌,Bot 可以使用该令牌代表用户获取所需的信息?我不能使用 Bot 凭据来获取请求的信息用户代表他/她。我公司的内部系统 SFB 使用相同的 Azure AD 进行用户身份验证。

我提到了Authenticate user across channels in Microsoft bot FrameworkSkype for Business channel doesn't pass authentication credentials correctly 的问题,但这并不能帮助我回答我的问题。

我参考了Authenticate user in Microsoft bot framework 链接,如果我要求用户使用https://blogs.msdn.microsoft.com/tsmatsuz/2016/09/06/microsoft-bot-framework-bot-with-authentication-and-signin-login/ 进行身份验证,那么每次用户提出问题时,我都需要要求用户进行身份验证,这对用户体验不利因为用户已经通过 SFB 进行了身份验证。

有人可以帮我提供一些可以参考的文档来解决此问题吗?

【问题讨论】:

  • 我添加了 skypedeveloper 标签。希望他们团队中的某个人可以回答您的问题。

标签: node.js authentication botframework skype-for-business skypedeveloper


【解决方案1】:

我不知道直接通过 Skype 通道获取令牌,但我相信您可以编写 UCMA 代码来捕获与配置为您的机器人的 Skype 用户的通信,然后使用 Directline 将对话传输到机器人,充分了解传输到机器人的用户。然后,您将捕获结果并使用 UCMA 代码回复用户。

【讨论】:

  • 我的内部系统需要用户身份(可以通过用户身份验证来实现)才能代表用户执行任务。用户的全部知识是什么意思?通信信息会帮助我通过图形 API 获取用户身份吗?谢谢。
  • 我对 UCMA 不太熟悉,但是如果你可以通过 UCMA 获取用户令牌,那么你可以使用它来获取用户的信息并通过 Directline 将其传输给机器人。
  • 我想添加一些我刚刚遇到的新信息:当用户使用 SfB 与 Bot 通信时,SfB 通道将用户的 SIP URI 与消息一起发送。然后,Bot 可以调用 MS Graph 以获取用户的信息,并使用该信息执行它需要做的任何其他事情。
  • 我检查了会话对象,发现` "bot": { "id": "sip:abababa@ababababb.onmicrosoft.com", "name": "sip:abababa@abababa.onmicrosoft. com" }, "serviceUrl": "webpoolbl20r04.infra.lync.com/platformservice/…" `.您是在谈论这些信息吗?
  • 是的。 abababa@ababababb.onmicrosoft.com 应该是与用户关联的电子邮件帐户。您可以通过查询图表获得有关此用户的更多详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2015-11-30
相关资源
最近更新 更多