我有使用Azure AD B2C进行身份验证的ASP.NET 2.2 Web API应用
我有三个角色要求。每个角色都有不同的Azure AD B2C策略,一个用户只能有一个角色。
当前在B2C中添加角色的过程令人费解:
Authorize By Group in Azure Active Directory B2C
为了解决每个角色的角色和策略,我正在考虑在一个ASP.NET Core Web API中包含多个Azure AD B2C应用程序。
我在Startup.cs
中针对Azure AD B2C的ASP.NET Config如下:
services.AddAuthentication(AzureADB2CDefaults.JwtBearerAuthenticationScheme)
.AddAzureADB2CBearer(o => Configuration.Bind("AzureAdB2C", o));
ASP.NET Core中是否可以有多个Azure AD B2C ClientID(应用程序ID)?有图书馆这样做吗?您有更好的建议吗?
答案 0 :(得分:0)
我建议在通知函数s(例如,SecurityTokenValidated)之一中获取用户的组信息,然后将声明添加到ClaimsPrincipal。您可以单击here以获得代码示例。
如果注册多个应用程序,并且使用OAuth 2.0 code grant flow,则在将用户重定向到Azure AD的登录页面时,应提供客户端ID,在知道谁是当前用户之前,如何知道应使用哪个客户端ID?除非您创建额外的页面来让用户选择他要登录的客户端,然后为OpenIdConnectEvents
事件添加OnRedirectToIdentityProvider
处理程序并在那里替换ClientId属性。