首页 > 解决方案 > 在声明中从 Azure AD 获取职位信息(职位、部门和经理 ID)

问题描述

我一直在阅读,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我可以看到信息。

在此处输入图像描述

我也可以从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

标签: c#azureasp.net-coreazure-active-directoryasp.net-core-2.0

解决方案


那么,当您可以通过图形 API 获取这些信息时,为什么还要考虑将这些信息纳入声明中。您只需执行一次 - 当用户登录并且您的中间件已验证令牌时。然后,您可以调用图形 API 并提取其他信息以将其打包为声明。甚至,仅当您真正需要该信息时。我正在详细说明这一点,因为我们在代币中放入的声明越多,代币就越大。令牌越大,保存该信息的 cookie 就越大。在一天结束时 - 整体信息臃肿。

说了以上所有,您的职位和部门问题都有一个解决方案。然而,经理问题没有解决方案。

您可以使用Azure AD 中的自定义声明映射策略包含职位和部门信息。两个属性 - 职位和部门都在那里并且可以使用。

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


推荐阅读