第 6 章 OpenID Connect (OIDC)配置属性
作为 Quarkus 开发人员,您可以通过在 src/main/resources/application.properties
文件中设置以下属性来配置 Quarkus OpenID Connect (OIDC)扩展。
6.1. OIDC 配置
在构建时修复的配置属性 - 所有其他配置属性在运行时可覆盖
配置属性 | 类型 | default |
如果启用了 OIDC 扩展。
环境变量: | 布尔值 |
|
授权类型,用于获取令牌来测试 OIDC 'service' 应用程序
环境变量: | client: 'client_credentials' grant Password: 'password' grant Code: 'authorization_code' grant 隐式: "implicit" 授权 | |
授权选项
环境变量: | Map<String,Map<String,String>> | |
WebClient 超时。使用此属性配置 Dev UI 处理程序使用的 HTTP 客户端在从 OpenId Connect Provider 请求令牌并将其发送到服务端点时,将等待响应。OIDC dev 服务管理客户端也使用此超时。
环境变量: |
| |
启用注册 Default TokenIntrospection 和 UserInfo Cache 实现 bean。注: 这仅启用默认的实施。它需要激活配置。请参阅
环境变量: | 布尔值 |
|
OpenID Connect (OIDC)服务器的基本 URL,例如
环境变量: | string | |
发现 OIDC 端点。如果没有启用,您必须单独配置 OIDC 端点 URL。
环境变量: | 布尔值 |
|
签发访问和刷新令牌的 OIDC 令牌端点;指定为相对路径或绝对 URL。如果
环境变量: | string | |
OIDC 令牌撤销端点的相对路径或绝对路径 URL。
环境变量: | string | |
应用程序的客户端 ID。每个应用都有一个客户端 ID,用于标识应用程序。如果
环境变量: | string | |
应用的客户端名称。它代表应用程序的人类可读描述,您可以在 OpenId Connect 供应商的仪表板中注册应用程序(客户端)时提供。例如,您可以将此属性设置为具有更详细的日志消息,记录给定客户端的活动。
环境变量: | string | |
尝试初始连接到 OIDC 服务器的持续时间。例如,将持续时间设置为
环境变量: | ||
如果临时丢失,重试重新建立现有 OIDC 连接的次数。与
环境变量: | int |
|
当前 OIDC 连接请求超时的秒数。
环境变量: |
| |
是否应该对 worker 线程执行 DNS 查找。当您可以看到由 HTTP 请求到 OIDC 服务器阻止的 Vert.x 事件循环的日志记录警告时,请使用这个选项。
环境变量: | 布尔值 |
|
WebClient 使用的连接池的最大大小。
环境变量: | int | |
环境变量: | string | |
客户端机密值。如果设置了
环境变量: | string | |
CredentialsProvider bean 名称,只有在注册了多个 CredentialsProvider 时才应设置
环境变量: | string | |
CredentialsProvider 密钥环名称。只有在使用的 CredentialsProvider 需要密钥环名称来查找 secret 时,才需要密钥环名称,这通常是当一个 CredentialsProvider 被多个扩展共享时,才需要多个扩展从更多动态源(如 vault 实例或 secret manager)检索凭证时。
环境变量: | string | |
CredentialsProvider 客户端 secret 密钥
环境变量: | string | |
身份验证方法。如果设置了
环境变量: |
基本:
post:
post-jwt: query :客户端 ID 和 secret 作为 HTTP 查询参数提交。这个选项只支持 OIDC 扩展。 | |
JWT 令牌源:OIDC 供应商客户端或现有的 JWT bearer 令牌。
环境变量: |
|
|
如果提供,则表示 JWT 使用 secret 密钥进行了签名。
环境变量: | string | |
CredentialsProvider bean 名称,只有在注册了多个 CredentialsProvider 时才应设置
环境变量: | string | |
CredentialsProvider 密钥环名称。只有在使用的 CredentialsProvider 需要密钥环名称来查找 secret 时,才需要密钥环名称,这通常是当一个 CredentialsProvider 被多个扩展共享时,才需要多个扩展从更多动态源(如 vault 实例或 secret manager)检索凭证时。
环境变量: | string | |
CredentialsProvider 客户端 secret 密钥
环境变量: | string | |
私钥的字符串表示。如果提供,则表示 JWT 是使用 PEM 或 JWK 格式的私钥签名的。您可以使用
环境变量: | string | |
如果提供,则表示 JWT 是使用 PEM 或 JWK 格式的私钥签名的。您可以使用
环境变量: | string | |
如果提供,则表示 JWT 使用密钥存储中的私钥签名。
环境变量: | string | |
指定密钥存储文件的密码的参数。
环境变量: | string | |
私钥 ID 或别名。
环境变量: | string | |
私钥密码。
环境变量: | string | |
JWT 受众(u
环境变量: | string | |
添加为 JWT
环境变量: | string | |
添加为 JWT 的签名密钥的签发者
环境变量: | string | |
添加为 JWT
环境变量: | string | |
其他声明.
环境变量: | Map<String,String> | |
用于
环境变量: | string | |
JWT 生命周期(以秒为单位)。这个值添加到发出 JWT 的时间,以计算过期时间。
环境变量: | int |
|
如果为 true,则客户端身份验证令牌是 JWT bearer 授权断言。不生成 'client_assertion' 和 'client_assertion_type' 表单属性,而是只生成 'assertion'。这个选项只支持 OIDC 客户端扩展。
环境变量: | 布尔值 |
|
代理的主机名或 IP 地址。
环境变量: | string | |
代理的端口号。默认值为
环境变量: | int |
|
如果代理需要身份验证,则用户名。
环境变量: | string | |
如果代理需要身份验证,则密码。
环境变量: | string | |
证书验证和主机名验证,可以是以下
环境变量: | 必需 :证书会被验证,并且启用了主机名验证。这是默认值。 certificate-validation :证书会被验证,但禁用主机名验证。 none :所有证书都是可信的,主机名验证被禁用。 | |
保存证书信息的可选密钥存储,而不是指定单独的文件。
环境变量: | path | |
密钥存储文件的类型。如果未指定,则根据文件名自动检测到类型。
环境变量: | string | |
密钥存储文件的提供程序。如果未指定,则根据密钥存储文件类型自动检测到该提供程序。
环境变量: | string | |
密钥存储文件的密码。如果未指定,则使用默认值,即
环境变量: | string | |
密钥存储中特定密钥的别名。禁用 SNI 时,如果密钥存储包含多个密钥且没有指定别名,则行为未定义。
环境变量: | string | |
密钥的密码(如果与
环境变量: | string | |
保存要信任的证书信息的信任存储。
环境变量: | path | |
truststore 文件的密码。
环境变量: | string | |
信任存储证书的别名。
环境变量: | string | |
truststore 文件的类型。如果未指定,则根据文件名自动检测到类型。
环境变量: | string | |
truststore 文件的供应商。如果没有提供,则会根据信任存储文件类型自动检测到供应商。
环境变量: | string | |
唯一的租户标识符。它可以由
环境变量: | string | |
如果启用了此租户配置。如果没有配置,但支持租户配置的
环境变量: | 布尔值 |
|
应用程序类型,可以是以下
环境变量: |
web-app:
服务 : service 服务是一组受保护的 HTTP 资源的客户端,通常是遵循 RESTful 架构师设计的后端应用程序。
混合 : service 和 | service |
OpenID Connect (OIDC)授权端点的相对路径或绝对 URL,用于验证用户。如果 OIDC 发现被禁用,则必须为
环境变量: | string | |
OIDC UserInfo 端点的相对路径或绝对路径 URL。如果 OIDC 发现被禁用并且启用了
环境变量: | string | |
OIDC RFC7662 内省端点的相对路径或绝对路径 URL,这些端点可以内省不透明和 JSON Web 令牌(JWT)令牌。如果禁用了 OIDC 发现,并且必须验证不透明 bearer 访问令牌,或 2)当缓存的 JWK 验证集没有匹配的 JWK 验证集时,必须设置此属性。如果启用了发现,则忽略此属性。
环境变量: | string | |
返回 JSON Web 密钥验证集的 OIDC JSON Web Key Set (JWKS)端点的相对路径或绝对路径。如果禁用了 OIDC 发现且需要本地 JWT 验证,则应设置此属性。如果启用了发现,则忽略此属性。
环境变量: | string | |
OIDC end_session_endpoint 的相对路径或绝对路径 URL。如果禁用了 OIDC 发现,并且需要对
环境变量: | string | |
此租户必须保护的路径。带有最具体路径的租户胜出。有关允许 路径模式的解释,请参阅 OIDC 多租户指南中的配置租户 路径部分。
环境变量: | 字符串列表 | |
本地 JWT 令牌验证的公钥。当设置此属性时,不会创建 OIDC 服务器连接。
环境变量: | string | |
Name
环境变量: | string | |
Secret
环境变量: | string | |
包含使用
环境变量: | 布尔值 |
|
包含组数组的声明的路径列表。每个路径从顶级 JWT JSON 对象开始,并可以包含多个片段。每个片段仅代表一个 JSON 对象名称,例如:"realm/groups"。使用带命名空间限定声明名称的双引号。如果令牌没有
环境变量: | 字符串列表 | |
包含多个组值的字符串的分隔符。只有在 "role-claim-path" 属性指向值为字符串的一个或多个自定义声明时才使用它。默认情况下会使用单个空格,因为标准
环境变量: | string | |
主体角色的源。
环境变量: |
idtoken: ID Token -
accessToken: Access Token - userinfo: User Info | |
预期的签发者
环境变量: | string | |
预期
环境变量: | 字符串列表 | |
要求令牌包含
环境变量: | 布尔值 |
|
所需的声明及其预期值的映射。例如,
环境变量: | Map<String,String> | |
预期的令牌类型
环境变量: | string | |
生命周期跨宽限期(以秒为单位)。在检查令牌到期时,允许当前的时间超过令牌过期时间(最多配置的秒数)。在检查令牌颁发时,当前时间最多允许于令牌问题时间超过配置的秒数。
环境变量: | int | |
令牌期限.它可指定自
环境变量: | ||
如果您的 JWT 令牌不包含
环境变量: | 布尔值 |
|
包含主体名称的声明的名称。默认情况下,会检查
环境变量: | string | |
刷新已过期的授权代码流 ID 或访问令牌。如果启用了此属性,如果授权代码 ID 或访问令牌已过期,则会执行刷新令牌请求,如果成功,本地会话会使用新的令牌集合更新。否则,本地会话将无效,用户重定向到 OpenID 提供程序以重新进行身份验证。在这种情况下,如果 OIDC 供应商会话仍然活跃,用户可能无法再次挑战。对于此选项,password
环境变量: | 布尔值 |
|
刷新令牌时间偏移(以秒为单位)。如果启用了此属性,在检查授权代码 ID 或访问令牌是否应刷新时,配置的秒数会添加到当前时间。如果总和大于授权代码 ID 或访问令牌的过期时间,则会进行刷新。
环境变量: | ||
强制 JWK 设置刷新间隔(以分钟为单位)。
环境变量: |
| |
包含 bearer 令牌的自定义 HTTP 标头。只有在应用程序类型为
环境变量: | string | |
HTTP 授权标头方案.
环境变量: | string |
|
所需的签名算法。OIDC 供应商支持许多签名算法,但如果需要,您可以限制 Quarkus 应用程序来接受仅使用此属性配置的算法签名的令牌。
环境变量: |
| |
解密密钥位置.JWT 令牌可由 OpenId Connect 提供程序进行内部签名和加密。但是,并不总是能够远程内省此类令牌,因为提供程序可能无法控制私钥。在这种情况下,将此属性设置为指向包含 PEM 或 JSON Web 密钥(JWK)格式的解密私钥的文件。如果没有设置此属性,并且使用了
环境变量: | string | |
当没有匹配的 JWK 密钥时,允许远程内省 JWT 令牌。出于向后兼容性的原因,此属性默认设置为
环境变量: | 布尔值 |
|
要求仅远程内省 JWT 令牌。
环境变量: | 布尔值 |
|
允许远程内省不透明令牌。如果只有 JWT 令牌,则将此属性设置为
环境变量: | 布尔值 |
|
令牌自定义器名称。允许选择特定于租户的令牌自定义器作为命名 Bean。在注册自定义令牌时,首选使用
环境变量: | string | |
间接验证不透明(二进制)访问令牌是否有效,方法是请求 UserInfo。如果提供商接受此令牌并返回有效的 UserInfo,则不透明访问令牌被视为有效。只有在必须接受不透明访问令牌但 OpenId Connect 供应商没有令牌内省端点时,才应启用此选项。当必须验证 JWT 令牌时,此属性无效。
环境变量: | 布尔值 |
|
应用程序上 logout 端点的相对路径。如果提供,应用程序可以通过此端点启动注销,并符合 OpenID Connect RP-Initiated Logout 规格。
环境变量: | string | |
从 OpenID Connect 提供程序注销后,用户应重定向到的应用程序端点的相对路径。此端点 URI 必须在 OpenID Connect Provider 上正确注册,作为有效的重定向 URI。
环境变量: | string | |
post logout URI 参数的名称,作为查询参数添加到 logout 重定向 URI。
环境变量: | string |
|
添加作为查询参数到 logout 重定向 URI 的额外属性。
环境变量: | Map<String,String> | |
应用程序中 Back-Channel Logout 端点的相对路径。它必须以正斜杠 '/' 开头,例如 '/back-channel-logout'。这个值总是相对于 'quarkus.http.root-path' 解析。
环境变量: | string | |
在与会话 Cookie 中存储的 ID 令牌匹配之前可以缓存的最大注销令牌数。
环境变量: | int |
|
可以缓存注销令牌的分钟数。
环境变量: |
| |
令牌缓存计时器间隔。如果设置了此属性,则计时器会定期检查并删除过时的条目。
环境变量: | ||
注销令牌声明,其值用作缓存令牌的密钥。只有
环境变量: | string |
|
应用程序中 Front-Channel Logout 端点的相对路径。
环境变量: | string | |
leaf 证书的通用名称。如果
环境变量: | string | |
truststore 文件,用于保留可信证书的指纹。
环境变量: | path | |
如果使用
环境变量: | string | |
指定信任存储证书的别名的参数。
环境变量: | string | |
指定信任存储文件类型的可选参数。如果未指定,则根据文件名自动检测到类型。
环境变量: | string | |
授权代码流响应模式。
环境变量: |
query: Authorization 响应参数在添加到 form-post: Authorization 响应参数编码为 HTML 表单值,这些值由浏览器中自动提交并由 HTTP POST 方法使用 application/x-www-form-urlencoded 内容类型传输 | query |
计算
环境变量: | string | |
如果此属性设为
环境变量: | 布尔值 |
|
在用户通过将用户重定向到同一 URI 后,在重定向 URI 上删除由 OIDC 服务器设置
环境变量: | 布尔值 |
|
指向处理 OIDC 授权端点错误响应的公共端点的相对路径。如果用户身份验证失败,OIDC 供应商会返回一个错误和可选的
环境变量: | string | |
当会话已过期时,经过身份验证的用户重定向到的公共端点的相对路径。 当 OIDC 会话已过期且会话无法刷新时,用户会被重定向到 OIDC 供应商来重新验证。在这种情况下,用户体验可能并不理想,因为因为返回身份验证质询的原因可能并不明显。 您希望用户再次重定向到公共应用特定页面,则设置此属性。这可通知会话已过期,并建议用户按照到安全初始条目页面的链接来重新验证。
环境变量: | string | |
作为授权代码流的一部分,从 OIDC 供应商获取 ID 和访问令牌。 ID 令牌始终在每个用户请求上验证,作为主令牌,用于代表主体并提取角色。
授权代码流访问令牌旨在传播到下游服务,除非
如果此令牌被注入 JsonWebToken,则也启用了授权代码流访问令牌验证。如果不需要,将此属性设置为 bearer 访问令牌始终被验证。
环境变量: | 布尔值 |
|
在 SSL/TLS 终止反向代理后面运行时,强制
环境变量: | 布尔值 |
|
范围列表
环境变量: | 字符串列表 | |
配置多个范围时使用的分隔符。默认使用单个空间。
环境变量: | string | |
要求 ID 令牌包含非
环境变量: | 布尔值 |
|
将
环境变量: | 布尔值 |
|
添加作为查询参数到身份验证重定向 URI 的额外属性。
环境变量: | Map<String,String> | |
请求 URL 查询参数(如果存在)添加到身份验证重定向 URI 中。
环境变量: | 字符串列表 | |
如果启用了 state、session 和 post logout cookies,则在使用 HTTP 时将其
环境变量: | 布尔值 |
|
Cookie 名称后缀。例如,默认 OIDC 租户的会话 Cookie 名称为
环境变量: | string | |
Cookie path 参数值(如果设置了)用于为会话设置 path 参数,state 和 post logout cookies。如果设置,则
环境变量: | string |
|
Cookie path header 参数值(如果设置)标识传入的 HTTP 标头,其值用于为会话、状态和发布 logout cookie 设置 path 参数。如果缺少标头,则会检查
环境变量: | string | |
Cookie 域参数值(如果设置了)用于会话,state 和 post logout cookies。
环境变量: | string | |
会话 Cookie 的 SameSite 属性。
环境变量: |
|
|
如果存在状态 Cookie,则
环境变量: | 布尔值 |
|
如果 state cookie 存在但没有状态查询参数,则失败并显示 HTTP 401 错误。 当禁用多个身份验证或者重定向 URL 与原始请求 URL 匹配时,过时的状态 Cookie 可能会保留在之前失败的浏览器缓存中,并可在当前请求中可见。例如,如果 Single-page 应用(SPA)使用 XHR 处理重定向到不支持其授权端点的 CORS 的提供程序,浏览器会阻止它,并且 Quarkus 创建的状态 Cookie 保留在浏览器缓存中。当检测到旧的状态 cookie 时,quarkus 会报告身份验证失败,但找不到匹配的状态查询参数。
报告 HTTP 401 错误通常是在这种情况下执行的正确操作,它会最小化浏览器重定向循环的风险,但还可以 SPA 或 Quarkus 应用程序管理重定向方式识别问题。例如,可能需要启用
但是,如果上述选项不合适,则将此属性设置为
环境变量: | 布尔值 |
|
如果此属性设为
如果
如果检测到
环境变量: | 布尔值 |
|
会话期限扩展(以分钟为单位)。默认情况下,用户会话年龄属性被设置为 ID 令牌生命周期的值,用户会被重定向到 OIDC 供应商,以在会话过期后重新验证。如果此属性设置为非零值,则在会话过期前可以刷新过期的 ID 令牌。如果没有启用
环境变量: |
| |
状态 Cookie 期限(以分钟为单位)。当新的授权代码流重定向在完成此流时,都会创建状态 Cookie。默认情况下,状态 Cookie 名称是唯一的,请参阅
环境变量: |
| |
如果此属性设为
如果此属性设为
环境变量: | 布尔值 |
|
当授权代码流完成后,要求 ID 令牌可用。仅在您需要将授权代码流与 OAuth2 供应商(没有返回 ID 令牌)搭配使用时禁用此属性 - 在这种情况下会生成内部 IdToken。
环境变量: | 布尔值 |
|
内部 ID 令牌寿命.只有在 Oauth2 供应商没有返回 IdToken 时,才会检查此属性。
环境变量: |
| |
要求使用代码交换证明密钥(PKCE)。
环境变量: | 布尔值 |
|
用于为代码交换(PKCE)代码验证器(PKCE)代码验证器和/或非代码流状态加密概念验证的 secret。此 secret 应该至少为 32 个字符。
如果没有设置此 secret,则会检查使用 如果在检查所有这些属性后仍然未初始化,则自动生成该 secret。 如果 secret 长度小于 16 个字符,则报告错误。
环境变量: | string | |
除了所需的
环境变量: | Map<String,String> | |
必须发送自定义 HTTP 标头来完成授权代码授权请求。
环境变量: | Map<String,String> | |
默认 TokenStateManager 策略。
环境变量: | keep-all-tokens :保留 ID、访问和刷新令牌。 id-token :只保留 ID 令牌 id-refresh-tokens: 仅保留 ID 和刷新令牌 | keep-all-tokens |
默认 TokenStateManager 会保留在授权代码中返回的所有令牌(ID、访问和刷新)默认授予单个会话 Cookie 的响应。启用此属性最小化会话 Cookie 大小
环境变量: | 布尔值 |
|
强制 Default TokenStateManager 加密存储令牌的会话 Cookie。
环境变量: | 布尔值 |
|
Default TokenStateManager 用来加密在启用
如果没有设置此 secret,则会检查使用 用于加密令牌的 secret 的长度应至少为 32 个字符。如果 secret 长度小于 16 个字符,则会记录警告信息。
环境变量: | string | |
会话 Cookie 密钥加密算法
环境变量: | a256-gcmkw: 使用 A256GCMKW 算法和配置的加密 secret 生成并加密内容加密密钥。生成的内容加密密钥将用于加密会话 Cookie 内容。 dir :配置的密钥加密 secret 将用作内容加密密钥来加密会话 Cookie 内容。使用直接加密可避免内容加密密钥生成步骤,并将使加密的会话 Cookie 序列稍短。如果加密 secret 小于 32 个字符,则避免使用直接加密。 | a256-gcmkw |
允许缓存令牌内省数据。请注意,启用此属性不启用缓存本身,但仅允许缓存给定租户的令牌内省。如果可以使用默认令牌缓存,请参阅
环境变量: | 布尔值 |
|
允许缓存用户信息数据。请注意,启用此属性不启用缓存本身,但只允许缓存给定租户的用户信息数据。如果可以使用默认令牌缓存,请参阅
环境变量: | 布尔值 |
|
允许在 IdToken 中简化 UserInfo,而不是将其缓存在令牌缓存中。只有在 OAuth2 供应商没有返回 IdToken 时,才会检查此属性。在生成的 IdToken 中,Inlining UserInfo 允许将其存储在会话 Cookie 中,并避免引入缓存的状态。
如果会话 Cookie 已被加密,并且没有为当前租户禁用 UserInfo 缓存,并且当前租户将
环境变量: | 布尔值 | |
如果在连接到 OIDC 供应商时,应该获取 JWK 验证密钥。 禁用此属性会延迟密钥获取,直到必须验证当前令牌的时间。通常,只有在令牌或其他 telated 请求属性提供正确解析密钥所需的额外上下文时,才能需要它。
环境变量: | 布尔值 |
|
可以缓存的最大 JWK 密钥数。如果
环境变量: | int |
|
可以缓存 JWK 密钥的分钟数。如果
环境变量: |
| |
缓存计时器间隔。如果设置了此属性,则计时器会定期检查并删除过时的条目。如果
环境变量: | ||
如果没有密钥标识符('kid')或证书指纹('x5t', 'x5t""256')在 JOSE 标头中指定的,且没有键决定,检查与令牌算法('alg')标头值匹配的所有可用密钥。
环境变量: | 布尔值 |
|
已知的 OpenId Connect 供应商标识符
环境变量: |
| |
最大缓存条目数。如果需要启用缓存,则将其设置为正值。
环境变量: | int |
|
给定缓存条目有效的最大时间量。
环境变量: |
| |
清理计时器间隔。如果设置了此属性,则计时器将定期检查并删除过时的条目。
环境变量: | ||
如果 OIDC 租户应使用 bearer 访问令牌的签发者(
环境变量: | 布尔值 |
|
类型 | default | |
OpenID Connect (OIDC)服务器的基本 URL,例如
环境变量: | string | |
发现 OIDC 端点。如果没有启用,您必须单独配置 OIDC 端点 URL。
环境变量: | 布尔值 |
|
签发访问和刷新令牌的 OIDC 令牌端点;指定为相对路径或绝对 URL。如果
环境变量: | string | |
OIDC 令牌撤销端点的相对路径或绝对路径 URL。
环境变量: | string | |
应用程序的客户端 ID。每个应用都有一个客户端 ID,用于标识应用程序。如果
环境变量: | string | |
应用的客户端名称。它代表应用程序的人类可读描述,您可以在 OpenId Connect 供应商的仪表板中注册应用程序(客户端)时提供。例如,您可以将此属性设置为具有更详细的日志消息,记录给定客户端的活动。
环境变量: | string | |
尝试初始连接到 OIDC 服务器的持续时间。例如,将持续时间设置为
环境变量: | ||
如果临时丢失,重试重新建立现有 OIDC 连接的次数。与
环境变量: | int |
|
当前 OIDC 连接请求超时的秒数。
环境变量: |
| |
是否应该对 worker 线程执行 DNS 查找。当您可以看到由 HTTP 请求到 OIDC 服务器阻止的 Vert.x 事件循环的日志记录警告时,请使用这个选项。
环境变量: | 布尔值 |
|
WebClient 使用的连接池的最大大小。
环境变量: | int | |
环境变量: | string | |
客户端机密值。如果设置了
环境变量: | string | |
CredentialsProvider bean 名称,只有在注册了多个 CredentialsProvider 时才应设置
环境变量: | string | |
CredentialsProvider 密钥环名称。只有在使用的 CredentialsProvider 需要密钥环名称来查找 secret 时,才需要密钥环名称,这通常是当一个 CredentialsProvider 被多个扩展共享时,才需要多个扩展从更多动态源(如 vault 实例或 secret manager)检索凭证时。
环境变量: | string | |
CredentialsProvider 客户端 secret 密钥
环境变量: | string | |
身份验证方法。如果设置了
环境变量: |
基本:
post:
post-jwt: query :客户端 ID 和 secret 作为 HTTP 查询参数提交。这个选项只支持 OIDC 扩展。 | |
JWT 令牌源:OIDC 供应商客户端或现有的 JWT bearer 令牌。
环境变量: |
|
|
如果提供,则表示 JWT 使用 secret 密钥进行了签名。
环境变量: | string | |
CredentialsProvider bean 名称,只有在注册了多个 CredentialsProvider 时才应设置
环境变量: | string | |
CredentialsProvider 密钥环名称。只有在使用的 CredentialsProvider 需要密钥环名称来查找 secret 时,才需要密钥环名称,这通常是当一个 CredentialsProvider 被多个扩展共享时,才需要多个扩展从更多动态源(如 vault 实例或 secret manager)检索凭证时。
环境变量: | string | |
CredentialsProvider 客户端 secret 密钥
环境变量: | string | |
私钥的字符串表示。如果提供,则表示 JWT 是使用 PEM 或 JWK 格式的私钥签名的。您可以使用
环境变量: | string | |
如果提供,则表示 JWT 是使用 PEM 或 JWK 格式的私钥签名的。您可以使用
环境变量: | string | |
如果提供,则表示 JWT 使用密钥存储中的私钥签名。
环境变量: | string | |
指定密钥存储文件的密码的参数。
环境变量: | string | |
私钥 ID 或别名。
环境变量: | string | |
私钥密码。
环境变量: | string | |
JWT 受众(u
环境变量: | string | |
添加为 JWT
环境变量: | string | |
添加为 JWT 的签名密钥的签发者
环境变量: | string | |
添加为 JWT
环境变量: | string | |
其他声明.
环境变量: | Map<String,String> | |
用于
环境变量: | string | |
JWT 生命周期(以秒为单位)。这个值添加到发出 JWT 的时间,以计算过期时间。
环境变量: | int |
|
如果为 true,则客户端身份验证令牌是 JWT bearer 授权断言。不生成 'client_assertion' 和 'client_assertion_type' 表单属性,而是只生成 'assertion'。这个选项只支持 OIDC 客户端扩展。
环境变量: | 布尔值 |
|
代理的主机名或 IP 地址。
环境变量: | string | |
代理的端口号。默认值为
环境变量: | int |
|
如果代理需要身份验证,则用户名。
环境变量: | string | |
如果代理需要身份验证,则密码。
环境变量: | string | |
证书验证和主机名验证,可以是以下
环境变量: | 必需 :证书会被验证,并且启用了主机名验证。这是默认值。 certificate-validation :证书会被验证,但禁用主机名验证。 none :所有证书都是可信的,主机名验证被禁用。 | |
保存证书信息的可选密钥存储,而不是指定单独的文件。
环境变量: | path | |
密钥存储文件的类型。如果未指定,则根据文件名自动检测到类型。
环境变量: | string | |
密钥存储文件的提供程序。如果未指定,则根据密钥存储文件类型自动检测到该提供程序。
环境变量: | string | |
密钥存储文件的密码。如果未指定,则使用默认值,即
环境变量: | string | |
密钥存储中特定密钥的别名。禁用 SNI 时,如果密钥存储包含多个密钥且没有指定别名,则行为未定义。
环境变量: | string | |
密钥的密码(如果与
环境变量: | string | |
保存要信任的证书信息的信任存储。
环境变量: | path | |
truststore 文件的密码。
环境变量: | string | |
信任存储证书的别名。
环境变量: | string | |
truststore 文件的类型。如果未指定,则根据文件名自动检测到类型。
环境变量: | string | |
truststore 文件的供应商。如果没有提供,则会根据信任存储文件类型自动检测到供应商。
环境变量: | string | |
唯一的租户标识符。它可以由
环境变量: | string | |
如果启用了此租户配置。如果没有配置,但支持租户配置的
环境变量: | 布尔值 |
|
应用程序类型,可以是以下
环境变量: |
web-app:
服务 : service 服务是一组受保护的 HTTP 资源的客户端,通常是遵循 RESTful 架构师设计的后端应用程序。
混合 : service 和 | service |
OpenID Connect (OIDC)授权端点的相对路径或绝对 URL,用于验证用户。如果 OIDC 发现被禁用,则必须为
环境变量: | string | |
OIDC UserInfo 端点的相对路径或绝对路径 URL。如果 OIDC 发现被禁用并且启用了
环境变量: | string | |
OIDC RFC7662 内省端点的相对路径或绝对路径 URL,这些端点可以内省不透明和 JSON Web 令牌(JWT)令牌。如果禁用了 OIDC 发现,并且必须验证不透明 bearer 访问令牌,或 2)当缓存的 JWK 验证集没有匹配的 JWK 验证集时,必须设置此属性。如果启用了发现,则忽略此属性。
环境变量: | string | |
返回 JSON Web 密钥验证集的 OIDC JSON Web Key Set (JWKS)端点的相对路径或绝对路径。如果禁用了 OIDC 发现且需要本地 JWT 验证,则应设置此属性。如果启用了发现,则忽略此属性。
环境变量: | string | |
OIDC end_session_endpoint 的相对路径或绝对路径 URL。如果禁用了 OIDC 发现,并且需要对
环境变量: | string | |
此租户必须保护的路径。带有最具体路径的租户胜出。有关允许 路径模式的解释,请参阅 OIDC 多租户指南中的配置租户 路径部分。
环境变量: | 字符串列表 | |
本地 JWT 令牌验证的公钥。当设置此属性时,不会创建 OIDC 服务器连接。
环境变量: | string | |
Name
环境变量: | string | |
Secret
环境变量: | string | |
包含使用
环境变量: | 布尔值 |
|
包含组数组的声明的路径列表。每个路径从顶级 JWT JSON 对象开始,并可以包含多个片段。每个片段仅代表一个 JSON 对象名称,例如:"realm/groups"。使用带命名空间限定声明名称的双引号。如果令牌没有
环境变量: | 字符串列表 | |
包含多个组值的字符串的分隔符。只有在 "role-claim-path" 属性指向值为字符串的一个或多个自定义声明时才使用它。默认情况下会使用单个空格,因为标准
环境变量: | string | |
主体角色的源。
环境变量: |
idtoken: ID Token -
accessToken: Access Token - userinfo: User Info | |
预期的签发者
环境变量: | string | |
预期
环境变量: | 字符串列表 | |
要求令牌包含
环境变量: | 布尔值 |
|
所需的声明及其预期值的映射。例如,
环境变量: | Map<String,String> | |
预期的令牌类型
环境变量: | string | |
生命周期跨宽限期(以秒为单位)。在检查令牌到期时,允许当前的时间超过令牌过期时间(最多配置的秒数)。在检查令牌颁发时,当前时间最多允许于令牌问题时间超过配置的秒数。
环境变量: | int | |
令牌期限.它可指定自
环境变量: | ||
如果您的 JWT 令牌不包含
环境变量: | 布尔值 |
|
包含主体名称的声明的名称。默认情况下,会检查
环境变量: | string | |
刷新已过期的授权代码流 ID 或访问令牌。如果启用了此属性,如果授权代码 ID 或访问令牌已过期,则会执行刷新令牌请求,如果成功,本地会话会使用新的令牌集合更新。否则,本地会话将无效,用户重定向到 OpenID 提供程序以重新进行身份验证。在这种情况下,如果 OIDC 供应商会话仍然活跃,用户可能无法再次挑战。对于此选项,password
环境变量: | 布尔值 |
|
刷新令牌时间偏移(以秒为单位)。如果启用了此属性,在检查授权代码 ID 或访问令牌是否应刷新时,配置的秒数会添加到当前时间。如果总和大于授权代码 ID 或访问令牌的过期时间,则会进行刷新。
环境变量: | ||
强制 JWK 设置刷新间隔(以分钟为单位)。
环境变量: |
| |
包含 bearer 令牌的自定义 HTTP 标头。只有在应用程序类型为
环境变量: | string | |
HTTP 授权标头方案.
环境变量: | string |
|
所需的签名算法。OIDC 供应商支持许多签名算法,但如果需要,您可以限制 Quarkus 应用程序来接受仅使用此属性配置的算法签名的令牌。
环境变量: |
| |
解密密钥位置.JWT 令牌可由 OpenId Connect 提供程序进行内部签名和加密。但是,并不总是能够远程内省此类令牌,因为提供程序可能无法控制私钥。在这种情况下,将此属性设置为指向包含 PEM 或 JSON Web 密钥(JWK)格式的解密私钥的文件。如果没有设置此属性,并且使用了
环境变量: | string | |
当没有匹配的 JWK 密钥时,允许远程内省 JWT 令牌。出于向后兼容性的原因,此属性默认设置为
环境变量: | 布尔值 |
|
要求仅远程内省 JWT 令牌。
环境变量: | 布尔值 |
|
允许远程内省不透明令牌。如果只有 JWT 令牌,则将此属性设置为
环境变量: | 布尔值 |
|
令牌自定义器名称。允许选择特定于租户的令牌自定义器作为命名 Bean。在注册自定义令牌时,首选使用
环境变量: | string | |
间接验证不透明(二进制)访问令牌是否有效,方法是请求 UserInfo。如果提供商接受此令牌并返回有效的 UserInfo,则不透明访问令牌被视为有效。只有在必须接受不透明访问令牌但 OpenId Connect 供应商没有令牌内省端点时,才应启用此选项。当必须验证 JWT 令牌时,此属性无效。
环境变量: | 布尔值 |
|
应用程序上 logout 端点的相对路径。如果提供,应用程序可以通过此端点启动注销,并符合 OpenID Connect RP-Initiated Logout 规格。
环境变量: | string | |
从 OpenID Connect 提供程序注销后,用户应重定向到的应用程序端点的相对路径。此端点 URI 必须在 OpenID Connect Provider 上正确注册,作为有效的重定向 URI。
环境变量: | string | |
post logout URI 参数的名称,作为查询参数添加到 logout 重定向 URI。
环境变量: | string |
|
添加作为查询参数到 logout 重定向 URI 的额外属性。
环境变量: | Map<String,String> | |
应用程序中 Back-Channel Logout 端点的相对路径。它必须以正斜杠 '/' 开头,例如 '/back-channel-logout'。这个值总是相对于 'quarkus.http.root-path' 解析。
环境变量: | string | |
在与会话 Cookie 中存储的 ID 令牌匹配之前可以缓存的最大注销令牌数。
环境变量: | int |
|
可以缓存注销令牌的分钟数。
环境变量: |
| |
令牌缓存计时器间隔。如果设置了此属性,则计时器会定期检查并删除过时的条目。
环境变量: | ||
注销令牌声明,其值用作缓存令牌的密钥。只有
环境变量: | string |
|
应用程序中 Front-Channel Logout 端点的相对路径。
环境变量: | string | |
leaf 证书的通用名称。如果
环境变量: | string | |
truststore 文件,用于保留可信证书的指纹。
环境变量: | path | |
如果使用
环境变量: | string | |
指定信任存储证书的别名的参数。
环境变量: | string | |
指定信任存储文件类型的可选参数。如果未指定,则根据文件名自动检测到类型。
环境变量: | string | |
授权代码流响应模式。
环境变量: |
query: Authorization 响应参数在添加到 form-post: Authorization 响应参数编码为 HTML 表单值,这些值由浏览器中自动提交并由 HTTP POST 方法使用 application/x-www-form-urlencoded 内容类型传输 | query |
计算
环境变量: | string | |
如果此属性设为
环境变量: | 布尔值 |
|
在用户通过将用户重定向到同一 URI 后,在重定向 URI 上删除由 OIDC 服务器设置
环境变量: | 布尔值 |
|
指向处理 OIDC 授权端点错误响应的公共端点的相对路径。如果用户身份验证失败,OIDC 供应商会返回一个错误和可选的
环境变量: | string | |
当会话已过期时,经过身份验证的用户重定向到的公共端点的相对路径。 当 OIDC 会话已过期且会话无法刷新时,用户会被重定向到 OIDC 供应商来重新验证。在这种情况下,用户体验可能并不理想,因为因为返回身份验证质询的原因可能并不明显。 您希望用户再次重定向到公共应用特定页面,则设置此属性。这可通知会话已过期,并建议用户按照到安全初始条目页面的链接来重新验证。
环境变量: | string | |
作为授权代码流的一部分,从 OIDC 供应商获取 ID 和访问令牌。 ID 令牌始终在每个用户请求上验证,作为主令牌,用于代表主体并提取角色。
授权代码流访问令牌旨在传播到下游服务,除非
如果此令牌被注入 JsonWebToken,则也启用了授权代码流访问令牌验证。如果不需要,将此属性设置为 bearer 访问令牌始终被验证。
环境变量: | 布尔值 |
|
在 SSL/TLS 终止反向代理后面运行时,强制
环境变量: | 布尔值 |
|
范围列表
环境变量: | 字符串列表 | |
配置多个范围时使用的分隔符。默认使用单个空间。
环境变量: | string | |
要求 ID 令牌包含非
环境变量: | 布尔值 |
|
将
环境变量: | 布尔值 |
|
添加作为查询参数到身份验证重定向 URI 的额外属性。
环境变量: | Map<String,String> | |
请求 URL 查询参数(如果存在)添加到身份验证重定向 URI 中。
环境变量: | 字符串列表 | |
如果启用了 state、session 和 post logout cookies,则在使用 HTTP 时将其
环境变量: | 布尔值 |
|
Cookie 名称后缀。例如,默认 OIDC 租户的会话 Cookie 名称为
环境变量: | string | |
Cookie path 参数值(如果设置了)用于为会话设置 path 参数,state 和 post logout cookies。如果设置,则
环境变量: | string |
|
Cookie path header 参数值(如果设置)标识传入的 HTTP 标头,其值用于为会话、状态和发布 logout cookie 设置 path 参数。如果缺少标头,则会检查
环境变量: | string | |
Cookie 域参数值(如果设置了)用于会话,state 和 post logout cookies。
环境变量: | string | |
会话 Cookie 的 SameSite 属性。
环境变量: |
|
|
如果存在状态 Cookie,则
环境变量: | 布尔值 |
|
如果 state cookie 存在但没有状态查询参数,则失败并显示 HTTP 401 错误。 当禁用多个身份验证或者重定向 URL 与原始请求 URL 匹配时,过时的状态 Cookie 可能会保留在之前失败的浏览器缓存中,并可在当前请求中可见。例如,如果 Single-page 应用(SPA)使用 XHR 处理重定向到不支持其授权端点的 CORS 的提供程序,浏览器会阻止它,并且 Quarkus 创建的状态 Cookie 保留在浏览器缓存中。当检测到旧的状态 cookie 时,quarkus 会报告身份验证失败,但找不到匹配的状态查询参数。
报告 HTTP 401 错误通常是在这种情况下执行的正确操作,它会最小化浏览器重定向循环的风险,但还可以 SPA 或 Quarkus 应用程序管理重定向方式识别问题。例如,可能需要启用
但是,如果上述选项不合适,则将此属性设置为
环境变量: | 布尔值 |
|
如果此属性设为
如果
如果检测到
环境变量: | 布尔值 |
|
会话期限扩展(以分钟为单位)。默认情况下,用户会话年龄属性被设置为 ID 令牌生命周期的值,用户会被重定向到 OIDC 供应商,以在会话过期后重新验证。如果此属性设置为非零值,则在会话过期前可以刷新过期的 ID 令牌。如果没有启用
环境变量: |
| |
状态 Cookie 期限(以分钟为单位)。当新的授权代码流重定向在完成此流时,都会创建状态 Cookie。默认情况下,状态 Cookie 名称是唯一的,请参阅
环境变量: |
| |
如果此属性设为
如果此属性设为
环境变量: | 布尔值 |
|
当授权代码流完成后,要求 ID 令牌可用。仅在您需要将授权代码流与 OAuth2 供应商(没有返回 ID 令牌)搭配使用时禁用此属性 - 在这种情况下会生成内部 IdToken。
环境变量: | 布尔值 |
|
内部 ID 令牌寿命.只有在 Oauth2 供应商没有返回 IdToken 时,才会检查此属性。
环境变量: |
| |
要求使用代码交换证明密钥(PKCE)。
环境变量: | 布尔值 |
|
用于为代码交换(PKCE)代码验证器(PKCE)代码验证器和/或非代码流状态加密概念验证的 secret。此 secret 应该至少为 32 个字符。
如果没有设置此 secret,则会检查使用 如果在检查所有这些属性后仍然未初始化,则自动生成该 secret。 如果 secret 长度小于 16 个字符,则报告错误。
环境变量: | string | |
除了所需的
环境变量: | Map<String,String> | |
必须发送自定义 HTTP 标头来完成授权代码授权请求。
环境变量: | Map<String,String> | |
默认 TokenStateManager 策略。
环境变量: | keep-all-tokens :保留 ID、访问和刷新令牌。 id-token :只保留 ID 令牌 id-refresh-tokens: 仅保留 ID 和刷新令牌 | keep-all-tokens |
默认 TokenStateManager 会保留在授权代码中返回的所有令牌(ID、访问和刷新)默认授予单个会话 Cookie 的响应。启用此属性最小化会话 Cookie 大小
环境变量: | 布尔值 |
|
强制 Default TokenStateManager 加密存储令牌的会话 Cookie。
环境变量: | 布尔值 |
|
Default TokenStateManager 用来加密在启用
如果没有设置此 secret,则会检查使用 用于加密令牌的 secret 的长度应至少为 32 个字符。如果 secret 长度小于 16 个字符,则会记录警告信息。
环境变量: | string | |
会话 Cookie 密钥加密算法
环境变量: | a256-gcmkw: 使用 A256GCMKW 算法和配置的加密 secret 生成并加密内容加密密钥。生成的内容加密密钥将用于加密会话 Cookie 内容。 dir :配置的密钥加密 secret 将用作内容加密密钥来加密会话 Cookie 内容。使用直接加密可避免内容加密密钥生成步骤,并将使加密的会话 Cookie 序列稍短。如果加密 secret 小于 32 个字符,则避免使用直接加密。 | a256-gcmkw |
允许缓存令牌内省数据。请注意,启用此属性不启用缓存本身,但仅允许缓存给定租户的令牌内省。如果可以使用默认令牌缓存,请参阅
环境变量: | 布尔值 |
|
允许缓存用户信息数据。请注意,启用此属性不启用缓存本身,但只允许缓存给定租户的用户信息数据。如果可以使用默认令牌缓存,请参阅
环境变量: | 布尔值 |
|
允许在 IdToken 中简化 UserInfo,而不是将其缓存在令牌缓存中。只有在 OAuth2 供应商没有返回 IdToken 时,才会检查此属性。在生成的 IdToken 中,Inlining UserInfo 允许将其存储在会话 Cookie 中,并避免引入缓存的状态。
如果会话 Cookie 已被加密,并且没有为当前租户禁用 UserInfo 缓存,并且当前租户将
环境变量: | 布尔值 | |
如果在连接到 OIDC 供应商时,应该获取 JWK 验证密钥。 禁用此属性会延迟密钥获取,直到必须验证当前令牌的时间。通常,只有在令牌或其他 telated 请求属性提供正确解析密钥所需的额外上下文时,才能需要它。
环境变量: | 布尔值 |
|
可以缓存的最大 JWK 密钥数。如果
环境变量: | int |
|
可以缓存 JWK 密钥的分钟数。如果
环境变量: |
| |
缓存计时器间隔。如果设置了此属性,则计时器会定期检查并删除过时的条目。如果
环境变量: | ||
如果没有密钥标识符('kid')或证书指纹('x5t', 'x5t""256')在 JOSE 标头中指定的,且没有键决定,检查与令牌算法('alg')标头值匹配的所有可用密钥。
环境变量: | 布尔值 |
|
已知的 OpenId Connect 供应商标识符
环境变量: |
|
要写入持续时间值,请使用标准 java.time.Duration
格式。如需更多信息,请参阅 Duration#parse ()Java API 文档。
您还可以使用简化的格式,从数字开始:
- 如果值只是一个数字,它代表时间(以秒为单位)。
-
如果值为数字,后跟
ms
,代表时间(毫秒)。
在其他情况下,简化的格式被转换为 java.time.Duration
格式以进行解析:
-
如果该值是一个数字,后跟
h
、m
或s
,则前缀为PT
。 -
如果值为数字,后跟
d
,则会以P
为前缀。