Как проверить токен PingFederate JWT в .net core (3.1) web api?

#asp.net-core #asp.net-core-webapi #pingfederate

#asp.net-core #asp.net-core-webapi #pingfederate

Вопрос:

Я хотел бы проверить токен доступа PingFederate в конце .Net Core (3.1) api. Я пытаюсь использовать конечную точку introspect в качестве полномочий с помощью токена, полученного от клиента.

Однако я получаю следующую систему ошибок.Исключение InvalidOperationException: IDX20803: не удалось получить конфигурацию из: ‘System.Строка’.

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

Я следил за приведенным ниже потоком кода

   services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                .AddJwtBearer(options =>
                {
                    options.Audience = Configuration["Audience"];
                    options.Authority = "https://dev.abc.com/as/introspect.oauth2/";
                    options.TokenValidationParameters = new TokenValidationParameters
                    {
                        // Validate the JWT Audience
                        ValidateIssuerSigningKey = true,
                        IssuerSigningKey = new X509SecurityKey(x509Cert),
                        ValidateIssuer = true,
                        ValidIssuer = "https://dev.abc.com"
                        ValidateAudience = true,
                        ValidateLifetime = true
                    };
                });
 
 

Комментарии:

1. Какова ценность Configuration["Audience"] ? Вы уверены, что проблема в этом коде?

2. Я использую идентификатор клиента в качестве свойства аудитории.

3. Хорошо, но покажите нам значение Configuration [«Аудитория»]. Вы уверены, что проблема в этом коде? Вы получили ошибку о конфигурации, итак, вы уверены, что проблема в этом коде?

4. Я использую «dev-test» в качестве конфигурации [«Аудитория»]. при регистрации приложения я использовал «dev-test» в качестве идентификатора клиента.

Ответ №1:

Разве аудитория не должна быть одной из ваших redirect_uri? Также вашим полномочием должно быть значение эмитента в вашей хорошо известной конфигурации, в вашем случае, скорее всего: «эмитент»: «https://dev.abc.com «