IdentityServer4 Внешняя аутентификация (Azure Active Directory) завершается ошибкой - PullRequest
0 голосов
/ 30 марта 2020

Я создал проект из шаблона: " is4aspid " и добавил Azure Аутентификация Active Directory. В Startup.cs добавили этот код:

  // preserve OIDC state in cache (solves problems with AAD and URL lenghts)
  services.AddOidcStateDataFormatterCache();
  // cookie policy to deal with temporary browser incompatibilities
  services.AddSameSiteCookiePolicy();

  services.AddAuthentication()
          .AddOpenIdConnect("aad", "Sign-in with Azure AD", options =>
          {
                    options.Authority = "https://login.microsoftonline.com/common";
                    options.ClientId = "myClientId";
                    options.ClientSecret = "myClientSecret";

                    options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
                    options.SignOutScheme = IdentityServerConstants.SignoutScheme;

                    options.ResponseType = "id_token";
                    options.CallbackPath = "/signin-aad";
                    options.SignedOutCallbackPath = "/signout-callback-aad";
                    options.RemoteSignOutPath = "/signout-aad";

                    options.TokenValidationParameters = new TokenValidationParameters
                    {
                        ValidateIssuer = false,
                        ValidateAudience = false,
                        NameClaimType = "name",
                        RoleClaimType = "role"
                    };
          });

Я добавил URI перенаправления на Azure: http://localhost: 5000 / signin-aad

Произошла ошибка, где Метод обратного вызова вызывается. HttpContext.AuthenticateAsyn c (IdentityConstants.ExternalScheme) Успех всегда false

[HttpGet]
public async Task<IActionResult> Callback()
{
    var result = await HttpContext.AuthenticateAsync(IdentityConstants.ExternalScheme);
    if (result?.Succeeded != true)
    {
       throw new Exception("External authentication error");
    }
    // some code
}

Где моя ошибка?

1 Ответ

0 голосов
/ 30 марта 2020

Решение

Необходимо определить IdentityConstants.ExternalScheme при запуске и обратном вызове

...