c# - 从 claim 中的 Azure AD 获取职位信息(职位名称、部门和经理 ID)

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

我一直在阅读 Azure Active Directory 应用程序 list ,但我没有看到任何有关职位信息的信息。

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

我能够向 claim 添加组,如下面的答案,但我无法获取工作信息。这可能吗?

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

最佳答案

那么,当您可以通过图形 API 获取这些信息时,为什么还要将这些信息放入声明中呢?您只需执行一次此操作 - 当用户登录并且您的中间件已验证 token 时。然后,您可以调用图形 API 并提取附加信息以将其打包为声明。或者甚至,仅当您确实需要该信息时。我正在详细阐述这一点,因为我们对代币投入的声明越多,代币就越大。 token 越大,保存该信息的 cookie 就越大。归根结底 - 整体信息臃肿。

综上所述,您的职位和部门问题已经有了解决方案。然而,经理问题没有解决方案。

您可以使用 custom claims mapping policies in Azure AD 包含职位和部门信息。这两个属性 - 职务和部门都在那里并且可供使用。

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

关于c# - 从 claim 中的 Azure AD 获取职位信息(职位名称、部门和经理 ID),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838581/

相关文章:

java - 单击电子邮件中的链接时如何生成不记名 token

c# - 是否可以在 C# 中使用 wasb URI 方案访问 azure 存储?

c# - ASP.NET Web API 模型绑定(bind)复杂对象的非顺序列表

c# - 尝试读取结果集时遇到 fatal error 。 MySQL 网站

azure 数据工厂 - 如何修剪 CopyData 的空白

.net - 在 .Net Core 应用程序中使用 SharePoint CSOM

unit-testing - 升级到 .NET Core 3.1 后,Moq 验证未按预期工作

.net - 带有 .NET Core 的 Angular 2

javascript - 我无法使用 CefSharp 从 WinForms 的 c# 获取一些数组

c# - 从 C# 调用 C++ 函数,参数是接口(interface)指针