可以/应该在组织帐户中使用Asp.Net标识吗?

fli*_*lip 9 azure visual-studio-2013 asp.net-mvc-5 asp.net-identity

我希望我的用户使用他们的组织帐户(AD,AAD,O365)登录我的网络应用程序,并使用Asp.Net Identity在我的应用程序中本地存储应用程序特定的配置文件或角色信息,我不想要的信息用我的目录或我的租户的目录.

我不确定这种情况是否真实,因为我发现它的信息很少.在MVC 4中它是可行的.我将创建一个Empty MVC4 Web应用程序,使用Identity and Access工具设置联合身份验证,并将名称声明存储在我使用SimpleMembership设置的Users表中(像这样.)

然而,似乎更喜欢Asp.Net Identity而不是SimpleMembership用于新开发.但它看起来要困难得多.查看Visual Studio 2013 RTM中的ASP.NET Web模板,我必须将Individual Accounts模板中的位与组织帐户模板的位组合在一起.我已经看到Asp.Net身份在开箱即用的AspNetUserLogins表中存储了外部登录信息(我可以先用EF6代码更改),但我无法弄清楚我存储的ClaimsIdentity中的哪些信息最好的(tenantId和名称声明?)或代码中的哪一点.组织帐户模板引用Microsoft.Aspnet.Identity但似乎永远不会调用它.

我的情景可行吗?VS2013最终版本是否可以建立一个样本?使用自己的实现存储角色和配置文件信息而不是Asp.Net Identity会更好吗?

kar*_*ect 0

这是一个有效的场景,我已经实现了类似的东西。假设您想要将 WAAD 用户的“元数据”存储在本地存储库中。我所说的元数据是指基本的标识信息,您可以使用这些信息将本地存储库中的用户与 WAAD 中的同一用户条目关联起来。这是我要存储的内容:

IdentityProvider(WAAD,在本例中)
TenantId(该字段的格式可能因身份提供商而异,但字符串就足够了)
UserId(同样,该字段的格式可能因 idP 而异,但字符串就可以了...名称声明,在本例中 - 只要它在租户内的用户之间是唯一的)

您应该能够从 ClaimsPrincipal/ClaimsIdentity 中获取此信息。我在 VS 2013 出现之前实现了我的应用程序,因此我推出了自己的应用程序,但在阅读了新的“一个”ASP.NET 身份文档后,它看起来相当可扩展,因此采用它可能是一个好主意。它甚至允许您插入不同的存储提供程序(不仅仅是关系数据库)。