Используете MSAL для Azure AD-B2C в AspNetCore?

Вот моя проблема: я создаю новое веб-приложение AspNetCore в VS2017 RC.

Поскольку я хочу использовать Azure AD B2C для проверки подлинности, я добавляю необходимые пакеты NuGet:

Microsoft.AspNetCore.Authentication.Cookies
Microsoft.AspNetCore.Authentication.OpenIdConnect

Затем я добавляю весь код для настройки аутентификации. Фактически, я воспроизвел демонстрацию приложения в этом видео на Channel9: https://channel9.msdn.com/events/Ignite/Australia-2017/CLD336a.

Он работает нормально, и я могу пройти аутентификацию, как и ожидалось. Теперь я хочу получить access_token для доступа к моему WebApi, также защищенному с помощью AAD-B2C. Для этого мне нужно изменить ResponseType на

ResponseType = OpenIdConnectResponseType.CodeIdToken

и обработать событие OnAuthorizationCodeReceived. Насколько я понимаю, для этого мне нужно добавить пакет Nuget Microsoft.IdentityModel.Clients.ActiveDirectory. Но эта библиотека не будет нацелена на конечную точку v2.0, которая мне нужна для AAD-B2C.

Итак, я видел в другом решении GitHub (https://github.com/dzimchuk/azure-ad-b2c-asp-net-core), чтобы я мог использовать пакет Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory.

К сожалению, этот пакет несовместим с NETCoreApp, Version = v1.0, и я получаю это сообщение об ошибке при попытке добавить его в свой проект:

Один или несколько пакетов несовместимы с .NETCoreApp, Version = v1.0 (win-x64).

Пакет Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 4.0.209160138-alpha несовместим с netcoreapp1.0 (.NETCoreApp, Version = v1.0) / win-x86. Пакет Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 4.0.209160138-alpha

Что мне не хватает?


person PatLac    schedule 07.03.2017    source источник


Ответы (1)


Azure AD B2C в настоящее время не поддерживает маркеры доступа к ресурсу, отличному от «self». Чтобы получить токен доступа для себя, вам просто нужно указать идентификатор клиента / приложения в качестве области видимости. Вы можете опубликовать сообщение в User Voice, чтобы порекомендовать эту функцию и проверьте другие рекомендуемые пользователем функции (это было запрошено ранее).

Что касается путаницы в вашей библиотеке, вы определенно захотите придерживаться MSAL. Экспериментальная ветвь ADAL не рекомендуется и активно не развивается.

person Daniel Dobalian    schedule 07.03.2017
comment
Спасибо, Даниэль, я знаю об ограничении, и моя область действия установлена ​​на client_id. Но мне все еще нужно обработать событие OnAuthorizationCodeReceived, чтобы получить access_token для себя, не так ли? Если да, то я застрял с проблемой, описанной выше. - person PatLac; 08.03.2017