Мы настроили хост 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,
});