4

我有一个 ASP.NET 5 (RC1) 应用程序,我正在尝试为其设置身份验证和授权。然而,我对与该平台相关的所有在线身份验证和授权信息感到困惑和不知所措。其中大部分似乎已经过时了,或者根本不适用于这个特定的使用场景。现在,我什至不确定我想问的问题使用什么正确的“术语”,但我离题了。

我想要完成的是一个系统,通过 Azure AD(B2C?)对用户进行身份验证/授权,并将其他用户配置文件信息存储在数据库中。但是,使用我认为自定义的 ClaimsPrincipal/ClaimsIdentity 以一致的方式访问控制器中的用户上下文?我想这应该像添加“授权”属性或类似的东西并访问 ClaimsPrinciple.Current.Claims 一样简单。

我过去使用过 ASP.NET Identity,但我发现的许多示例都没有使用它。大多数只是使用 UseOpenIdConnectAuthentication 中间件。我看到 ASP.NET Identity 仍然可用,但我不确定它是否适用于这种情况。我还在这里发现了一些帖子,建议使用自定义 ClaimsIdentity 来完成此操作,但我无法找到有用的最新示例。顺便说一句,我意识到大部分“个人资料”信息可以作为自定义属性存储在 azure ad 中,但是在应用程序中使用某些信息的方式禁止所有这些信息都在 azure 中(即 EF linq 连接等)。

请告诉我,如果我什至接近其中的一些。我知道这是一个相当新的平台,信息很少,但我肯定不是唯一一个问这些问题的人。

4

1 回答 1

3

刚刚提到了一篇出色的文章Identity management for multitenant applications in Microsoft Azure

你的很多问题都在那里得到解答。

例如,您可以在 OWIN 中间件 AuthenticationValidated 事件中增加声明。

ASP.NET 标识是基于声明的,因为属性作为声明提供,但身份验证在 DB 上,而不是通过 Azure AD 等外部 IDP。

B2C 是 Azure AD 中的一个特例 - 用于许多(数百万!)可以自我注册和自我管理的外部用户,例如 SSPR。

B2C 使用与普通 Azure AD 不同的租户,用户无权访问 O365 或任何 SaaS 应用程序等内容。

于 2016-05-16T22:35:16.880 回答