如何在任务模块中通过消息扩展进行身份验证

时间:2020-07-03 10:28:15

标签: microsoft-teams

我正在尝试开发一个需要登录的消息扩展,我正在使用基于启动操作的ME。在要验证用户身份的任务模块中

1 个答案:

答案 0 :(得分:0)

对服务的每个请求都包括执行请求的用户的混淆ID,以及用户的显示名称和Azure Active Directory对象ID。

"from": {
  "id": "29:1C7dbRrC_5yzN1RGtZIrcWT0xz88KPGP9sxdpVpV8sODlgPHeQE9RqQ02hnpuKzy6zZ-AaZx6swUOMj_Dsdse3TQ4sIaeebbFBF-VgjJy_nY",
  "name": "Larry Jin",
  "aadObjectId": "cd723fa0-0591-416a-9290-e93ecf3a9b92"
}

保证id和aadObjectId值是经过身份验证的Teams用户的值。它们可以用作查找凭据或服务中任何缓存状态的键。

如果您的服务需要用户身份验证,则需要先登录用户,然后才能使用该消息传递扩展。如果您编写了机器人或标签来登录用户,则此部分应该很熟悉。

顺序如下:

  1. 用户发出查询,或默认查询自动发送到 您的服务。
  2. 您的服务检查用户是否拥有第一名 通过检查Teams用户ID进行身份验证。
  3. 如果用户没有 已通过身份验证,建议发送带有openUrl的身份验证响应 操作,包括身份验证URL。
  4. Microsoft Teams客户端会使用给定的身份验证URL启动一个弹出窗口,托管您的网页。
  5. 用户登录后,您应该关闭窗口并将“身份验证码”发送到Teams客户端。
  6. 然后,Teams客户端将查询重新发布到您的服务,其中包括 步骤5中传递的身份验证代码。您的服务应验证 在步骤6中收到的验证码与 步骤5。

这可确保恶意用户不会试图欺骗或破坏登录流程。这样可以有效地“闭合循环”以完成安全身份验证序列。

这是指向Add Authentication to Message Extension的详细信息链接。