Одно приложение веб-API ASP.NET Core 2.2 с использованием нескольких идентификаторов клиентов (идентификаторов приложений) Azure AD B2C - PullRequest
0 голосов
/ 15 января 2019

У меня есть приложение ASP.NET 2.2 Web API, использующее Azure AD B2C для аутентификации

У меня три требования к ролям. Каждая роль имеет разные политики Azure AD B2C, и у пользователя может быть одна и только одна роль.

В настоящее время добавление ролей с B2C запутано:

https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/10123836-get-user-membership-groups-in-the-claims-with-ad-b

Авторизация по группам в Azure Active Directory B2C

И чтобы определить роль и политики для каждой роли, я рассматриваю возможность использования нескольких приложений Azure AD B2C в одном базовом веб-API ASP.NET.

Мой ASP.NET Config для Azure AD B2C в Startup.cs выглядит следующим образом:

services.AddAuthentication(AzureADB2CDefaults.JwtBearerAuthenticationScheme)
.AddAzureADB2CBearer(o => Configuration.Bind("AzureAdB2C", o));

Возможно ли наличие нескольких клиентских идентификаторов Azure AD B2C (идентификаторов приложений) в ASP.NET Core? Есть библиотеки для этого? У вас есть лучшее предложение?

1 Ответ

0 голосов
/ 15 января 2019

Я бы предложил получить информацию о группе пользователей в одной из функций уведомлений (например, SecurityTokenValidated) и добавить претензию к ClaimsPrincipal. Вы можете нажать здесь для примера кода.

Если вы регистрируете несколько приложений, если используете поток предоставления кода OAuth 2.0 , при перенаправлении пользователя на страницу входа в Azure AD вы должны указать идентификатор клиента, как узнать, какой идентификатор клиента следует использовать, прежде чем узнавать кто текущий пользователь? Если вы не создадите дополнительную страницу, чтобы позволить пользователю выбрать, к какому клиенту он хочет войти, а затем добавьте обработчик OpenIdConnectEvents для события OnRedirectToIdentityProvider и замените там свойство ClientId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...