Как включить групповые заявки в токен JWT с помощью Swagger? - PullRequest
0 голосов
/ 24 сентября 2019

Чистое основное приложение.Я реализовал аутентификацию с использованием подхода OAuth v2.Сейчас я пытаюсь включить групповые заявки в свой токен JWT.Я сделал ниже изменения в моем манифесте.Я не могу получить группы, когда я аутентифицируюсь через swagger.

"groupMembershipClaims": "All",
"optionalClaims": {
    "accessToken": [{
        "name": "groups"
    }]
}

Мало групп в облаке и несколько групп в Windows server AD.После внесения вышеуказанных изменений я не вижу деталей групп в своих претензиях.Ниже приведен мой код.

                services.AddAuthentication(o =>
               {
                   o.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;

               })
               .AddJwtBearer(o =>
               {
                   o.Authority = azureActiveDirectoryOptions.Authority;

                   o.TokenValidationParameters = new TokenValidationParameters
                   {

                       ValidAudiences = new List<string>
                       {
                          azureActiveDirectoryOptions.AppIdUri,
                          azureActiveDirectoryOptions.ClientId
                       },
                   };
               });
services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });

            c.AddSecurityDefinition("oauth2", new OAuth2Scheme
            {
                Type = "oauth2",
                Flow = "implicit",
                AuthorizationUrl = swaggerUIOptions.AuthorizationUrl,
                TokenUrl = swaggerUIOptions.TokenUrl,
                Scopes = new Dictionary<string, string>
                {
                    {"Read", "id/.default" }
                }
            });
            c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>>
            {
                    { "oauth2", new[] { "readAccess", "writeAccess" } }
            });
        });

Ниже приведен метод настройки.

app.UseSwaggerUI(c =>
            {

                c.OAuthClientId(swaggerUIOptions.ClientId);
                c.OAuthClientSecret(swaggerUIOptions.ClientSecret);
                c.OAuthRealm(azureActiveDirectoryOptions.ClientId);
                c.OAuthAppName("Swagger");
                c.OAuthAdditionalQueryStringParams(new { resource = azureActiveDirectoryOptions.ClientId });
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
            });

Я могу получить информацию о группе с помощью почтальона, но не в аутентификации моего чванства.Может ли кто-нибудь помочь мне выяснить, в чем проблема и почему я не могу видеть детали группы?Нужно ли что-то настраивать в портале Azure?Любая помощь будет оценена.Спасибо

...