Как настроить ClientId и ClientSecret времени выполнения на основе запрошенного API в IdentityServer3.AccessTokenValidation? - PullRequest
0 голосов
/ 29 декабря 2018

Мы настроили хост IdentityServer4 с использованием базовой библиотеки .Net, и все API-интерфейсы разработаны с использованием полной платформы .Net.

У нас есть требование поддерживать функцию ведения журнала аудита для каждого запроса и решать, можно ли получить доступ к запрошенному APIклиентом или нет.

Для библиотеки IdentityServer3.AccessTokenValidation требуется ClientId & ClientSecret, который является ничем иным, как APIResourceName & APIResourceSecret или WebRequestHandler для запуска событий самоанализа.

Но проблема здесь в том, что у нас есть несколько API, таких как Patient, Employee, Customer и т. Д.

Как динамически передавать ClientId и ClientSecret на основе запрошенного ресурса / API от клиента?

Примечание:

При такой конфигурации он запускает события TokenIntrospectionSuccess и TokenIntrospectionFailure.У нас есть подписчик на событие, который прослушивает эти события и, основываясь на доступной информации, может регистрировать, что запрошенный клиентом доступ к ресурсам был успешным или нет.

Если этой информации недостаточно, пожалуйста, дайте мне знать.

app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions()
 {
   Authority = "http://localhost:5000/",
   ClientId = "PatientAPI",
   ClientSecret = "secretvalue",
   ValidationMode = ValidationMode.ValidationEndpoint,
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...