c# - 在声明中从 Azure AD 获取职位信息(职位、部门和经理 ID)
问题描述
我一直在阅读,Azure 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#
解决方案
那么,当您可以通过图形 API 获取这些信息时,为什么还要考虑将这些信息纳入声明中。您只需执行一次 - 当用户登录并且您的中间件已验证令牌时。然后,您可以调用图形 API 并提取其他信息以将其打包为声明。甚至,仅当您真正需要该信息时。我正在详细说明这一点,因为我们在代币中放入的声明越多,代币就越大。令牌越大,保存该信息的 cookie 就越大。在一天结束时 - 整体信息臃肿。
说了以上所有,您的职位和部门问题都有一个解决方案。然而,经理问题没有解决方案。
您可以使用Azure AD 中的自定义声明映射策略包含职位和部门信息。两个属性 - 职位和部门都在那里并且可以使用。
即使使用声明映射策略,您也只能获得部分解决方案,因为它不支持管理器链接。您可能真的想查看仅在登录时调用图形 API 的选项并提取您需要的任何其他信息。
推荐阅读
- c# - 将 C# 项目导出为 .EXE 文件
- java - 我正在尝试用mysql配置liferay,但我有一个oracle给我这个错误的结果
- spring-boot - 带有配置文件 jdbc 的 spring 云配置与旧版 tomcat 和其他具有 dev 配置文件的应用程序一起部署
- python - 如何在考虑行子集的同时遍历 Pandas DataFrame
- react-hooks - 自定义钩子的奇怪行为
- internet-explorer - IE11 上的 IFrame:此内容无法在框架中显示 - 调用同一个域
- javascript - 为什么不按顺序调用函数?
- laravel - 测试不创建记录和截断表
- visual-studio-code - 有没有其他方法可以在 VS Code 中获取“files.associations”?
- jquery - 如何将 JSON 数组字段传递给 Spring REST 控制器