ASP.NET Azure活动目录用户配置文件数据

3
我正在使用Azure的AD身份验证开发MVC应用程序。我一直在寻找最佳实践或建议的方法来“扩展”用户配置文件数据。例如,我希望用户存储自己的出生日期。
我已经查看了这个链接,但它并没有真正回答我的问题:Active Directory User Data Storage 我也找不到其他接近解决方案的内容,所有其他解决方案都是针对其他类型的身份验证。
需要注意的一点是该应用程序只有对AD的读取访问权限,如果对我的问题有影响,请告诉我。我希望只创建一个用户模型,该模型使用User.Identity.GetUserId()(这会改变吗?如果会,我可以使用什么代替?)。
提前感谢您的帮助!
1个回答

5
我有几个建议供您参考。
选项1 - 您可以使用自己的应用程序配置存储来存储额外的用户配置文件信息,以便存储目录中不存在的属性。基本上,当您的应用程序获取用户令牌(或JWT令牌)用于已登录的用户时,您将在令牌中获得objectId(oid)声明。这是用户的唯一标识符(跨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版本中成为常规可用)。目录模式扩展也通过Graph Client库得到支持,您可以在github上的控制台示例中看到它:https://github.com/AzureADSamples/ConsoleApp-GraphAPI-DotNet

HTHs,


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接