layout: docs-default
IdentityServerBearerTokenAuthenticationOptions
有一系列的选项来调整令牌验证过程。
通用说明
-
Authority
设置IdentityServer的基础地址。这个允许自动配置(JWT)和访问令牌验证endpoint(参考令牌) -
RequiredScopes
设置一个 或者 多个scope
声明,期望在访问令牌中存在。 -
ValidationMode
可以设置为Local
(仅JWTs ),ValidationEndpoint
(JWTs 和参考令牌使用验证endpoint - 以及Both
用于 本地验证JWTs 以及使用验证endpoint验证参考令牌(默认为Both
). -
TokenProvider
定义了如何从HTTP请求中取到令牌,默认从Authorization
头中获取。自定义的令牌类型可能会从其它头或者查询字符串拿到令牌。 -
NameClaimType
设置ClaimsIdentity
的名字声明类型 (默认是name
). -
RoleClaimType
设置ClaimsIdentity
的角色声明类型 (默认是role
). -
PreserveAccessToken
如果设置为true,会创建一个叫做token
的声明来保存传入的访问令牌(默认是false
).当想把令牌转发给其它API,暂存令牌非常有用。比如调用用户信息endpoint。 -
BackChannelHttpHandler
允许为back-channel通信指定一个自定义处理程序
(比如:发现 endpoint 或令牌验证 endpoint). -
BackchannelCertificateValidator
为back-channel通信制定一个自定义证书验证 -
DelayLoadMetadata
告诉中间件不要在程序启动的时候装载元数据,应该在第一次请求的时候装载 (默认是false
). 当启动的时候discovery endpoint还没就绪--比如使用者和令牌服务托管在同一个进程中。
JWTs的静态配置
除了从发现endpoint自动获取配置信息外,我们也可以手动配置中间件。
-
IssuerName
设置期望的IdentityServer的issuer名字 -
SigningCertificate
设置X.509证书来验证访问令牌签名
备注 当某种情况下,发现文档不能用的时候,静态配置非常有用,比如IdentityServer和客户都或者API运行在同一个Web应用里
使用Introspection Endpoint ( v2.2新增)
IdentityServer2.2版本开始支持令牌的内省。当使用参考令牌的时候,推荐使用这种方式 (请看 here).
这种情况下,需要让ClientId
和 ClientSecret
的值和IdentityServer作用域配置中的name和secret 一样。(请看scopes)
启用缓存
当使用参考令牌,你不想每次请求都去IdentityServer验证一下,这种情况下可以缓存验证结果。
-
EnableValidationResultCache
启用或者禁用验证结果缓存(默认是false
). -
ValidationResultCacheDuration
设置缓存时长 (默认 5 分钟). -
ValidationResultCache
设置缓存实现。默认采用内存缓存但是可以通过实现IValidationResultCache
接口来扩展.
网友评论