Asp core 2.2 Multiply аутентификация - PullRequest
0 голосов
/ 28 января 2019

Как две JWT схемы аутентификации могут работать одновременно?В случае, если один из них недействителен, весь запрос должен рассматриваться как несанкционированный.В противном случае все претензии должны быть объединены в единый ClaimsIdentity.У меня есть следующая конфигурация при запуске:

services.AddAuthentication(opt =>
            {
                opt.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                opt.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(opt =>
            {
                Configuration.GetSection(nameof(JwtBearerOptions)).Bind(opt);
                opt.Validate();
            })
            .AddJwtBearer("CustomBearer", opt =>
        {
            Configuration.GetSection("CustomJwtBearerOptions").Bind(opt);
            opt.TokenValidationParameters.IssuerSigningKey = new SymmetricSecurityKey(key);
            opt.Events = new JwtBearerEvents
            {
                OnMessageReceived = ctx =>
                {
                    if (ctx.Request.Headers.TryGetValue("CustomAuthorization", out StringValues headerValue))
                    {
                        ctx.Token = headerValue.ToString().Substring("Bearer ".Length).Trim();
                    }

                    return Task.CompletedTask;
                }
            };
            opt.Validate();
        });

Если я запускаю запрос и оба токена действительны, я получаю список объединенных заявок (как и ожидалось).Но если один токен равен valid, а другой - invalid, я все равно получаю 200 ok (единственное отличие состоит в том, что на этот раз я получаю только половину требований).Так как я могу получить «несанкционированный», если хотя бы один токен недействителен?

PS Пожалуйста, не судите сильно, я довольно новичок в этой области.Спасибо)

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