如何在IdentityServer3.AccessTokenValidation中基于请求的API配置运行时ClientId和ClientSecret?

时间:2018-12-29 16:08:00

标签: c# identityserver4 identityserver3

我们已经使用.Net核心库配置了IdentityServer4主机,并且所有API均使用.Net完整框架开发。

我们确实需要为每个请求支持审核日志记录功能,并确定客户端是否可以访问所请求的API。

IdentityServer3.AccessTokenValidation库需要ClientId和ClientSecret,这仅是APIResourceName和APIResourceSecret或WebRequestHandler来引发内省事件。

但是这里的问题是,我们确实有多个API,例如Patient,Employee,Customer等。

如何根据客户端请求的资源/ API动态传递ClientId和ClientSecret?

注意:

使用此配置,它将触发TokenIntrospectionSuccess和TokenIntrospectionFailure事件。我们确实有事件订阅者,该事件订阅者会侦听此事件,并基于可用信息,可以记录客户端请求的资源访问成功与否。

如果此信息不足,请告诉我。

app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions()
 {
   Authority = "http://localhost:5000/",
   ClientId = "PatientAPI",
   ClientSecret = "secretvalue",
   ValidationMode = ValidationMode.ValidationEndpoint,
 });

0 个答案:

没有答案