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接口来扩展.