Добавление пользовательских утверждений в приложение, прошедшее проверку подлинности AspNetCore Azure - PullRequest
0 голосов
/ 21 февраля 2020

Я использую шаблонную авторизацию AspNetCore с этой строкой кода:

       services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
            .AddAzureAD(options => Configuration.Bind("AzureAd", options));

Как я могу добавить свои пользовательские утверждения после того, как пользователь авторизован Azure?

1 Ответ

1 голос
/ 21 февраля 2020

Вы можете добавить собственные климы в OnTokenValidated события OID C:

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
            .AddAzureAD(options => Configuration.Bind("AzureAd", options));


services.Configure<OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options =>
{
    options.Events = new OpenIdConnectEvents
    {
        OnTokenValidated = ctx =>
        {


            // add claims
            var claims = new List<Claim>
            {
                new Claim(ClaimTypes.Role, "Admin")
            };
            var appIdentity = new ClaimsIdentity(claims);

            ctx.Principal.AddIdentity(appIdentity);

            return Task.CompletedTask;
        },
    };
});

Затем в контроллере вы можете получить претензию как:

var role = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Role)?.Value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...