Asp.net core mvc 结合Azure广告(b2c)定制索赔实体

Asp.net core mvc 结合Azure广告(b2c)定制索赔实体,asp.net-core-mvc,azure-ad-b2c,asp.net5,Asp.net Core Mvc,Azure Ad B2c,Asp.net5,我有一个ASP.NET 5(RC1)应用程序,我正在尝试为其设置身份验证和授权。然而,我对在线上所有不同的身份验证和授权信息感到困惑和不知所措,因为它涉及到这个平台。其中的大部分似乎已经过时了,或者根本不适用于这个特定的使用场景。现在,我甚至不知道该用什么术语来回答我想问的问题,但我离题了 我试图实现的是一个系统,通过Azure AD(B2C?)对用户进行身份验证/授权,并将其他用户配置文件信息存储在数据库中。但是,控制器中的用户上下文是以一致的方式访问的,使用的是我假定的自定义ClaimsPr

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

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

我过去曾使用过ASP.NET标识,但我发现的许多示例都没有使用该标识。大多数只是使用UseOpenIdConnectAuthentication中间件。我看到ASP.NET标识仍然可用,但我不确定它是否适用于此场景。我在这里也发现了一些帖子,建议使用自定义的ClaimSidenty来实现这一点,但我很难找到有用的最新示例。顺便说一句,我意识到很多“配置文件”信息可以作为自定义属性存储在azure ad中,但应用程序中使用的某些信息禁止所有信息都存储在azure中(即EF linq连接等)


请告诉我,我是否已经接近这些了。我知道这是一个相当新的平台,信息非常稀少,但我肯定不是唯一一个提出这些问题的人。

刚刚发表了一篇优秀的文章

你的许多问题都在那里得到了回答

e、 g.您可以在OWIN中间件AuthenticationValidated事件中增加声明

ASP.NET标识是基于声明的,因为属性作为声明交付,但身份验证在DB上,而不是通过外部IDP(如Azure AD)进行

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


B2C使用普通Azure AD one的独立租户,用户无法访问O365或任何SaaS应用程序。

感谢您的回复。在通读了这些之后,也看看这个:似乎ClaimType和扩展方法的某种组合可能适合我正在尝试做的事情。有什么想法吗?是的-可能结合AAD的声明和信息。你需要DB的表格吗?