【问题标题】:Combining Azure AD (b2c) custom ClaimsIdentity结合 Azure AD (b2c) 自定义 ClaimsIdentity
【发布时间】:2016-09-12 18:33:08
【问题描述】:

我有一个 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 连接等)。

请告诉我,如果我对其中的某些内容很接近。我知道这是一个相当新的平台,而且信息很少,但我肯定不是唯一一个提出这些问题的人。

【问题讨论】:

    标签: asp.net-core-mvc azure-ad-b2c asp.net5


    【解决方案1】:

    只是点出一篇优秀的文章Identity management for multitenant applications in Microsoft Azure

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

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

    ASP.NET 身份是基于声明的,因为属性作为声明交付,但身份验证在数据库上进行,而不是通过 Azure AD 等外部 IDP。

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

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

    【讨论】:

    • 感谢您的回复。在阅读完并查看此内容后:github.com/aspnet/Identity/blob/… 似乎 ClaimType 和扩展方法的某种组合可能适合我正在尝试做的事情。对此有什么想法吗?
    • 是的 - 可能结合来自 AAD 的声明和信息。你需要形成数据库吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 2020-07-29
    • 2018-04-07
    相关资源
    最近更新 更多