在MS Bot Framework bot中获取Azure Active Directory用户的数据

时间:2017-10-05 13:10:12

标签: node.js azure azure-active-directory botframework cortana

我在Azure帐户上部署了一个用Node.js编写的Cortana bot。机器人使用Cortana通道和#34;连接服务"打开(所以我可以使用Azure Active Directory中的帐户登录机器人)。登录工作正常。

我的问题是,现在我不知道如何在我的机器人中获取有关已登录用户的信息(例如电子邮件地址)。

我猜我需要从会话数据中获取一些令牌,然后发送一个API请求,要求Azure提供用户的数据?

Node.js有这个botauth示例,但运行它的说明已经过时了。

1 个答案:

答案 0 :(得分:0)

虽然我没有关于如何使用Node执行此操作的示例,但是C#中的解决方案可能会有所帮助吗?

执行此操作的方法是检查来自[[('John','1980')('Mike','1975')], [('John','1980')('Mike','1980')], [('John','1975')('Mike','1975')], [('John','1975')('Mike','1980')]] 对象的entities集合到控制器。由于这是对机器人的每个请求的一部分,因此您可以随时执行此操作。

Activity集合中,Cortana会输入一个entities条目,其中包含由连接服务的身份验证流程产生的令牌。如果您使用连接服务来访问Microsoft服务(也称为登录Live,MSA等),您可以转动此令牌并从Microsoft Graph请求有关该用户的信息。

在C#中,它看起来像这样:

authorization
希望有所帮助!如果你想玩你从图表的各个租户那里得到的东西,Graph Explorer是一个很好的方法。