app.UseWindowsAzureActiveDirectoryBearerAuthentication перестала работать после обновления с ADAL до MSAL - PullRequest
0 голосов
/ 07 июня 2019

Я запускаю несколько тестов с MSAL , но, к сожалению, он не работает должным образом.

Я все настроил для приложения ASP.NET MVC (.net 4.6) + Angular 1.6 SPA с ADAL и ADAL Angular. Все работало просто отлично, но потом я решил попробовать MSAL.

Мой сконфигурированный обработчик OnValidateIdentity провайдера в Startup.Auth.cs был правильно загружен ADAL, и я мог добавить дополнительные утверждения:

Provider = new OAuthBearerAuthenticationProvider
                    {
                        OnValidateIdentity = async context =>
                        {

Теперь, когда я изменил на MSAL для Angular JS, я получаю ID Token и Access Token, но мой обработчик OnValidateIdentity больше не срабатывает.

Используется ли app.UseWindowsAzureActiveDirectoryBearerAuthentication все еще в силе при использовании MSAL?

app.UseWindowsAzureActiveDirectoryBearerAuthentication(
                new WindowsAzureActiveDirectoryBearerAuthenticationOptions
                {
.
.
.

1 Ответ

1 голос
/ 13 июня 2019

MSAL предназначен для использования с регистрациями конвергированных приложений / v2.0, в то время как ADAL обычно предназначен для использования с регистрациями приложений v1.0,

Вам следует создать новое приложение, используя новый портал вportal.azure.com, если вы пытаетесь перейти на конечную точку v2.Кроме того, в этих документах рассматривается создание приложения v2.0 Регистрация: https://docs.microsoft.com/en-us/graph/auth-register-app-v2

Пожалуйста, обратитесь к этому ресурсу для получения дополнительной информации о миграции с v1 на конечную точку v2.https://azure.microsoft.com/en-gb/resources/samples/active-directory-dotnet-v1-to-v2/

Что касается специфики использования app.UseWindowsAzureActiveDirectoryBearerAuthentication

// ПРИМЕЧАНИЕ. Обычный WindowsAzureActiveDirectoryBearerAuthenticaitonMiddleware использует конечную точку метаданных //, которая не поддерживается v.0.0, которая не поддерживается v.0.0, которая не поддерживается v. 2.0, которая не поддерживается v. 2.0, которая не поддерживается v v2, которая не поддерживается v.конечная точка.Вместо этого этот // OpenIdConenctCachingSecurityTokenProvider может использоваться для извлечения и использования документа метаданных OpenIdConnect //.

app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
    AccessTokenFormat = new JwtFormat(tvps, new OpenIdConnectCachingSecurityTokenProvider("https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration")),
});

На него ссылаются из файла startup.cs: https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet/blob/a69a4cb41e821f0ea8dddc937ea401a03e2f49fe/TodoListService/App_Start/Startup.Auth.cs

Некоторое более хорошее чтение, которое немного сравнивает примеры приложений v1 / v2, можно найти здесь: https://simonlamb.codes/2017/02/27/net332-introduction-to-authentication-on-azure-active-directory/

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