Ошибка входа в Azure ADB2C в веб-приложении ASP.NET Core 2 - PullRequest
0 голосов
/ 19 февраля 2019

Надеюсь, что кто-то может помочь мне решить проблему, возникшую у меня с Azure AD B2C и веб-приложением ASP.NET Core 2.

Проблема связана с маршрутом signin-oidc.

Когда я запускаю его локально, все работает отлично, но когда я отправляю его в Azure, эта страница возвращает ошибку 400, см. Скриншот ниже для получения дополнительной информации:

enter image description here

Вот как выглядит локальный запуск:

enter image description here

Я борюсь с тем, как устранить эту проблему.Я просмотрел журналы в веб-приложении и журналы аудита для Azure ADB2C и, похоже, не могу найти корневую проблему.

Вот мой код для аутентификации:

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect("AzureADB2C", options =>
{
    options.Authority = Configuration.GetValue<string>("AzureADB2COptions:Authority");
    options.ClientId = Configuration.GetValue<string>("AzureADB2COptions:ClientId");
    options.ClientSecret = Configuration.GetValue<string>("AzureADB2COptions:ClientSecret");
    options.RequireHttpsMetadata = false;
    options.MetadataAddress = Configuration.GetValue<string>("AzureADB2COptions:MetadataAddress");

    options.ResponseType = OpenIdConnectResponseType.IdToken;

    options.Scope.Clear();
    options.Scope.Add("openid");

    options.CallbackPath = new PathString(
        Configuration.GetValue<string>("AzureADB2COptions:CallbackPath"));

    options.ClaimsIssuer = "AzureADB2C";

    options.TokenValidationParameters =
        new TokenValidationParameters
        {
            NameClaimType = "name"
        };

    options.Events = new OpenIdConnectEvents
    {
        OnAuthorizationCodeReceived = (context) =>
        {
            return Task.CompletedTask;
        },
        OnAuthenticationFailed = (context) =>
        {
            return Task.CompletedTask;
        },
        OnTokenResponseReceived = (context) =>
        {
            return Task.CompletedTask;
        },
        OnTokenValidated = async (context) =>
        {
            if (context.SecurityToken is JwtSecurityToken token)
            {
                if (context.Principal.Identity is ClaimsIdentity identity)
                {
                    ...
                }
            }
        }
    };
});

Как я уже сказал, он работает локально, но не в Azure.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 19 февраля 2019

Я понял проблему, смутившись сказать, что она не имеет никакого отношения к Azure ADB2C, подумал, что это был signin-oidc, который якобы бомбил.

Я подключил AppInsights, в частности Live Metrics Stream, и смог выяснить проблему ... она была вызвана ошибкой в ​​наборе приложений.

Спасибо всем, кто потратил минуту, чтобы посмотреть на это, вместо того, чтобы удалить этот вопрос,

Я оставлю это здесь, возможно, оставлю кому-то еще неловкий вопрос или два.

...