从声明中的Azure AD获取作业信息(作业标题,部门和经理ID)

时间:2018-06-13 13:32:25

标签: c# azure asp.net-core azure-active-directory asp.net-core-2.0

我一直在阅读Azure Active Directory application manifest,但我没有看到有关工作信息的任何信息。

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-manifest

我能够将声明添加到声明中,如下面的答案,但我无法获得职位信息。这可能吗?

https://stackoverflow.com/a/50836460/3850405

如果我登录https://portal.azure.com并在Azure Active Directory查看我的用户,我可以看到相关信息。

enter image description here

我也可以从Azure Active Directory Graph API

获取信息

https://developer.microsoft.com/en-us/graph/graph-explorer#

https://graph.microsoft.com/v1.0/me/

https://graph.microsoft.com/v1.0/me/manager

1 个答案:

答案 0 :(得分:1)

那么为什么在通过图形API获取此信息时可以获得此信息的问题。您必须只执行一次 - 当用户登录并且您的中间件已验证令牌时。然后,您可以调用图形API并提取其他信息以将其打包为声明。或者甚至,只有当你真的需要这些信息时。我正在详细说明这一点,因为我们在令牌中提出的索赔越多,令牌就越大。令牌越大,保留该信息的cookie越大。在一天结束时 - 整体信息膨胀。

说完以上所有内容后,您的职位和部门问题都有解决方案。然而,经理问题没有解决方案。

您可以使用custom claims mapping policies in Azure AD添加职位和部门信息。这两个属性 - 职位和部门都可以使用。

即使使用声明映射策略,您也只能使用部分解决方案,因为它不支持管理器链接。您可能真的想要查看在登录时调用图API的选项,并提取您需要的任何其他信息。