团队通道上的botframework集成了1:1身份验证AAD

时间:2018-06-28 20:13:09

标签: c# azure-active-directory botframework microsoft-teams

我希望在团队频道上连接我的机器人,但我不知道如何保护它仅在我们的域(组织)中使用的方法。

我已经测试过要查找(身份验证AAD)Azure Web App,但它不适用于团队或网络聊天,因为端点地址未重定向。

我已经测试过要实施AUTH卡,但不适用于团队。

注意:我正在使用botframework C#API BotBuilder 3.15.2.2

我有其他类似的“问”: AAD authentication in Microsoft teams for Bot Framework

Is it possible to access custom tabs in 1:1 chats in MS Teams?

https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/authentication/auth-flow-bot

https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/authentication/auth-bot-AAD

https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/authentication/authentication

https://tsmatz.wordpress.com/2016/09/06/microsoft-bot-framework-bot-with-authentication-and-signin-login/

此致, 帕斯卡。

编辑: 我已经实现了Adrian提出的解决方案,下面是一段C#代码,在MessasController.cs(发布函数)上实现了该解决方案: 注意==>为本地主机使用添加访问权限

GOOS=linux

1 个答案:

答案 0 :(得分:9)

传入的消息包含可用于标识用户的信息。一条消息看起来像这样:

{ ... "from": { "id": "29:1XJKJMvc5GBtc2JwZq0oj8tHZmzrQgFmB39ATiQWA85gQtHieVkKilBZ9XHoq9j7Zaqt7CZ-NJWi7me2kHTL3Bw", "name": "Richard Moe", "aadObjectId": "ae361bee-9946-4082-99dc-6994b00ceebb" }, "channelData": { "tenant": { "id": "72f988bf-86f1-41af-91ab-2d7cd011db47" } } }

channelData.tenant.id标识用户所属的组织(O365租户),因此您可以查看并拒绝不是您期望的消息。

消息在from.aadObjectId中还具有发送者的AAD对象ID。如果您需要令牌来提供其他服务,以便您可以代表用户执行操作,则上面链接中的auth流程很有用。但是,如果您需要的只是用户的租户和身份,则消息将满足您的所有需求。

(在信任邮件中的任何信息之前,请先记住authenticate the incoming request。)