Использовать удостоверение ASP.Net Core 2 с аутентификацией единого владельца Azure Ad - PullRequest
0 голосов
/ 19 октября 2018

Я хотел бы получить помощь от сообщества по одной проблеме, которую я не понимаю.Я создаю веб-приложение asp.net core 2 и хочу настроить приложение так, чтобы оно могло входить в систему из приложения через таблицу aspnetuser или используя учетную запись компании O365 .Затем я следовал нескольким методам, описанным в сети, размещенным на сайте MSDN.Аутентификация приложения работает нормально, но добавление Azure вернуло: Ошибка загрузки информации о внешнем входе в систему. Я проверил внутри кода, генерируя представления идентичности, приложение не удалось:

 var info = await _signInManager.GetExternalLoginInfoAsync();
        if (info == null)
        {
            ErrorMessage = "Error loading external login information.";
            return RedirectToPage("./Login", new { ReturnUrl = returnUrl });
        }

await _signInManager.GetExternalLoginInfoAsync();верните null и верните сообщение об ошибке.

Приложение правильно настроено в Azure AD, и оно будет работать из моего приложения, если я удалю аутентификацию из приложения.

Я настроил промежуточное ПО приложения следующим образом:

public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddAuthentication(AzureADDefaults.AuthenticationScheme).AddCookie()
            .AddAzureAD(options => Configuration.Bind("AzureAd", options));
        services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
        {
            options.Authority = options.Authority + "/v2.0/";
            options.TokenValidationParameters.ValidateIssuer = true;
        });

И в методе настройки я добавил

app.UseAuthentication();

Когда я прихожу на свое приложение для входа в систему (поддерживается VS), все кажется правильным:

Экран входа в системус двумя возможностями аутентификации]:

Login screen with two possibilities for authentication

Сообщение об ошибке при попытке использовать метод Azure Active Directory:

Error message when i try Azure Active Directory method

Может кто-нибудь объяснить и помочь мне решить эту проблему?

Заранее спасибо

1 Ответ

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

К сожалению, у меня была более или менее та же самая проблема.Хотя образец Azure работал сам по себе, когда я попытался интегрировать его в существующее приложение, которое использует Identity и другие внешние службы аутентификации, я не смог заставить AzureAD работать.Интересно, что хотя в окне вывода я мог видеть сообщения о том, что вход в систему выполнен.

То, что я сделал (и это скорее обходной путь, нежели точное решение проблемы), заключалось в том, чтобыОткажитесь от использования пакета Microsoft.AspNetCore.Authentication.AzureAD.UI, и я решил пойти дальше и вручную настроить OpenID для Azure. Эта статья очень помогла мне в этом.

Сказав это, я надеюсь, что кто-то отправит более прямой ответ на ваш вопрос.

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