【问题标题】:asp.net azure active directory user profile dataasp.net azure 活动目录用户配置文件数据
【发布时间】:2015-02-24 08:03:01
【问题描述】:

我正在使用 Azure 的 AD 身份验证开发 MVC 应用程序。我一直在寻找“扩展”用户配置文件数据的最佳实践或建议方法。例如,我希望用户存储自己的出生日期。

我看过这个,但它并没有真正回答我的问题:Active Directory User Data Storage

我也找不到与该解决方案相近的任何其他解决方案,所有其他解决方案都适用于其他类型的身份验证。

需要注意的一点是,应用程序只有对 AD 的读取权限,如果这对我的要求很重要的话。我希望只创建一个使用 User.Identity.GetUserId() 的用户模型(这会改变吗?如果改变了,我能用什么不会?)。

提前致谢!

【问题讨论】:

    标签: c# sql-server asp.net-mvc asp.net-identity azure-active-directory


    【解决方案1】:

    我有几个选择在这里建议。

    选项 1 - 您可以使用自己的应用程序配置文件存储,用于存储目录中不存在的属性的其他用户配置文件信息。基本上,当您的应用为已登录用户获取用户令牌(或 JWT 令牌)时,您将在令牌中获得 objectId (oid) 声明。这是用户的唯一 ID(跨所有 Azure AD)。您可以将其用作用户配置文件商店中的密钥,并使用此密钥将 AAD 中的用户信息实质上链接到应用商店中的用户信息。

    选项 2 - 使用目录架构扩展。 Azure AD(通过 Graph API)允许您的应用程序声明其他属性以扩展您客户的 Azure AD 架构。在这里,您可以使用新的 dateOfBirth 属性扩展 User 实体。您(多租户应用程序)的客户(管理员)需要同意允许您的应用程序写入他们的目录,在同意后,将使用您的应用程序声明的扩展属性扩展他们的用户实体架构。然后,您的应用程序(或实际上任何应用程序)可以读取和写入这个新的扩展属性。注意:目前对这些扩展属性没有特殊的访问控制 - 如果用户或应用程序有权读取用户实体(在这种情况下),他们将能够读取任何应用程序声明的任何扩展属性 - 包括您的。
    有关目录扩展的更多信息,请参阅https://msdn.microsoft.com/en-us/library/azure/dn720459.aspxhttp://blogs.msdn.com/b/aadgraphteam/archive/2014/03/06/extend-azure-active-directory-schema-using-graph-api-preview.aspx(尽管这篇博客文章说,架构扩展现在是 Graph API 1.5 版中的 GA)。 Graph Client Library 也支持目录模式扩展,您可以在 github 上的控制台示例中看到这一点:https://github.com/AzureADSamples/ConsoleApp-GraphAPI-DotNet

    HTH,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多