Измените имя заголовка в nginx для базовой аутентификации или Aspnetcore для JWT - PullRequest
0 голосов
/ 26 октября 2018

У меня сложная проблема. Моя проблема в том, что я использую сайт asp.net core 2.0 с jwt. Когда JWT передает токен, он имеет имя заголовка как Аутентификация, теперь мне нужно добавить HTTP Basic Auth для Nginx, который также использует тот же заголовок. после входа в систему Nginx показывает 403, поскольку переопределяет заголовок.

Мне нужно изменить заголовок JWT или заголовок Nginx, в зависимости от того, что возможно.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Я решаю с этим в Startup.ConfigureServices

var appSettings = appSettingsSection.Get<AppSettings>();
        var key = Encoding.ASCII.GetBytes(appSettings.Secret);
        services.AddAuthentication(x =>
        {
            x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })

        .AddJwtBearer(x =>
        {
            x.Events = new JwtBearerEvents()
            {
                OnMessageReceived = context =>
                {
                    var header = context.HttpContext.Request.Headers["custom-header"].ToString();

                    if (!string.IsNullOrEmpty(header) && header.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase))
                    {
                        context.Token = header.Substring("Bearer ".Length).Trim();
                    }

                    return Task.CompletedTask;
                }
            };
            x.RequireHttpsMetadata = false;
            x.SaveToken = true;
            x.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey = new SymmetricSecurityKey(key),
                ValidateIssuer = false,
                ValidateAudience = false
            };
        });

А в Startup.Configure

app.UseAuthentication();
0 голосов
/ 27 октября 2018

Моя проблема была решена

Вам необходимо установить переопределение события OnMessageReceived:

https://github.com/aspnet/AspNetCore/issues/3728

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