Настройка SwaggerUI для включения информации профиля при авторизации на сервере идентификации 4

#swagger #identityserver4 #swagger-ui

Вопрос:

В моем ASP.NET 5 Проект API, я настроил пользовательский интерфейс Swagger для включения авторизации с помощью потока кода авторизации, как описано здесь: https://lurumad.github.io/swagger-ui-with-pkce-using-swashbuckle-asp-net-core. При нажатии на кнопку Авторизации в пользовательском интерфейсе Swagger я могу успешно войти в систему. Мой IdP-сервер идентификации 4. Версия с перекосом.Пакет AspNetCore 6.2.2 (последний).

Проблема теперь в том, что маркер доступа не содержит никакой информации о профиле пользователя, такой как имя, фамилия и т.д. Подзапрос присутствует, но мне нужна дополнительная информация о пользователе. Перед входом в систему я выбрал область профиля, которая также включена в код сантехники SwaggerUI. Переменная scopeList включает область профиля.

 options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
            {
                Type = SecuritySchemeType.OAuth2,
                Flows = new OpenApiOAuthFlows
                {
                    AuthorizationCode = new OpenApiOAuthFlow
                    {
                        AuthorizationUrl = new Uri(disco.AuthorizeEndpoint),
                        TokenUrl = new Uri(disco.TokenEndpoint),
                        Scopes = scopeList
                    }
                }
            });
 

введите описание изображения здесь

Я проверил маркер доступа в своем API, используя этот код:

 var accessToken = context.HttpContext.GetTokenAsync("access_token").GetAwaiter().GetResult();
 

В Startup.cs у меня также есть эта строка, чтобы убедиться, что дополнительное утверждение присутствует в заявлениях пользователей в API:

 JwtSecurityTokenHandler.DefaultMapInboundClaims = false;
 

Это не должно оказывать никакого влияния на токен доступа, возвращаемый сервером идентификации (верно?).

Когда я вставляю маркер доступа в https://jwt.io, он не содержит информации о профиле. Как я могу настроить SwaggerUI для запроса информации профиля, поступающей с сервера идентификации?

Я думаю, что мой сервер идентификации настроен правильно, когда я вхожу в веб-приложение, которое также аутентифицируется на том же сервере идентификации, информация о профиле присутствует в маркере доступа.