第 6 章 OpenID Connect (OIDC)配置属性


作为 Quarkus 开发人员,您可以通过在 src/main/resources/application.properties 文件中设置以下属性来配置 Quarkus OpenID Connect (OIDC)扩展。

6.1. OIDC 配置

lock 在构建时修复的配置属性 - 所有其他配置属性在运行时可覆盖

配置属性

类型

default

lock quarkus.oidc.enabled

如果启用了 OIDC 扩展。

环境变量: QUARKUS_OIDC_ENABLED

布尔值

true

lock quarkus.oidc.devui.grant.type

授权类型,用于获取令牌来测试 OIDC 'service' 应用程序

环境变量: QUARKUS_OIDC_DEVUI_GRANT_TYPE

client: 'client_credentials' grant

Password: 'password' grant

Code: 'authorization_code' grant

隐式: "implicit" 授权

 

lock quarkus.oidc.devui.grant-options."option-name"

授权选项

环境变量: QUARKUS_OIDC_DEVUI_GRANT_OPTIONS__OPTION_NAME_

Map<String,Map<String,String>>

 

lock quarkus.oidc.devui.web-client-timeout

WebClient 超时。使用此属性配置 Dev UI 处理程序使用的 HTTP 客户端在从 OpenId Connect Provider 请求令牌并将其发送到服务端点时,将等待响应。OIDC dev 服务管理客户端也使用此超时。

环境变量: QUARKUS_OIDC_DEVUI_WEB_CLIENT_TIMEOUT

duration question circle

4S

lock quarkus.oidc.default-token-cache-enabled

启用注册 Default TokenIntrospection 和 UserInfo Cache 实现 bean。注: 这仅启用默认的实施。它需要激活配置。请参阅 OidcConfig#tokenCache

环境变量: QUARKUS_OIDC_DEFAULT_TOKEN_CACHE_ENABLED

布尔值

true

quarkus.oidc.auth-server-url

OpenID Connect (OIDC)服务器的基本 URL,例如 https://host:port/auth。如果需要公钥验证(公钥)或仅需要证书链验证(certificate-chain),则不要设置此属性。默认情况下,OIDC 发现端点会在这个 URL 中附加 .well-known/openid-configuration 路径来调用。对于 Keycloak,使用 https://host:port/realms/{realm},将 {realm} 替换为 Keycloak 域名。

环境变量: QUARKUS_OIDC_AUTH_SERVER_URL

string

 

quarkus.oidc.discovery-enabled

发现 OIDC 端点。如果没有启用,您必须单独配置 OIDC 端点 URL。

环境变量: QUARKUS_OIDC_DISCOVERY_ENABLED

布尔值

true

quarkus.oidc.token-path

签发访问和刷新令牌的 OIDC 令牌端点;指定为相对路径或绝对 URL。如果 discovery-enabledfalse,或必须自定义发现的令牌端点路径。

环境变量: QUARKUS_OIDC_TOKEN_PATH

string

 

quarkus.oidc.revoke-path

OIDC 令牌撤销端点的相对路径或绝对路径 URL。

环境变量: QUARKUS_OIDC_REVOKE_PATH

string

 

quarkus.oidc.client-id

应用程序的客户端 ID。每个应用都有一个客户端 ID,用于标识应用程序。如果 application-typeservice,且不需要令牌内省,则不需要设置客户端 ID。

环境变量: QUARKUS_OIDC_CLIENT_ID

string

 

quarkus.oidc.client-name

应用的客户端名称。它代表应用程序的人类可读描述,您可以在 OpenId Connect 供应商的仪表板中注册应用程序(客户端)时提供。例如,您可以将此属性设置为具有更详细的日志消息,记录给定客户端的活动。

环境变量: QUARKUS_OIDC_CLIENT_NAME

string

 

quarkus.oidc.connection-delay

尝试初始连接到 OIDC 服务器的持续时间。例如,将持续时间设置为 20S 允许 10 次重试,每 2 秒。此属性仅在创建初始 OIDC 连接时才有效。对于丢弃的连接,请使用 connection-retry-count 属性。

环境变量: QUARKUS_OIDC_CONNECTION_DELAY

duration question circle

 

quarkus.oidc.connection-retry-count

如果临时丢失,重试重新建立现有 OIDC 连接的次数。与 connection-delay 不同,它只适用于初始连接尝试。例如,如果对 OIDC 令牌端点的请求因为连接问题而失败,它将按此设置重试。

环境变量: QUARKUS_OIDC_CONNECTION_RETRY_COUNT

int

3

quarkus.oidc.connection-timeout

当前 OIDC 连接请求超时的秒数。

环境变量: QUARKUS_OIDC_CONNECTION_TIMEOUT

duration question circle

10S

quarkus.oidc.use-blocking-dns-lookup

是否应该对 worker 线程执行 DNS 查找。当您可以看到由 HTTP 请求到 OIDC 服务器阻止的 Vert.x 事件循环的日志记录警告时,请使用这个选项。

环境变量: QUARKUS_OIDC_USE_BLOCKING_DNS_LOOKUP

布尔值

false

quarkus.oidc.max-pool-size

WebClient 使用的连接池的最大大小。

环境变量: QUARKUS_OIDC_MAX_POOL_SIZE

int

 

quarkus.oidc.credentials.secret

client_secret_basic 身份验证方法使用的客户端 secret。必须设置,除非需要在 client-secretjwt 客户端身份验证中设置 secret。您可以使用 client-secret.value,但这两个属性都是互斥的。

环境变量: QUARKUS_OIDC_CREDENTIALS_SECRET

string

 

quarkus.oidc.credentials.client-secret.value

客户端机密值。如果设置了 credentials.secret,则忽略这个值。必须设置,除非需要在 client-secretjwt 客户端身份验证中设置 secret。

环境变量: QUARKUS_OIDC_CREDENTIALS_CLIENT_SECRET_VALUE

string

 

quarkus.oidc.credentials.client-secret.provider.name

CredentialsProvider bean 名称,只有在注册了多个 CredentialsProvider 时才应设置

环境变量: QUARKUS_OIDC_CREDENTIALS_CLIENT_SECRET_PROVIDER_NAME

string

 

quarkus.oidc.credentials.client-secret.provider.keyring-name

CredentialsProvider 密钥环名称。只有在使用的 CredentialsProvider 需要密钥环名称来查找 secret 时,才需要密钥环名称,这通常是当一个 CredentialsProvider 被多个扩展共享时,才需要多个扩展从更多动态源(如 vault 实例或 secret manager)检索凭证时。

环境变量: QUARKUS_OIDC_CREDENTIALS_CLIENT_SECRET_PROVIDER_KEYRING_NAME

string

 

quarkus.oidc.credentials.client-secret.provider.key

CredentialsProvider 客户端 secret 密钥

环境变量: QUARKUS_OIDC_CREDENTIALS_CLIENT_SECRET_PROVIDER_KEY

string

 

quarkus.oidc.credentials.client-secret.method

身份验证方法。如果设置了 clientSecret.value secret,则此方法默认是 基本的

环境变量: QUARKUS_OIDC_CREDENTIALS_CLIENT_SECRET_METHOD

基本:client_secret_basic (默认):客户端 ID 和 secret 使用 HTTP 授权基本方案提交。

post:client_secret_post :客户端 ID 和 secret 作为 client_idclient_secret 表单参数提交。

post-jwt:client_secret_jwt: 客户端 ID 和生成的 JWT secret 作为 client_idclient_secret 形式参数提交。

query :客户端 ID 和 secret 作为 HTTP 查询参数提交。这个选项只支持 OIDC 扩展。

 

quarkus.oidc.credentials.jwt.source

JWT 令牌源:OIDC 供应商客户端或现有的 JWT bearer 令牌。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_SOURCE

Client,bearer

client

quarkus.oidc.credentials.jwt.secret

如果提供,则表示 JWT 使用 secret 密钥进行了签名。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_SECRET

string

 

quarkus.oidc.credentials.jwt.secret-provider.name

CredentialsProvider bean 名称,只有在注册了多个 CredentialsProvider 时才应设置

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_SECRET_PROVIDER_NAME

string

 

quarkus.oidc.credentials.jwt.secret-provider.keyring-name

CredentialsProvider 密钥环名称。只有在使用的 CredentialsProvider 需要密钥环名称来查找 secret 时,才需要密钥环名称,这通常是当一个 CredentialsProvider 被多个扩展共享时,才需要多个扩展从更多动态源(如 vault 实例或 secret manager)检索凭证时。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_SECRET_PROVIDER_KEYRING_NAME

string

 

quarkus.oidc.credentials.jwt.secret-provider.key

CredentialsProvider 客户端 secret 密钥

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_SECRET_PROVIDER_KEY

string

 

quarkus.oidc.credentials.jwt.key

私钥的字符串表示。如果提供,则表示 JWT 是使用 PEM 或 JWK 格式的私钥签名的。您可以使用 signature-algorithm 属性覆盖默认的密钥算法 RS256

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_KEY

string

 

quarkus.oidc.credentials.jwt.key-file

如果提供,则表示 JWT 是使用 PEM 或 JWK 格式的私钥签名的。您可以使用 signature-algorithm 属性覆盖默认的密钥算法 RS256

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_KEY_FILE

string

 

quarkus.oidc.credentials.jwt.key-store-file

如果提供,则表示 JWT 使用密钥存储中的私钥签名。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_KEY_STORE_FILE

string

 

quarkus.oidc.credentials.jwt.key-store-password

指定密钥存储文件的密码的参数。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_KEY_STORE_PASSWORD

string

 

quarkus.oidc.credentials.jwt.key-id

私钥 ID 或别名。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_KEY_ID

string

 

quarkus.oidc.credentials.jwt.key-password

私钥密码。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_KEY_PASSWORD

string

 

quarkus.oidc.credentials.jwt.audience

JWT 受众(ud)声明值。默认情况下,audience 设置为 OpenId Connect Provider 的令牌端点的地址。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_AUDIENCE

string

 

quarkus.oidc.credentials.jwt.token-key-id

添加为 JWT kid 标头的签名密钥标识符。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_TOKEN_KEY_ID

string

 

quarkus.oidc.credentials.jwt.issuer

添加为 JWT 的签名密钥的签发者 是s 声明。默认值为客户端 ID。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_ISSUER

string

 

quarkus.oidc.credentials.jwt.subject

添加为 JWT 声明的签名密钥的主题。默认值是客户端 ID。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_SUBJECT

string

 

quarkus.oidc.credentials.jwt.claims."claim-name"

其他声明.

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_CLAIMS__CLAIM_NAME_

Map<String,String>

 

quarkus.oidc.credentials.jwt.signature-algorithm

用于 key-file 属性的签名算法。支持的值有: RS256 (默认)、RS384RS512PS256PS384PS512、ES256、ES256ES384、ES512、ES512、ES512、ESS256HS384HS512.

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_SIGNATURE_ALGORITHM

string

 

quarkus.oidc.credentials.jwt.lifespan

JWT 生命周期(以秒为单位)。这个值添加到发出 JWT 的时间,以计算过期时间。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_LIFESPAN

int

10

quarkus.oidc.credentials.jwt.assertion

如果为 true,则客户端身份验证令牌是 JWT bearer 授权断言。不生成 'client_assertion' 和 'client_assertion_type' 表单属性,而是只生成 'assertion'。这个选项只支持 OIDC 客户端扩展。

环境变量: QUARKUS_OIDC_CREDENTIALS_JWT_ASSERTION

布尔值

false

quarkus.oidc.proxy.host

代理的主机名或 IP 地址。
注: 如果 OIDC 适配器需要代理与 OIDC 服务器(Provider)通信,请将此值设置为以启用代理的使用。

环境变量: QUARKUS_OIDC_PROXY_HOST

string

 

quarkus.oidc.proxy.port

代理的端口号。默认值为 80

环境变量: QUARKUS_OIDC_PROXY_PORT

int

80

quarkus.oidc.proxy.username

如果代理需要身份验证,则用户名。

环境变量: QUARKUS_OIDC_PROXY_USERNAME

string

 

quarkus.oidc.proxy.password

如果代理需要身份验证,则密码。

环境变量: QUARKUS_OIDC_PROXY_PASSWORD

string

 

quarkus.oidc.tls.verification

证书验证和主机名验证,可以是以下 验证值之一。默认为

环境变量: QUARKUS_OIDC_TLS_VERIFICATION

必需 :证书会被验证,并且启用了主机名验证。这是默认值。

certificate-validation :证书会被验证,但禁用主机名验证。

none :所有证书都是可信的,主机名验证被禁用。

 

quarkus.oidc.tls.key-store-file

保存证书信息的可选密钥存储,而不是指定单独的文件。

环境变量: QUARKUS_OIDC_TLS_KEY_STORE_FILE

path

 

quarkus.oidc.tls.key-store-file-type

密钥存储文件的类型。如果未指定,则根据文件名自动检测到类型。

环境变量: QUARKUS_OIDC_TLS_KEY_STORE_FILE_TYPE

string

 

quarkus.oidc.tls.key-store-provider

密钥存储文件的提供程序。如果未指定,则根据密钥存储文件类型自动检测到该提供程序。

环境变量: QUARKUS_OIDC_TLS_KEY_STORE_PROVIDER

string

 

quarkus.oidc.tls.key-store-password

密钥存储文件的密码。如果未指定,则使用默认值,即 密码

环境变量: QUARKUS_OIDC_TLS_KEY_STORE_PASSWORD

string

 

quarkus.oidc.tls.key-store-key-alias

密钥存储中特定密钥的别名。禁用 SNI 时,如果密钥存储包含多个密钥且没有指定别名,则行为未定义。

环境变量: QUARKUS_OIDC_TLS_KEY_STORE_KEY_ALIAS

string

 

quarkus.oidc.tls.key-store-key-password

密钥的密码(如果与 key-store-password 不同)。

环境变量: QUARKUS_OIDC_TLS_KEY_STORE_KEY_PASSWORD

string

 

quarkus.oidc.tls.trust-store-file

保存要信任的证书信息的信任存储。

环境变量: QUARKUS_OIDC_TLS_TRUST_STORE_FILE

path

 

quarkus.oidc.tls.trust-store-password

truststore 文件的密码。

环境变量: QUARKUS_OIDC_TLS_TRUST_STORE_PASSWORD

string

 

quarkus.oidc.tls.trust-store-cert-alias

信任存储证书的别名。

环境变量: QUARKUS_OIDC_TLS_TRUST_STORE_CERT_ALIAS

string

 

quarkus.oidc.tls.trust-store-file-type

truststore 文件的类型。如果未指定,则根据文件名自动检测到类型。

环境变量: QUARKUS_OIDC_TLS_TRUST_STORE_FILE_TYPE

string

 

quarkus.oidc.tls.trust-store-provider

truststore 文件的供应商。如果没有提供,则会根据信任存储文件类型自动检测到供应商。

环境变量: QUARKUS_OIDC_TLS_TRUST_STORE_PROVIDER

string

 

quarkus.oidc.tenant-id

唯一的租户标识符。它可以由 TenantConfigResolver 提供程序设置,后者可以动态解析租户配置。

环境变量: QUARKUS_OIDC_TENANT_ID

string

 

quarkus.oidc.tenant-enabled

如果启用了此租户配置。如果没有配置,但支持租户配置的 TenantConfigResolver,则默认租户会被禁用,或者配置了命名的租户。在这种情况下,您不需要禁用默认租户。

环境变量: QUARKUS_OIDC_TENANT_ENABLED

布尔值

true

quarkus.oidc.application-type

应用程序类型,可以是以下 ApplicationType 值之一。

环境变量: QUARKUS_OIDC_APPLICATION_TYPE

web-app: WEB_APP 是提供页面(通常是前端应用程序)的客户端。对于这种类型的客户端,Authorization Code 流定义为验证用户的首选方法。

服务 : service 服务是一组受保护的 HTTP 资源的客户端,通常是遵循 RESTful 架构师设计的后端应用程序。对于这种类型的客户端,Bearer Authorization 方法定义为身份验证和授权用户的首选方法。

混合 : service 和 WEB _APP 客户端的组合。对于这种类型的客户端,如果设置了 Authorization 标头和 Authorization Code Flow - 如果没有设置,则使用 Bearer Authorization 方法。

service

quarkus.oidc.authorization-path

OpenID Connect (OIDC)授权端点的相对路径或绝对 URL,用于验证用户。如果 OIDC 发现被禁用,则必须为 web-app 应用程序设置此属性。如果启用了 OIDC 发现,则忽略此属性。

环境变量: QUARKUS_OIDC_AUTHORIZATION_PATH

string

 

quarkus.oidc.user-info-path

OIDC UserInfo 端点的相对路径或绝对路径 URL。如果 OIDC 发现被禁用并且启用了 authentication.user-info-required 属性,则必须为 web-app 应用程序设置此属性。如果启用了 OIDC 发现,则忽略此属性。

环境变量: QUARKUS_OIDC_USER_INFO_PATH

string

 

quarkus.oidc.introspection-path

OIDC RFC7662 内省端点的相对路径或绝对路径 URL,这些端点可以内省不透明和 JSON Web 令牌(JWT)令牌。如果禁用了 OIDC 发现,并且必须验证不透明 bearer 访问令牌,或 2)当缓存的 JWK 验证集没有匹配的 JWK 验证集时,必须设置此属性。如果启用了发现,则忽略此属性。

环境变量: QUARKUS_OIDC_INTROSPECTION_PATH

string

 

quarkus.oidc.jwks-path

返回 JSON Web 密钥验证集的 OIDC JSON Web Key Set (JWKS)端点的相对路径或绝对路径。如果禁用了 OIDC 发现且需要本地 JWT 验证,则应设置此属性。如果启用了发现,则忽略此属性。

环境变量: QUARKUS_OIDC_JWKS_PATH

string

 

quarkus.oidc.end-session-path

OIDC end_session_endpoint 的相对路径或绝对路径 URL。如果禁用了 OIDC 发现,并且需要对 web-app 应用程序的 RP Initiated Logout 支持,则必须设置此属性。如果启用了发现,则忽略此属性。

环境变量: QUARKUS_OIDC_END_SESSION_PATH

string

 

quarkus.oidc.tenant-paths

此租户必须保护的路径。带有最具体路径的租户胜出。有关允许 路径模式的解释,请参阅 OIDC 多租户指南中的配置租户 路径部分。

环境变量: QUARKUS_OIDC_TENANT_PATHS

字符串列表

 

quarkus.oidc.public-key

本地 JWT 令牌验证的公钥。当设置此属性时,不会创建 OIDC 服务器连接。

环境变量: QUARKUS_OIDC_PUBLIC_KEY

string

 

quarkus.oidc.introspection-credentials.name

Name

环境变量: QUARKUS_OIDC_INTROSPECTION_CREDENTIALS_NAME

string

 

quarkus.oidc.introspection-credentials.secret

Secret

环境变量: QUARKUS_OIDC_INTROSPECTION_CREDENTIALS_SECRET

string

 

quarkus.oidc.introspection-credentials.include-client-id

包含使用 quarkus.oidc.client-id 配置的 OpenId Connect Client ID。

环境变量: QUARKUS_OIDC_INTROSPECTION_CREDENTIALS_INCLUDE_CLIENT_ID

布尔值

true

quarkus.oidc.roles.role-claim-path

包含组数组的声明的路径列表。每个路径从顶级 JWT JSON 对象开始,并可以包含多个片段。每个片段仅代表一个 JSON 对象名称,例如:"realm/groups"。使用带命名空间限定声明名称的双引号。如果令牌没有 声明,但有一个或多个不同声明中设置的组,则可以使用此属性。

环境变量: QUARKUS_OIDC_ROLES_ROLE_CLAIM_PATH

字符串列表

 

quarkus.oidc.roles.role-claim-separator

包含多个组值的字符串的分隔符。只有在 "role-claim-path" 属性指向值为字符串的一个或多个自定义声明时才使用它。默认情况下会使用单个空格,因为标准 范围 声明可以包含空格分隔的序列。

环境变量: QUARKUS_OIDC_ROLES_ROLE_CLAIM_SEPARATOR

string

 

quarkus.oidc.roles.source

主体角色的源。

环境变量: QUARKUS_OIDC_ROLES_SOURCE

idtoken: ID Token - web-app 应用程序的默认值。

accessToken: Access Token - 服务 应用程序的默认值 ; 也可以用作 web-app 应用程序的角色源。

userinfo: User Info

 

quarkus.oidc.token.issuer

预期的签发者 是声明 值。此属性覆盖 issuer 属性,它可能会在 OpenId Connect 供应商已知的配置中设置。如果 iss claim 值因提供程序的主机、IP 地址或租户 ID 不同,您可以通过将此属性设置为 任何 来跳过签发者验证,但应仅在其他选项(如配置提供程序使用固定声明值)时执行。

环境变量: QUARKUS_OIDC_TOKEN_ISSUER

string

 

quarkus.oidc.token.audience

预期 受众 的声明值,可以是字符串或字符串数组。请注意,默认情况下,验证了 audience 声明 ID 令牌。ID 令牌使用者必须等于 quarkus.oidc.client-id 属性的值。如果您的 OpenID Connect 供应商在 ID 令牌中设置不同的 audience 声明值,请使用此属性覆盖预期的值。如果您的供应商没有设置 ID 令牌使用者的声明,则将其设置为 任何。只有在配置了此属性时,才会对访问令牌进行使用者验证。

环境变量: QUARKUS_OIDC_TOKEN_AUDIENCE

字符串列表

 

quarkus.oidc.token.subject-required

要求令牌包含 sub (subject)声明,它是当前用户的唯一且永远不会重新分配的标识符。请注意,如果您启用此属性,并且还需要 UserInfo,则必须存在 token 和 UserInfo 声明,并相互匹配。

环境变量: QUARKUS_OIDC_TOKEN_SUBJECT_REQUIRED

布尔值

false

quarkus.oidc.token.required-claims."claim-name"

所需的声明及其预期值的映射。例如,quarkus.oidc.token.required-claims.org_id = org_xyz 将要求令牌存在,并将 org_id 声明设置为 org_xyz。字符串是唯一支持的类型。使用 SecurityIdentityAugmentor 验证其他类型的或复杂声明的声明。

环境变量: QUARKUS_OIDC_TOKEN_REQUIRED_CLAIMS__CLAIM_NAME_

Map<String,String>

 

quarkus.oidc.token.token-type

预期的令牌类型

环境变量: QUARKUS_OIDC_TOKEN_TOKEN_TYPE

string

 

quarkus.oidc.token.lifespan-grace

生命周期跨宽限期(以秒为单位)。在检查令牌到期时,允许当前的时间超过令牌过期时间(最多配置的秒数)。在检查令牌颁发时,当前时间最多允许于令牌问题时间超过配置的秒数。

环境变量: QUARKUS_OIDC_TOKEN_LIFESPAN_GRACE

int

 

quarkus.oidc.token.age

令牌期限.它可指定自 iat (在)时间后不得经过的秒数。一个小的用于时钟偏移的 leeway,它可以使用 quarkus.oidc.token.lifespan-grace 来配置,以验证令牌到期时间也可以用于验证令牌年龄属性。请注意,设置此属性不会放宽 Bearer 和代码流 JWT 令牌必须具有有效的(exp)到期声明值的要求。设置此属性放松需要的唯一例外是,当注销令牌与后端退出请求发送时,因为当前的 OpenId Connect Back-Channel 规格没有明确要求包含 exp 声明。但是,即使当前注销令牌没有 exp 声明,仍然会在注销令牌包含该令牌时验证 exp 声明。

环境变量: QUARKUS_OIDC_TOKEN_AGE

duration question circle

 

quarkus.oidc.token.issued-at-required

如果您的 JWT 令牌不包含 iat (issued at)声明,要求该令牌包含 iat (issued at)声明将此属性设置为 false。请注意,ID 令牌总是需要具有 iat 声明,因此此属性不会影响 ID 令牌验证过程。

环境变量: QUARKUS_OIDC_TOKEN_ISSUED_AT_REQUIRED

布尔值

true

quarkus.oidc.token.principal-claim

包含主体名称的声明的名称。默认情况下,会检查 upnpreferred_usernamesub 声明。

环境变量: QUARKUS_OIDC_TOKEN_PRINCIPAL_CLAIM

string

 

quarkus.oidc.token.refresh-expired

刷新已过期的授权代码流 ID 或访问令牌。如果启用了此属性,如果授权代码 ID 或访问令牌已过期,则会执行刷新令牌请求,如果成功,本地会话会使用新的令牌集合更新。否则,本地会话将无效,用户重定向到 OpenID 提供程序以重新进行身份验证。在这种情况下,如果 OIDC 供应商会话仍然活跃,用户可能无法再次挑战。对于此选项,password _session-age-extension 属性也应设置为非零值,因为刷新令牌当前保留在用户会话中。只有在应用程序类型为 ApplicationType#WEB_APP} 时,这个选项才有效。如果配置了 quarkus.oidc.token.refresh-token-time-skew,则不需要在本例中手动启用此属性。

环境变量: QUARKUS_OIDC_TOKEN_REFRESH_EXPIRED

布尔值

false

quarkus.oidc.token.refresh-token-time-skew

刷新令牌时间偏移(以秒为单位)。如果启用了此属性,在检查授权代码 ID 或访问令牌是否应刷新时,配置的秒数会添加到当前时间。如果总和大于授权代码 ID 或访问令牌的过期时间,则会进行刷新。

环境变量: QUARKUS_OIDC_TOKEN_REFRESH_TOKEN_TIME_SKEW

duration question circle

 

quarkus.oidc.token.forced-jwk-refresh-interval

强制 JWK 设置刷新间隔(以分钟为单位)。

环境变量: QUARKUS_OIDC_TOKEN_FORCED_JWK_REFRESH_INTERVAL

duration question circle

10M

quarkus.oidc.token.header

包含 bearer 令牌的自定义 HTTP 标头。只有在应用程序类型为 ApplicationType CPUfreqSERVICE } 时,这个选项才有效。

环境变量: QUARKUS_OIDC_TOKEN_HEADER

string

 

quarkus.oidc.token.authorization-scheme

HTTP 授权标头方案.

环境变量: QUARKUS_OIDC_TOKEN_AUTHORIZATION_SCHEME

string

bearer

quarkus.oidc.token.signature-algorithm

所需的签名算法。OIDC 供应商支持许多签名算法,但如果需要,您可以限制 Quarkus 应用程序来接受仅使用此属性配置的算法签名的令牌。

环境变量: QUARKUS_OIDC_TOKEN_SIGNATURE_ALGORITHM

rs256,rs 384,rs512,ps256,ps384,ps512,es256,es384,es512,edsa

 

quarkus.oidc.token.decryption-key-location

解密密钥位置.JWT 令牌可由 OpenId Connect 提供程序进行内部签名和加密。但是,并不总是能够远程内省此类令牌,因为提供程序可能无法控制私钥。在这种情况下,将此属性设置为指向包含 PEM 或 JSON Web 密钥(JWK)格式的解密私钥的文件。如果没有设置此属性,并且使用了 private_key_jwt 客户端身份验证方法,则用于为客户端身份验证 JWT 令牌签名的私钥也用于解密加密的 ID 令牌。

环境变量: QUARKUS_OIDC_TOKEN_DECRYPTION_KEY_LOCATION

string

 

quarkus.oidc.token.allow-jwt-introspection

当没有匹配的 JWK 密钥时,允许远程内省 JWT 令牌。出于向后兼容性的原因,此属性默认设置为 true。计划在以后的发行版本中,此默认值将更改为 false。另请注意,如果 JWK 端点 URI 不可用并且内省令牌是唯一验证选项,则此属性将被忽略。

环境变量: QUARKUS_OIDC_TOKEN_ALLOW_JWT_INTROSPECTION

布尔值

true

quarkus.oidc.token.require-jwt-introspection-only

要求仅远程内省 JWT 令牌。

环境变量: QUARKUS_OIDC_TOKEN_REQUIRE_JWT_INTROSPECTION_ONLY

布尔值

false

quarkus.oidc.token.allow-opaque-token-introspection

允许远程内省不透明令牌。如果只有 JWT 令牌,则将此属性设置为 false

环境变量: QUARKUS_OIDC_TOKEN_ALLOW_OPAQUE_TOKEN_INTROSPECTION

布尔值

true

quarkus.oidc.token.customizer-name

令牌自定义器名称。允许选择特定于租户的令牌自定义器作为命名 Bean。在注册自定义令牌时,首选使用 Tenant Feature qualifier。使用此属性只引用此扩展提供的 TokenCustomizer 实现。

环境变量: QUARKUS_OIDC_TOKEN_CUSTOMIZER_NAME

string

 

quarkus.oidc.token.verify-access-token-with-user-info

间接验证不透明(二进制)访问令牌是否有效,方法是请求 UserInfo。如果提供商接受此令牌并返回有效的 UserInfo,则不透明访问令牌被视为有效。只有在必须接受不透明访问令牌但 OpenId Connect 供应商没有令牌内省端点时,才应启用此选项。当必须验证 JWT 令牌时,此属性无效。

环境变量: QUARKUS_OIDC_TOKEN_VERIFY_ACCESS_TOKEN_WITH_USER_INFO

布尔值

false

quarkus.oidc.logout.path

应用程序上 logout 端点的相对路径。如果提供,应用程序可以通过此端点启动注销,并符合 OpenID Connect RP-Initiated Logout 规格。

环境变量: QUARKUS_OIDC_LOGOUT_PATH

string

 

quarkus.oidc.logout.post-logout-path

从 OpenID Connect 提供程序注销后,用户应重定向到的应用程序端点的相对路径。此端点 URI 必须在 OpenID Connect Provider 上正确注册,作为有效的重定向 URI。

环境变量: QUARKUS_OIDC_LOGOUT_POST_LOGOUT_PATH

string

 

quarkus.oidc.logout.post-logout-uri-param

post logout URI 参数的名称,作为查询参数添加到 logout 重定向 URI。

环境变量: QUARKUS_OIDC_LOGOUT_POST_LOGOUT_URI_PARAM

string

post_logout_redirect_uri

quarkus.oidc.logout.extra-params."query-parameter-name"

添加作为查询参数到 logout 重定向 URI 的额外属性。

环境变量: QUARKUS_OIDC_LOGOUT_EXTRA_PARAMS__QUERY_PARAMETER_NAME_

Map<String,String>

 

quarkus.oidc.logout.backchannel.path

应用程序中 Back-Channel Logout 端点的相对路径。它必须以正斜杠 '/' 开头,例如 '/back-channel-logout'。这个值总是相对于 'quarkus.http.root-path' 解析。

环境变量: QUARKUS_OIDC_LOGOUT_BACKCHANNEL_PATH

string

 

quarkus.oidc.logout.backchannel.token-cache-size

在与会话 Cookie 中存储的 ID 令牌匹配之前可以缓存的最大注销令牌数。

环境变量: QUARKUS_OIDC_LOGOUT_BACKCHANNEL_TOKEN_CACHE_SIZE

int

10

quarkus.oidc.logout.backchannel.token-cache-time-to-live

可以缓存注销令牌的分钟数。

环境变量: QUARKUS_OIDC_LOGOUT_BACKCHANNEL_TOKEN_CACHE_TIME_TO_LIVE

duration question circle

10M

quarkus.oidc.logout.backchannel.clean-up-timer-interval

令牌缓存计时器间隔。如果设置了此属性,则计时器会定期检查并删除过时的条目。

环境变量: QUARKUS_OIDC_LOGOUT_BACKCHANNEL_CLEAN_UP_TIMER_INTERVAL

duration question circle

 

quarkus.oidc.logout.backchannel.logout-token-key

注销令牌声明,其值用作缓存令牌的密钥。只有 sub (subject)和 sid (会话 ID)声明才能用作密钥。只有在 OIDC 供应商发布的 ID 令牌没有 但具有 sid 声明时,才会将其设置为 sid

环境变量: QUARKUS_OIDC_LOGOUT_BACKCHANNEL_LOGOUT_TOKEN_KEY

string

sub

quarkus.oidc.logout.frontchannel.path

应用程序中 Front-Channel Logout 端点的相对路径。

环境变量: QUARKUS_OIDC_LOGOUT_FRONTCHANNEL_PATH

string

 

quarkus.oidc.certificate-chain.leaf-certificate-name

leaf 证书的通用名称。如果 trust-store-file 没有导入此证书,则必须设置它。

环境变量: QUARKUS_OIDC_CERTIFICATE_CHAIN_LEAF_CERTIFICATE_NAME

string

 

quarkus.oidc.certificate-chain.trust-store-file

truststore 文件,用于保留可信证书的指纹。

环境变量: QUARKUS_OIDC_CERTIFICATE_CHAIN_TRUST_STORE_FILE

path

 

quarkus.oidc.certificate-chain.trust-store-password

如果使用 trust-store-file 配置,用于指定 truststore 文件的密码的参数。

环境变量: QUARKUS_OIDC_CERTIFICATE_CHAIN_TRUST_STORE_PASSWORD

string

 

quarkus.oidc.certificate-chain.trust-store-cert-alias

指定信任存储证书的别名的参数。

环境变量: QUARKUS_OIDC_CERTIFICATE_CHAIN_TRUST_STORE_CERT_ALIAS

string

 

quarkus.oidc.certificate-chain.trust-store-file-type

指定信任存储文件类型的可选参数。如果未指定,则根据文件名自动检测到类型。

环境变量: QUARKUS_OIDC_CERTIFICATE_CHAIN_TRUST_STORE_FILE_TYPE

string

 

quarkus.oidc.authentication.response-mode

授权代码流响应模式。

环境变量: QUARKUS_OIDC_AUTHENTICATION_RESPONSE_MODE

query: Authorization 响应参数在添加到 redirect_uri的查询字符串中编码

form-post: Authorization 响应参数编码为 HTML 表单值,这些值由浏览器中自动提交并由 HTTP POST 方法使用 application/x-www-form-urlencoded 内容类型传输

query

quarkus.oidc.authentication.redirect-path

计算 redirect_uri 查询参数的相对路径。它必须从正斜杠开始,并附加到请求 URI 的主机和端口。例如,如果当前请求 URI 是 https://localhost:8080/service,如果此属性设置为 /,则 redirect_uri 参数被设置为 https://localhost:8080/,如果没有配置此属性,则与请求 URI 相同。请注意,如果 restorePathAfterRedirect 设为 true,则在用户通过身份验证后恢复原始请求 URI。

环境变量: QUARKUS_OIDC_AUTHENTICATION_REDIRECT_PATH

string

 

quarkus.oidc.authentication.restore-path-after-redirect

如果此属性设为 true,则在用户重定向到应用程序时恢复身份验证之前使用的原始请求 URI。请注意,如果没有设置 redirectPath 属性,则即使禁用了此属性,也会恢复原始请求 URI。

环境变量: QUARKUS_OIDC_AUTHENTICATION_RESTORE_PATH_AFTER_REDIRECT

布尔值

false

quarkus.oidc.authentication.remove-redirect-parameters

在用户通过将用户重定向到同一 URI 后,在重定向 URI 上删除由 OIDC 服务器设置 的代码和 状态,但没有查询参数。

环境变量: QUARKUS_OIDC_AUTHENTICATION_REMOVE_REDIRECT_PARAMETERS

布尔值

true

quarkus.oidc.authentication.error-path

指向处理 OIDC 授权端点错误响应的公共端点的相对路径。如果用户身份验证失败,OIDC 供应商会返回一个错误和可选的 error _description 参数,而不是预期的 授权代码。如果设置了此属性,用户会被重定向到端点,这可以返回用户友好的错误描述页面。它必须从正斜杠开始,并附加到请求 URI 的主机和端口。例如,如果它被设置为 /error,且当前请求 URI 为 https://localhost:8080/callback?error=invalid_scope,则会将重定向设置为 https://localhost:8080/error?error=invalid_scope。如果没有设置此属性,则在用户身份验证失败时会返回 HTTP 401 状态。

环境变量: QUARKUS_OIDC_AUTHENTICATION_ERROR_PATH

string

 

quarkus.oidc.authentication.session-expired-path

当会话已过期时,经过身份验证的用户重定向到的公共端点的相对路径。

当 OIDC 会话已过期且会话无法刷新时,用户会被重定向到 OIDC 供应商来重新验证。在这种情况下,用户体验可能并不理想,因为因为返回身份验证质询的原因可能并不明显。

您希望用户再次重定向到公共应用特定页面,则设置此属性。这可通知会话已过期,并建议用户按照到安全初始条目页面的链接来重新验证。

环境变量: QUARKUS_OIDC_AUTHENTICATION_SESSION_EXPIRED_PATH

string

 

quarkus.oidc.authentication.verify-access-token

作为授权代码流的一部分,从 OIDC 供应商获取 ID 和访问令牌。

ID 令牌始终在每个用户请求上验证,作为主令牌,用于代表主体并提取角色。

授权代码流访问令牌旨在传播到下游服务,除非 quarkus.oidc.roles.source 属性设置为 accesstoken,否则授权决定基于从访问令牌提取的角色。

如果此令牌被注入 JsonWebToken,则也启用了授权代码流访问令牌验证。如果不需要,将此属性设置为 false

bearer 访问令牌始终被验证。

环境变量: QUARKUS_OIDC_AUTHENTICATION_VERIFY_ACCESS_TOKEN

布尔值

当访问令牌作为 JsonWebToken bean 注入时为 true,否则为 false

quarkus.oidc.authentication.force-redirect-https-scheme

在 SSL/TLS 终止反向代理后面运行时,强制 https 作为 redirect_uri 参数方案。如果启用,此属性也会影响 logout post_logout_redirect_uri 和本地重定向请求。

环境变量: QUARKUS_OIDC_AUTHENTICATION_FORCE_REDIRECT_HTTPS_SCHEME

布尔值

false

quarkus.oidc.authentication.scopes

范围列表

环境变量: QUARKUS_OIDC_AUTHENTICATION_SCOPES

字符串列表

 

quarkus.oidc.authentication.scope-separator

配置多个范围时使用的分隔符。默认使用单个空间。

环境变量: QUARKUS_OIDC_AUTHENTICATION_SCOPE_SEPARATOR

string

 

quarkus.oidc.authentication.nonce-required

要求 ID 令牌包含非 ce 声明,该声明必须与 身份验证请求查询参数匹配。启用此属性可帮助缓解重播攻击。如果您的 OpenId Connect 供应商不支持在 ID 令牌中设置 非ce,或者与 OAuth2 供应商(如没有提供 ID 令牌的 GitHub )搭配使用,则不要启用此属性。

环境变量: QUARKUS_OIDC_AUTHENTICATION_NONCE_REQUIRED

布尔值

false

quarkus.oidc.authentication.add-openid-scope

openid 范围自动添加到范围列表中。这是 OpenId Connect 供应商所必需的,但不适用于 OAuth2 供应商,如 thread OAuth2,不接受此范围并抛出错误。

环境变量: QUARKUS_OIDC_AUTHENTICATION_ADD_OPENID_SCOPE

布尔值

true

quarkus.oidc.authentication.extra-params."parameter-name"

添加作为查询参数到身份验证重定向 URI 的额外属性。

环境变量: QUARKUS_OIDC_AUTHENTICATION_EXTRA_PARAMS__PARAMETER_NAME_

Map<String,String>

 

quarkus.oidc.authentication.forward-params

请求 URL 查询参数(如果存在)添加到身份验证重定向 URI 中。

环境变量: QUARKUS_OIDC_AUTHENTICATION_FORWARD_PARAMS

字符串列表

 

quarkus.oidc.authentication.cookie-force-secure

如果启用了 state、session 和 post logout cookies,则在使用 HTTP 时将其 secure 参数设置为 true。在 SSL/TLS 终止反向代理后面运行时,可能需要这样做。如果使用 HTTPS,则 Cookie 始终安全,即使此属性设置为 false。

环境变量: QUARKUS_OIDC_AUTHENTICATION_COOKIE_FORCE_SECURE

布尔值

false

quarkus.oidc.authentication.cookie-suffix

Cookie 名称后缀。例如,默认 OIDC 租户的会话 Cookie 名称为 q_session,但如果此属性设置为 test,则可以更改为 q_session_test

环境变量: QUARKUS_OIDC_AUTHENTICATION_COOKIE_SUFFIX

string

 

quarkus.oidc.authentication.cookie-path

Cookie path 参数值(如果设置了)用于为会话设置 path 参数,state 和 post logout cookies。如果设置,则 Cookie-path-header 属性会首先检查。

环境变量: QUARKUS_OIDC_AUTHENTICATION_COOKIE_PATH

string

/

quarkus.oidc.authentication.cookie-path-header

Cookie path header 参数值(如果设置)标识传入的 HTTP 标头,其值用于为会话、状态和发布 logout cookie 设置 path 参数。如果缺少标头,则会检查 cookie-path 属性。

环境变量: QUARKUS_OIDC_AUTHENTICATION_COOKIE_PATH_HEADER

string

 

quarkus.oidc.authentication.cookie-domain

Cookie 域参数值(如果设置了)用于会话,state 和 post logout cookies。

环境变量: QUARKUS_OIDC_AUTHENTICATION_COOKIE_DOMAIN

string

 

quarkus.oidc.authentication.cookie-same-site

会话 Cookie 的 SameSite 属性。

环境变量: QUARKUS_OIDC_AUTHENTICATION_COOKIE_SAME_SITE

strict,lax,none

lax

quarkus.oidc.authentication.allow-multiple-code-flows

如果存在状态 Cookie,则 状态 查询参数也必须存在,并且当重定向路径与当前路径匹配时,状态 Cookie 名称后缀和状态 Cookie 值必须与状态 查询参数的值匹配。但是,如果从同一浏览器中尝试多个身份验证,例如从不同的浏览器标签页中,则当前可用的状态 cookie 可能代表从另一个标签页启动的身份验证流,而不是与当前请求相关的。禁用此属性,以在同一浏览器中只允许单个授权代码流。

环境变量: QUARKUS_OIDC_AUTHENTICATION_ALLOW_MULTIPLE_CODE_FLOWS

布尔值

true

quarkus.oidc.authentication.fail-on-missing-state-param

如果 state cookie 存在但没有状态查询参数,则失败并显示 HTTP 401 错误。

当禁用多个身份验证或者重定向 URL 与原始请求 URL 匹配时,过时的状态 Cookie 可能会保留在之前失败的浏览器缓存中,并可在当前请求中可见。例如,如果 Single-page 应用(SPA)使用 XHR 处理重定向到不支持其授权端点的 CORS 的提供程序,浏览器会阻止它,并且 Quarkus 创建的状态 Cookie 保留在浏览器缓存中。当检测到旧的状态 cookie 时,quarkus 会报告身份验证失败,但找不到匹配的状态查询参数。

报告 HTTP 401 错误通常是在这种情况下执行的正确操作,它会最小化浏览器重定向循环的风险,但还可以 SPA 或 Quarkus 应用程序管理重定向方式识别问题。例如,可能需要启用 java-script-auto-redirect,或者将供应商重定向到配置了 redirect-path 的 URL,以避免此类错误。

但是,如果上述选项不合适,则将此属性设置为 false 可以帮助。这会导致新的身份验证重定向到 OpenId Connect 供应商。这样做可能会增加浏览器重定向循环的风险。

环境变量: QUARKUS_OIDC_AUTHENTICATION_FAIL_ON_MISSING_STATE_PARAM

布尔值

false

quarkus.oidc.authentication.user-info-required

如果此属性设为 true,则调用 OIDC UserInfo 端点。

如果 quarkus.oidc.roles.source 设置为 userinfoquarkus.oidc.token.verify-access-token-with-user-info,则会自动启用此属性,如果将 quarkus.oidc.authentication.id-token-required 设置为 false,则当前的 OIDC 租户必须支持这些情况下的 UserInfo 端点。

如果检测到 io.quarkus.oidc.UserInfo 注入点,但只有当前的 OIDC 租户支持 UserInfo 端点,它会自动启用。

环境变量: QUARKUS_OIDC_AUTHENTICATION_USER_INFO_REQUIRED

布尔值

当 UserInfo bean 被注入时为 true,否则为 false

quarkus.oidc.authentication.session-age-extension

会话期限扩展(以分钟为单位)。默认情况下,用户会话年龄属性被设置为 ID 令牌生命周期的值,用户会被重定向到 OIDC 供应商,以在会话过期后重新验证。如果此属性设置为非零值,则在会话过期前可以刷新过期的 ID 令牌。如果没有启用 token.refresh-expired 属性,则此属性会被忽略。

环境变量: QUARKUS_OIDC_AUTHENTICATION_SESSION_AGE_EXTENSION

duration question circle

5M

quarkus.oidc.authentication.state-cookie-age

状态 Cookie 期限(以分钟为单位)。当新的授权代码流重定向在完成此流时,都会创建状态 Cookie。默认情况下,状态 Cookie 名称是唯一的,请参阅 allow-multiple-code-flows。保持其合理的最小值,如 5 分钟或更少。

环境变量: QUARKUS_OIDC_AUTHENTICATION_STATE_COOKIE_AGE

duration question circle

5M

quarkus.oidc.authentication.java-script-auto-redirect

如果此属性设为 true,则返回普通的 302 重定向响应,如果请求是由 JavaScript API (如 XMLHttpRequest 或 Fetch)启动,且当前用户需要(re) authenticated,这可能不适用于单页应用程序(SPA),因为它自动遵循该 OIDC 授权端点通常不支持 CORS。

如果此属性设为 false,则返回 499 状态代码,以允许 SPA 在找到以 JavaScript 请求身份识别当前请求的请求标头时手动处理重定向。如果启用此属性,则默认预期 X-Requested-With 请求标头,其值设为 JavaScriptXMLHttpRequest。您可以注册自定义 JavaScriptRequestChecker 来执行自定义 JavaScript 请求检查。

环境变量: QUARKUS_OIDC_AUTHENTICATION_JAVA_SCRIPT_AUTO_REDIRECT

布尔值

true

quarkus.oidc.authentication.id-token-required

当授权代码流完成后,要求 ID 令牌可用。仅在您需要将授权代码流与 OAuth2 供应商(没有返回 ID 令牌)搭配使用时禁用此属性 - 在这种情况下会生成内部 IdToken。

环境变量: QUARKUS_OIDC_AUTHENTICATION_ID_TOKEN_REQUIRED

布尔值

true

quarkus.oidc.authentication.internal-id-token-lifespan

内部 ID 令牌寿命.只有在 Oauth2 供应商没有返回 IdToken 时,才会检查此属性。

环境变量: QUARKUS_OIDC_AUTHENTICATION_INTERNAL_ID_TOKEN_LIFESPAN

duration question circle

5M

quarkus.oidc.authentication.pkce-required

要求使用代码交换证明密钥(PKCE)。

环境变量: QUARKUS_OIDC_AUTHENTICATION_PKCE_REQUIRED

布尔值

false

quarkus.oidc.authentication.state-secret

用于为代码交换(PKCE)代码验证器(PKCE)代码验证器和/或非代码流状态加密概念验证的 secret。此 secret 应该至少为 32 个字符。

如果没有设置此 secret,则会检查使用 quarkus.oidc.credentials.secretquarkus.oidc.credentials.client-secret.value 配置的客户端 secret。最后,检查可用于 client_ jwt_secret 身份验证的 quarkus.oidc.credentials.jwt.secret。如果客户端 secret 小于 32 个字符,则不会将客户端 secret 用作状态加密 secret。

如果在检查所有这些属性后仍然未初始化,则自动生成该 secret。

如果 secret 长度小于 16 个字符,则报告错误。

环境变量: QUARKUS_OIDC_AUTHENTICATION_STATE_SECRET

string

 

quarkus.oidc.code-grant.extra-params."parameter-name"

除了所需的 代码和 redirect-uri 参数外,还必须包含其他参数,才能完成授权代码授权请求。

环境变量: QUARKUS_OIDC_CODE_GRANT_EXTRA_PARAMS__PARAMETER_NAME_

Map<String,String>

 

quarkus.oidc.code-grant.headers."header-name"

必须发送自定义 HTTP 标头来完成授权代码授权请求。

环境变量: QUARKUS_OIDC_CODE_GRANT_HEADERS__HEADER_NAME_

Map<String,String>

 

quarkus.oidc.token-state-manager.strategy

默认 TokenStateManager 策略。

环境变量: QUARKUS_OIDC_TOKEN_STATE_MANAGER_STRATEGY

keep-all-tokens :保留 ID、访问和刷新令牌。

id-token :只保留 ID 令牌

id-refresh-tokens: 仅保留 ID 和刷新令牌

keep-all-tokens

quarkus.oidc.token-state-manager.split-tokens

默认 TokenStateManager 会保留在授权代码中返回的所有令牌(ID、访问和刷新)默认授予单个会话 Cookie 的响应。启用此属性最小化会话 Cookie 大小

环境变量: QUARKUS_OIDC_TOKEN_STATE_MANAGER_SPLIT_TOKENS

布尔值

false

quarkus.oidc.token-state-manager.encryption-required

强制 Default TokenStateManager 加密存储令牌的会话 Cookie。

环境变量: QUARKUS_OIDC_TOKEN_STATE_MANAGER_ENCRYPTION_REQUIRED

布尔值

true

quarkus.oidc.token-state-manager.encryption-secret

Default TokenStateManager 用来加密在启用 encryption-required 属性时存储令牌的会话 Cookie 的 secret。

如果没有设置此 secret,则会检查使用 quarkus.oidc.credentials.secretquarkus.oidc.credentials.client-secret.value 配置的客户端 secret。最后,检查可用于 client_ jwt_secret 身份验证的 quarkus.oidc.credentials.jwt.secret。如果应用程序在检查所有这些属性后仍然未初始化,则每次应用程序启动时都会自动生成 secret。在重启之前,生成的机密无法解密会话 Cookie 加密,因此用户需要重新进行身份验证。

用于加密令牌的 secret 的长度应至少为 32 个字符。如果 secret 长度小于 16 个字符,则会记录警告信息。

环境变量: QUARKUS_OIDC_TOKEN_STATE_MANAGER_ENCRYPTION_SECRET

string

 

quarkus.oidc.token-state-manager.encryption-algorithm

会话 Cookie 密钥加密算法

环境变量: QUARKUS_OIDC_TOKEN_STATE_MANAGER_ENCRYPTION_ALGORITHM

a256-gcmkw: 使用 A256GCMKW 算法和配置的加密 secret 生成并加密内容加密密钥。生成的内容加密密钥将用于加密会话 Cookie 内容。

dir :配置的密钥加密 secret 将用作内容加密密钥来加密会话 Cookie 内容。使用直接加密可避免内容加密密钥生成步骤,并将使加密的会话 Cookie 序列稍短。如果加密 secret 小于 32 个字符,则避免使用直接加密。

a256-gcmkw

quarkus.oidc.allow-token-introspection-cache

允许缓存令牌内省数据。请注意,启用此属性不启用缓存本身,但仅允许缓存给定租户的令牌内省。如果可以使用默认令牌缓存,请参阅 OidcConfig.TokenCache 来启用它。

环境变量: QUARKUS_OIDC_ALLOW_TOKEN_INTROSPECTION_CACHE

布尔值

true

quarkus.oidc.allow-user-info-cache

允许缓存用户信息数据。请注意,启用此属性不启用缓存本身,但只允许缓存给定租户的用户信息数据。如果可以使用默认令牌缓存,请参阅 OidcConfig.TokenCache 来启用它。

环境变量: QUARKUS_OIDC_ALLOW_USER_INFO_CACHE

布尔值

true

quarkus.oidc.cache-user-info-in-idtoken

允许在 IdToken 中简化 UserInfo,而不是将其缓存在令牌缓存中。只有在 OAuth2 供应商没有返回 IdToken 时,才会检查此属性。在生成的 IdToken 中,Inlining UserInfo 允许将其存储在会话 Cookie 中,并避免引入缓存的状态。

如果会话 Cookie 已被加密,并且没有为当前租户禁用 UserInfo 缓存,并且当前租户将 allow-user-info-cache 属性设置为 false,则启用生成的 IdToken 中的 Inlining UserInfo。

环境变量: QUARKUS_OIDC_CACHE_USER_INFO_IN_IDTOKEN

布尔值

 

quarkus.oidc.jwks.resolve-early

如果在连接到 OIDC 供应商时,应该获取 JWK 验证密钥。

禁用此属性会延迟密钥获取,直到必须验证当前令牌的时间。通常,只有在令牌或其他 telated 请求属性提供正确解析密钥所需的额外上下文时,才能需要它。

环境变量: QUARKUS_OIDC_JWKS_RESOLVE_EARLY

布尔值

true

quarkus.oidc.jwks.cache-size

可以缓存的最大 JWK 密钥数。如果 resolve-early 属性设为 true,则此属性会被忽略。

环境变量: QUARKUS_OIDC_JWKS_CACHE_SIZE

int

10

quarkus.oidc.jwks.cache-time-to-live

可以缓存 JWK 密钥的分钟数。如果 resolve-early 属性设为 true,则此属性会被忽略。

环境变量: QUARKUS_OIDC_JWKS_CACHE_TIME_TO_LIVE

duration question circle

10M

quarkus.oidc.jwks.clean-up-timer-interval

缓存计时器间隔。如果设置了此属性,则计时器会定期检查并删除过时的条目。如果 resolve-early 属性设为 true,则此属性会被忽略。

环境变量: QUARKUS_OIDC_JWKS_CLEAN_UP_TIMER_INTERVAL

duration question circle

 

quarkus.oidc.jwks.try-all

如果没有密钥标识符('kid')或证书指纹('x5t', 'x5t""256')在 JOSE 标头中指定的,且没有键决定,检查与令牌算法('alg')标头值匹配的所有可用密钥。

环境变量: QUARKUS_OIDC_JWKS_TRY_ALL

布尔值

false

quarkus.oidc.provider

已知的 OpenId Connect 供应商标识符

环境变量: QUARKUS_OIDC_PROVIDER

Apple,discord,facebook,github,google,linkedin,mas libpmemn,microsoft,spotify,strava,twitch,twitter,x

 

quarkus.oidc.token-cache.max-size

最大缓存条目数。如果需要启用缓存,则将其设置为正值。

环境变量: QUARKUS_OIDC_TOKEN_CACHE_MAX_SIZE

int

0

quarkus.oidc.token-cache.time-to-live

给定缓存条目有效的最大时间量。

环境变量: QUARKUS_OIDC_TOKEN_CACHE_TIME_TO_LIVE

duration question circle

3M

quarkus.oidc.token-cache.clean-up-timer-interval

清理计时器间隔。如果设置了此属性,则计时器将定期检查并删除过时的条目。

环境变量: QUARKUS_OIDC_TOKEN_CACHE_CLEAN_UP_TIMER_INTERVAL

duration question circle

 

quarkus.oidc.resolve-tenants-with-issuer

如果 OIDC 租户应使用 bearer 访问令牌的签发者(is)声明值解析。

环境变量: QUARKUS_OIDC_RESOLVE_TENANTS_WITH_ISSUER

布尔值

false

Additional named tenants

类型

default

quarkus.oidc."tenant".auth-server-url

OpenID Connect (OIDC)服务器的基本 URL,例如 https://host:port/auth。如果需要公钥验证(公钥)或仅需要证书链验证(certificate-chain),则不要设置此属性。默认情况下,OIDC 发现端点会在这个 URL 中附加 .well-known/openid-configuration 路径来调用。对于 Keycloak,使用 https://host:port/realms/{realm},将 {realm} 替换为 Keycloak 域名。

环境变量: QUARKUS_OIDC__TENANT__AUTH_SERVER_URL

string

 

quarkus.oidc."tenant".discovery-enabled

发现 OIDC 端点。如果没有启用,您必须单独配置 OIDC 端点 URL。

环境变量: QUARKUS_OIDC__TENANT__DISCOVERY_ENABLED

布尔值

true

quarkus.oidc."tenant".token-path

签发访问和刷新令牌的 OIDC 令牌端点;指定为相对路径或绝对 URL。如果 discovery-enabledfalse,或必须自定义发现的令牌端点路径。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_PATH

string

 

quarkus.oidc."tenant".revoke-path

OIDC 令牌撤销端点的相对路径或绝对路径 URL。

环境变量: QUARKUS_OIDC__TENANT__REVOKE_PATH

string

 

quarkus.oidc."tenant".client-id

应用程序的客户端 ID。每个应用都有一个客户端 ID,用于标识应用程序。如果 application-typeservice,且不需要令牌内省,则不需要设置客户端 ID。

环境变量: QUARKUS_OIDC__TENANT__CLIENT_ID

string

 

quarkus.oidc."tenant".client-name

应用的客户端名称。它代表应用程序的人类可读描述,您可以在 OpenId Connect 供应商的仪表板中注册应用程序(客户端)时提供。例如,您可以将此属性设置为具有更详细的日志消息,记录给定客户端的活动。

环境变量: QUARKUS_OIDC__TENANT__CLIENT_NAME

string

 

quarkus.oidc."tenant".connection-delay

尝试初始连接到 OIDC 服务器的持续时间。例如,将持续时间设置为 20S 允许 10 次重试,每 2 秒。此属性仅在创建初始 OIDC 连接时才有效。对于丢弃的连接,请使用 connection-retry-count 属性。

环境变量: QUARKUS_OIDC__TENANT__CONNECTION_DELAY

duration question circle

 

quarkus.oidc."tenant".connection-retry-count

如果临时丢失,重试重新建立现有 OIDC 连接的次数。与 connection-delay 不同,它只适用于初始连接尝试。例如,如果对 OIDC 令牌端点的请求因为连接问题而失败,它将按此设置重试。

环境变量: QUARKUS_OIDC__TENANT__CONNECTION_RETRY_COUNT

int

3

quarkus.oidc."tenant".connection-timeout

当前 OIDC 连接请求超时的秒数。

环境变量: QUARKUS_OIDC__TENANT__CONNECTION_TIMEOUT

duration question circle

10S

quarkus.oidc."tenant".use-blocking-dns-lookup

是否应该对 worker 线程执行 DNS 查找。当您可以看到由 HTTP 请求到 OIDC 服务器阻止的 Vert.x 事件循环的日志记录警告时,请使用这个选项。

环境变量: QUARKUS_OIDC__TENANT__USE_BLOCKING_DNS_LOOKUP

布尔值

false

quarkus.oidc."tenant".max-pool-size

WebClient 使用的连接池的最大大小。

环境变量: QUARKUS_OIDC__TENANT__MAX_POOL_SIZE

int

 

quarkus.oidc."tenant".credentials.secret

client_secret_basic 身份验证方法使用的客户端 secret。必须设置,除非需要在 client-secretjwt 客户端身份验证中设置 secret。您可以使用 client-secret.value,但这两个属性都是互斥的。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_SECRET

string

 

quarkus.oidc."tenant".credentials.client-secret.value

客户端机密值。如果设置了 credentials.secret,则忽略这个值。必须设置,除非需要在 client-secretjwt 客户端身份验证中设置 secret。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_CLIENT_SECRET_VALUE

string

 

quarkus.oidc."tenant".credentials.client-secret.provider.name

CredentialsProvider bean 名称,只有在注册了多个 CredentialsProvider 时才应设置

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_CLIENT_SECRET_PROVIDER_NAME

string

 

quarkus.oidc."tenant".credentials.client-secret.provider.keyring-name

CredentialsProvider 密钥环名称。只有在使用的 CredentialsProvider 需要密钥环名称来查找 secret 时,才需要密钥环名称,这通常是当一个 CredentialsProvider 被多个扩展共享时,才需要多个扩展从更多动态源(如 vault 实例或 secret manager)检索凭证时。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_CLIENT_SECRET_PROVIDER_KEYRING_NAME

string

 

quarkus.oidc."tenant".credentials.client-secret.provider.key

CredentialsProvider 客户端 secret 密钥

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_CLIENT_SECRET_PROVIDER_KEY

string

 

quarkus.oidc."tenant".credentials.client-secret.method

身份验证方法。如果设置了 clientSecret.value secret,则此方法默认是 基本的

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_CLIENT_SECRET_METHOD

基本:client_secret_basic (默认):客户端 ID 和 secret 使用 HTTP 授权基本方案提交。

post:client_secret_post :客户端 ID 和 secret 作为 client_idclient_secret 表单参数提交。

post-jwt:client_secret_jwt: 客户端 ID 和生成的 JWT secret 作为 client_idclient_secret 形式参数提交。

query :客户端 ID 和 secret 作为 HTTP 查询参数提交。这个选项只支持 OIDC 扩展。

 

quarkus.oidc."tenant".credentials.jwt.source

JWT 令牌源:OIDC 供应商客户端或现有的 JWT bearer 令牌。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_SOURCE

Client,bearer

client

quarkus.oidc."tenant".credentials.jwt.secret

如果提供,则表示 JWT 使用 secret 密钥进行了签名。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_SECRET

string

 

quarkus.oidc."tenant".credentials.jwt.secret-provider.name

CredentialsProvider bean 名称,只有在注册了多个 CredentialsProvider 时才应设置

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_SECRET_PROVIDER_NAME

string

 

quarkus.oidc."tenant".credentials.jwt.secret-provider.keyring-name

CredentialsProvider 密钥环名称。只有在使用的 CredentialsProvider 需要密钥环名称来查找 secret 时,才需要密钥环名称,这通常是当一个 CredentialsProvider 被多个扩展共享时,才需要多个扩展从更多动态源(如 vault 实例或 secret manager)检索凭证时。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_SECRET_PROVIDER_KEYRING_NAME

string

 

quarkus.oidc."tenant".credentials.secret-provider.key

CredentialsProvider 客户端 secret 密钥

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_SECRET_PROVIDER_KEY

string

 

quarkus.oidc."tenant".credentials.jwt.key

私钥的字符串表示。如果提供,则表示 JWT 是使用 PEM 或 JWK 格式的私钥签名的。您可以使用 signature-algorithm 属性覆盖默认的密钥算法 RS256

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_KEY

string

 

quarkus.oidc."tenant".credentials.jwt.key-file

如果提供,则表示 JWT 是使用 PEM 或 JWK 格式的私钥签名的。您可以使用 signature-algorithm 属性覆盖默认的密钥算法 RS256

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_KEY_FILE

string

 

quarkus.oidc."tenant".credentials.jwt.key-store-file

如果提供,则表示 JWT 使用密钥存储中的私钥签名。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_KEY_STORE_FILE

string

 

quarkus.oidc."tenant".credentials.key-store-password

指定密钥存储文件的密码的参数。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_KEY_STORE_PASSWORD

string

 

quarkus.oidc."tenant".credentials.jwt.key-id

私钥 ID 或别名。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_KEY_ID

string

 

quarkus.oidc."tenant".credentials.jwt.key-password

私钥密码。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_KEY_PASSWORD

string

 

quarkus.oidc."tenant".credentials.jwt.audience

JWT 受众(ud)声明值。默认情况下,audience 设置为 OpenId Connect Provider 的令牌端点的地址。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_AUDIENCE

string

 

quarkus.oidc."tenant".credentials.jwt.token-key-id

添加为 JWT kid 标头的签名密钥标识符。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_TOKEN_KEY_ID

string

 

quarkus.oidc."tenant".credentials.jwt.issuer

添加为 JWT 的签名密钥的签发者 是s 声明。默认值为客户端 ID。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_ISSUER

string

 

quarkus.oidc."tenant".credentials.jwt.subject

添加为 JWT 声明的签名密钥的主题。默认值是客户端 ID。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_SUBJECT

string

 

quarkus.oidc."tenant".credentials.jwt.claims."claim-name"

其他声明.

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_CLAIMS__CLAIM_NAME_

Map<String,String>

 

quarkus.oidc."tenant".credentials.jwt.signature-algorithm

用于 key-file 属性的签名算法。支持的值有: RS256 (默认)、RS384RS512PS256PS384PS512、ES256、ES256ES384、ES512、ES512、ES512、ESS256HS384HS512.

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_SIGNATURE_ALGORITHM

string

 

quarkus.oidc."tenant".credentials.jwt.lifespan

JWT 生命周期(以秒为单位)。这个值添加到发出 JWT 的时间,以计算过期时间。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_LIFESPAN

int

10

quarkus.oidc."tenant".credentials.jwt.assertion

如果为 true,则客户端身份验证令牌是 JWT bearer 授权断言。不生成 'client_assertion' 和 'client_assertion_type' 表单属性,而是只生成 'assertion'。这个选项只支持 OIDC 客户端扩展。

环境变量: QUARKUS_OIDC__TENANT__CREDENTIALS_JWT_ASSERTION

布尔值

false

quarkus.oidc."tenant".proxy.host

代理的主机名或 IP 地址。
注: 如果 OIDC 适配器需要代理与 OIDC 服务器(Provider)通信,请将此值设置为以启用代理的使用。

环境变量: QUARKUS_OIDC__TENANT__PROXY_HOST

string

 

quarkus.oidc."tenant".proxy.port

代理的端口号。默认值为 80

环境变量: QUARKUS_OIDC__TENANT__PROXY_PORT

int

80

quarkus.oidc."tenant".proxy.username

如果代理需要身份验证,则用户名。

环境变量: QUARKUS_OIDC__TENANT_PROXY_USERNAME

string

 

quarkus.oidc."tenant".proxy.password

如果代理需要身份验证,则密码。

环境变量: QUARKUS_OIDC__TENANT__PROXY_PASSWORD

string

 

quarkus.oidc."tenant".tls.verification

证书验证和主机名验证,可以是以下 验证值之一。默认为

环境变量: QUARKUS_OIDC__TENANT__TLS_VERIFICATION

必需 :证书会被验证,并且启用了主机名验证。这是默认值。

certificate-validation :证书会被验证,但禁用主机名验证。

none :所有证书都是可信的,主机名验证被禁用。

 

quarkus.oidc."tenant".tls.key-store-file

保存证书信息的可选密钥存储,而不是指定单独的文件。

环境变量: QUARKUS_OIDC__TENANT__TLS_KEY_STORE_FILE

path

 

quarkus.oidc."tenant".tls.key-store-file-type

密钥存储文件的类型。如果未指定,则根据文件名自动检测到类型。

环境变量: QUARKUS_OIDC__TENANT__TLS_KEY_STORE_FILE_TYPE

string

 

quarkus.oidc."tenant".tls.key-store-provider

密钥存储文件的提供程序。如果未指定,则根据密钥存储文件类型自动检测到该提供程序。

环境变量: QUARKUS_OIDC__TENANT__TLS_KEY_STORE_PROVIDER

string

 

quarkus.oidc."tenant".tls.key-store-password

密钥存储文件的密码。如果未指定,则使用默认值,即 密码

环境变量: QUARKUS_OIDC__TENANT__TLS_KEY_STORE_PASSWORD

string

 

quarkus.oidc."tenant".tls.key-store-key-alias

密钥存储中特定密钥的别名。禁用 SNI 时,如果密钥存储包含多个密钥且没有指定别名,则行为未定义。

环境变量: QUARKUS_OIDC__TENANT__TLS_KEY_STORE_KEY_ALIAS

string

 

quarkus.oidc."tenant".tls.key-store-key-password

密钥的密码(如果与 key-store-password 不同)。

环境变量: QUARKUS_OIDC__TENANT__TLS_KEY_STORE_KEY_PASSWORD

string

 

quarkus.oidc."tenant".tls.trust-store-file

保存要信任的证书信息的信任存储。

环境变量: QUARKUS_OIDC__TENANT__TLS_TRUST_STORE_FILE

path

 

quarkus.oidc."tenant".tls.trust-store-password

truststore 文件的密码。

环境变量: QUARKUS_OIDC__TENANT__TLS_TRUST_STORE_PASSWORD

string

 

quarkus.oidc."tenant".tls.trust-store-cert-alias

信任存储证书的别名。

环境变量: QUARKUS_OIDC__TENANT__TLS_TRUST_STORE_CERT_ALIAS

string

 

quarkus.oidc."tenant".tls.trust-store-file-type

truststore 文件的类型。如果未指定,则根据文件名自动检测到类型。

环境变量: QUARKUS_OIDC__TENANT__TLS_TRUST_STORE_FILE_TYPE

string

 

quarkus.oidc."tenant".tls.trust-store-provider

truststore 文件的供应商。如果没有提供,则会根据信任存储文件类型自动检测到供应商。

环境变量: QUARKUS_OIDC__TENANT__TLS_TRUST_STORE_PROVIDER

string

 

quarkus.oidc."tenant".tenant-id

唯一的租户标识符。它可以由 TenantConfigResolver 提供程序设置,后者可以动态解析租户配置。

环境变量: QUARKUS_OIDC__TENANT__TENANT_ID

string

 

quarkus.oidc."tenant".tenant-enabled

如果启用了此租户配置。如果没有配置,但支持租户配置的 TenantConfigResolver,则默认租户会被禁用,或者配置了命名的租户。在这种情况下,您不需要禁用默认租户。

环境变量: QUARKUS_OIDC__TENANT__TENANT_ENABLED

布尔值

true

quarkus.oidc."tenant".application-type

应用程序类型,可以是以下 ApplicationType 值之一。

环境变量: QUARKUS_OIDC__TENANT__APPLICATION_TYPE

web-app: WEB_APP 是提供页面(通常是前端应用程序)的客户端。对于这种类型的客户端,Authorization Code 流定义为验证用户的首选方法。

服务 : service 服务是一组受保护的 HTTP 资源的客户端,通常是遵循 RESTful 架构师设计的后端应用程序。对于这种类型的客户端,Bearer Authorization 方法定义为身份验证和授权用户的首选方法。

混合 : service 和 WEB _APP 客户端的组合。对于这种类型的客户端,如果设置了 Authorization 标头和 Authorization Code Flow - 如果没有设置,则使用 Bearer Authorization 方法。

service

quarkus.oidc."tenant".authorization-path

OpenID Connect (OIDC)授权端点的相对路径或绝对 URL,用于验证用户。如果 OIDC 发现被禁用,则必须为 web-app 应用程序设置此属性。如果启用了 OIDC 发现,则忽略此属性。

环境变量: QUARKUS_OIDC__TENANT__AUTHORIZATION_PATH

string

 

quarkus.oidc."tenant".user-info-path

OIDC UserInfo 端点的相对路径或绝对路径 URL。如果 OIDC 发现被禁用并且启用了 authentication.user-info-required 属性,则必须为 web-app 应用程序设置此属性。如果启用了 OIDC 发现,则忽略此属性。

环境变量: QUARKUS_OIDC__TENANT__USER_INFO_PATH

string

 

quarkus.oidc."tenant".introspection-path

OIDC RFC7662 内省端点的相对路径或绝对路径 URL,这些端点可以内省不透明和 JSON Web 令牌(JWT)令牌。如果禁用了 OIDC 发现,并且必须验证不透明 bearer 访问令牌,或 2)当缓存的 JWK 验证集没有匹配的 JWK 验证集时,必须设置此属性。如果启用了发现,则忽略此属性。

环境变量: QUARKUS_OIDC__TENANT__INTROSPECTION_PATH

string

 

quarkus.oidc."tenant".jwks-path

返回 JSON Web 密钥验证集的 OIDC JSON Web Key Set (JWKS)端点的相对路径或绝对路径。如果禁用了 OIDC 发现且需要本地 JWT 验证,则应设置此属性。如果启用了发现,则忽略此属性。

环境变量: QUARKUS_OIDC__TENANT__JWKS_PATH

string

 

quarkus.oidc."tenant".end-session-path

OIDC end_session_endpoint 的相对路径或绝对路径 URL。如果禁用了 OIDC 发现,并且需要对 web-app 应用程序的 RP Initiated Logout 支持,则必须设置此属性。如果启用了发现,则忽略此属性。

环境变量: QUARKUS_OIDC__TENANT__END_SESSION_PATH

string

 

quarkus.oidc."tenant".tenant-paths

此租户必须保护的路径。带有最具体路径的租户胜出。有关允许 路径模式的解释,请参阅 OIDC 多租户指南中的配置租户 路径部分。

环境变量: QUARKUS_OIDC__TENANT__TENANT_PATHS

字符串列表

 

quarkus.oidc."tenant".public-key

本地 JWT 令牌验证的公钥。当设置此属性时,不会创建 OIDC 服务器连接。

环境变量: QUARKUS_OIDC__TENANT__PUBLIC_KEY

string

 

quarkus.oidc."tenant".introspection-credentials.name

Name

环境变量: QUARKUS_OIDC__TENANT__INTROSPECTION_CREDENTIALS_NAME

string

 

quarkus.oidc."tenant".introspection-credentials.secret

Secret

环境变量: QUARKUS_OIDC__TENANT__INTROSPECTION_CREDENTIALS_SECRET

string

 

quarkus.oidc."tenant".introspection-credentials.include-client-id

包含使用 quarkus.oidc.client-id 配置的 OpenId Connect Client ID。

环境变量: QUARKUS_OIDC__TENANT__INTROSPECTION_CREDENTIALS_INCLUDE_CLIENT_ID

布尔值

true

quarkus.oidc."tenant".roles.role-claim-path

包含组数组的声明的路径列表。每个路径从顶级 JWT JSON 对象开始,并可以包含多个片段。每个片段仅代表一个 JSON 对象名称,例如:"realm/groups"。使用带命名空间限定声明名称的双引号。如果令牌没有 声明,但有一个或多个不同声明中设置的组,则可以使用此属性。

环境变量: QUARKUS_OIDC__TENANT_ROLES_ROLE_CLAIM_PATH

字符串列表

 

quarkus.oidc."tenant".roles.role-claim-separator

包含多个组值的字符串的分隔符。只有在 "role-claim-path" 属性指向值为字符串的一个或多个自定义声明时才使用它。默认情况下会使用单个空格,因为标准 范围 声明可以包含空格分隔的序列。

环境变量: QUARKUS_OIDC__TENANT_ROLES_ROLE_CLAIM_SEPARATOR

string

 

quarkus.oidc."tenant".roles.source

主体角色的源。

环境变量: QUARKUS_OIDC__TENANT_ROLES_SOURCE

idtoken: ID Token - web-app 应用程序的默认值。

accessToken: Access Token - 服务 应用程序的默认值 ; 也可以用作 web-app 应用程序的角色源。

userinfo: User Info

 

quarkus.oidc."tenant".token.issuer

预期的签发者 是声明 值。此属性覆盖 issuer 属性,它可能会在 OpenId Connect 供应商已知的配置中设置。如果 iss claim 值因提供程序的主机、IP 地址或租户 ID 不同,您可以通过将此属性设置为 任何 来跳过签发者验证,但应仅在其他选项(如配置提供程序使用固定声明值)时执行。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_ISSUER

string

 

quarkus.oidc."tenant".token.audience

预期 受众 的声明值,可以是字符串或字符串数组。请注意,默认情况下,验证了 audience 声明 ID 令牌。ID 令牌使用者必须等于 quarkus.oidc.client-id 属性的值。如果您的 OpenID Connect 供应商在 ID 令牌中设置不同的 audience 声明值,请使用此属性覆盖预期的值。如果您的供应商没有设置 ID 令牌使用者的声明,则将其设置为 任何。只有在配置了此属性时,才会对访问令牌进行使用者验证。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_AUDIENCE

字符串列表

 

quarkus.oidc."tenant".token.subject-required

要求令牌包含 sub (subject)声明,它是当前用户的唯一且永远不会重新分配的标识符。请注意,如果您启用此属性,并且还需要 UserInfo,则必须存在 token 和 UserInfo 声明,并相互匹配。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_SUBJECT_REQUIRED

布尔值

false

quarkus.oidc."tenant".token.required-claims."claim-name"

所需的声明及其预期值的映射。例如,quarkus.oidc.token.required-claims.org_id = org_xyz 将要求令牌存在,并将 org_id 声明设置为 org_xyz。字符串是唯一支持的类型。使用 SecurityIdentityAugmentor 验证其他类型的或复杂声明的声明。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_REQUIRED_CLAIMS__CLAIM_NAME_

Map<String,String>

 

quarkus.oidc."tenant".token.token-type

预期的令牌类型

环境变量: QUARKUS_OIDC__TENANT_TOKEN_TOKEN_TYPE

string

 

quarkus.oidc."tenant".token.lifespan-grace

生命周期跨宽限期(以秒为单位)。在检查令牌到期时,允许当前的时间超过令牌过期时间(最多配置的秒数)。在检查令牌颁发时,当前时间最多允许于令牌问题时间超过配置的秒数。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_LIFESPAN_GRACE

int

 

quarkus.oidc."tenant".token.age

令牌期限.它可指定自 iat (在)时间后不得经过的秒数。一个小的用于时钟偏移的 leeway,它可以使用 quarkus.oidc.token.lifespan-grace 来配置,以验证令牌到期时间也可以用于验证令牌年龄属性。请注意,设置此属性不会放宽 Bearer 和代码流 JWT 令牌必须具有有效的(exp)到期声明值的要求。设置此属性放松需要的唯一例外是,当注销令牌与后端退出请求发送时,因为当前的 OpenId Connect Back-Channel 规格没有明确要求包含 exp 声明。但是,即使当前注销令牌没有 exp 声明,仍然会在注销令牌包含该令牌时验证 exp 声明。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_AGE

duration question circle

 

quarkus.oidc."tenant".token.issued-at-required

如果您的 JWT 令牌不包含 iat (issued at)声明,要求该令牌包含 iat (issued at)声明将此属性设置为 false。请注意,ID 令牌总是需要具有 iat 声明,因此此属性不会影响 ID 令牌验证过程。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_ISSUED_AT_REQUIRED

布尔值

true

quarkus.oidc."tenant".token.principal-claim

包含主体名称的声明的名称。默认情况下,会检查 upnpreferred_usernamesub 声明。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_PRINCIPAL_CLAIM

string

 

quarkus.oidc."tenant".token.refresh-expired

刷新已过期的授权代码流 ID 或访问令牌。如果启用了此属性,如果授权代码 ID 或访问令牌已过期,则会执行刷新令牌请求,如果成功,本地会话会使用新的令牌集合更新。否则,本地会话将无效,用户重定向到 OpenID 提供程序以重新进行身份验证。在这种情况下,如果 OIDC 供应商会话仍然活跃,用户可能无法再次挑战。对于此选项,password _session-age-extension 属性也应设置为非零值,因为刷新令牌当前保留在用户会话中。只有在应用程序类型为 ApplicationType#WEB_APP} 时,这个选项才有效。如果配置了 quarkus.oidc.token.refresh-token-time-skew,则不需要在本例中手动启用此属性。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_REFRESH_EXPIRED

布尔值

false

quarkus.oidc."tenant".token.refresh-token-time-skew

刷新令牌时间偏移(以秒为单位)。如果启用了此属性,在检查授权代码 ID 或访问令牌是否应刷新时,配置的秒数会添加到当前时间。如果总和大于授权代码 ID 或访问令牌的过期时间,则会进行刷新。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_REFRESH_TOKEN_TIME_SKEW

duration question circle

 

quarkus.oidc."tenant".token.forced-jwk-refresh-interval

强制 JWK 设置刷新间隔(以分钟为单位)。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_FORCED_JWK_REFRESH_INTERVAL

duration question circle

10M

quarkus.oidc."tenant".token.header

包含 bearer 令牌的自定义 HTTP 标头。只有在应用程序类型为 ApplicationType CPUfreqSERVICE } 时,这个选项才有效。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_HEADER

string

 

quarkus.oidc."tenant".token.authorization-scheme

HTTP 授权标头方案.

环境变量: QUARKUS_OIDC__TENANT_TOKEN_AUTHORIZATION_SCHEME

string

bearer

quarkus.oidc."tenant".token.signature-algorithm

所需的签名算法。OIDC 供应商支持许多签名算法,但如果需要,您可以限制 Quarkus 应用程序来接受仅使用此属性配置的算法签名的令牌。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_SIGNATURE_ALGORITHM

rs256,rs 384,rs512,ps256,ps384,ps512,es256,es384,es512,edsa

 

quarkus.oidc."tenant".token.decryption-key-location

解密密钥位置.JWT 令牌可由 OpenId Connect 提供程序进行内部签名和加密。但是,并不总是能够远程内省此类令牌,因为提供程序可能无法控制私钥。在这种情况下,将此属性设置为指向包含 PEM 或 JSON Web 密钥(JWK)格式的解密私钥的文件。如果没有设置此属性,并且使用了 private_key_jwt 客户端身份验证方法,则用于为客户端身份验证 JWT 令牌签名的私钥也用于解密加密的 ID 令牌。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_DECRYPTION_KEY_LOCATION

string

 

quarkus.oidc."tenant".token.allow-jwt-introspection

当没有匹配的 JWK 密钥时,允许远程内省 JWT 令牌。出于向后兼容性的原因,此属性默认设置为 true。计划在以后的发行版本中,此默认值将更改为 false。另请注意,如果 JWK 端点 URI 不可用并且内省令牌是唯一验证选项,则此属性将被忽略。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_ALLOW_JWT_INTROSPECTION

布尔值

true

quarkus.oidc."tenant".token.require-jwt-introspection-only

要求仅远程内省 JWT 令牌。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_REQUIRE_JWT_INTROSPECTION_ONLY

布尔值

false

quarkus.oidc."tenant".token.allow-opaque-token-introspection

允许远程内省不透明令牌。如果只有 JWT 令牌,则将此属性设置为 false

环境变量: QUARKUS_OIDC__TENANT_TOKEN_ALLOW_OPAQUE_TOKEN_INTROSPECTION

布尔值

true

quarkus.oidc."tenant".token.customizer-name

令牌自定义器名称。允许选择特定于租户的令牌自定义器作为命名 Bean。在注册自定义令牌时,首选使用 Tenant Feature qualifier。使用此属性只引用此扩展提供的 TokenCustomizer 实现。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_CUSTOMIZER_NAME

string

 

quarkus.oidc."tenant".token.verify-access-token-with-user-info

间接验证不透明(二进制)访问令牌是否有效,方法是请求 UserInfo。如果提供商接受此令牌并返回有效的 UserInfo,则不透明访问令牌被视为有效。只有在必须接受不透明访问令牌但 OpenId Connect 供应商没有令牌内省端点时,才应启用此选项。当必须验证 JWT 令牌时,此属性无效。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_VERIFY_ACCESS_TOKEN_WITH_USER_INFO

布尔值

false

quarkus.oidc."tenant".logout.path

应用程序上 logout 端点的相对路径。如果提供,应用程序可以通过此端点启动注销,并符合 OpenID Connect RP-Initiated Logout 规格。

环境变量: QUARKUS_OIDC__TENANT__LOGOUT_PATH

string

 

quarkus.oidc."tenant".logout.post-logout-path

从 OpenID Connect 提供程序注销后,用户应重定向到的应用程序端点的相对路径。此端点 URI 必须在 OpenID Connect Provider 上正确注册,作为有效的重定向 URI。

环境变量: QUARKUS_OIDC__TENANT_LOGOUT_POST_LOGOUT_PATH

string

 

quarkus.oidc."tenant".logout.post-logout-uri-param

post logout URI 参数的名称,作为查询参数添加到 logout 重定向 URI。

环境变量: QUARKUS_OIDC__TENANT__LOGOUT_POST_LOGOUT_URI_PARAM

string

post_logout_redirect_uri

quarkus.oidc."tenant".logout.extra-params."query-parameter-name"

添加作为查询参数到 logout 重定向 URI 的额外属性。

环境变量: QUARKUS_OIDC__TENANT__LOGOUT_EXTRA_PARAMS__QUERY_PARAMETER_NAME_

Map<String,String>

 

quarkus.oidc."tenant".logout.backchannel.path

应用程序中 Back-Channel Logout 端点的相对路径。它必须以正斜杠 '/' 开头,例如 '/back-channel-logout'。这个值总是相对于 'quarkus.http.root-path' 解析。

环境变量: QUARKUS_OIDC__TENANT_LOGOUT_BACKCHANNEL_PATH

string

 

quarkus.oidc."tenant".logout.backchannel.token-cache-size

在与会话 Cookie 中存储的 ID 令牌匹配之前可以缓存的最大注销令牌数。

环境变量: QUARKUS_OIDC__TENANT_LOGOUT_BACKCHANNEL_TOKEN_CACHE_SIZE

int

10

quarkus.oidc."tenant".logout.backchannel.token-cache-time-to-live

可以缓存注销令牌的分钟数。

环境变量: QUARKUS_OIDC__TENANT_LOGOUT_BACKCHANNEL_TOKEN_CACHE_TIME_TO_LIVE

duration question circle

10M

quarkus.oidc."tenant".logout.backchannel.clean-up-timer-interval

令牌缓存计时器间隔。如果设置了此属性,则计时器会定期检查并删除过时的条目。

环境变量: QUARKUS_OIDC__TENANT_LOGOUT_BACKCHANNEL_CLEAN_UP_TIMER_INTERVAL

duration question circle

 

quarkus.oidc."tenant".logout.backchannel.logout-token-key

注销令牌声明,其值用作缓存令牌的密钥。只有 sub (subject)和 sid (会话 ID)声明才能用作密钥。只有在 OIDC 供应商发布的 ID 令牌没有 但具有 sid 声明时,才会将其设置为 sid

环境变量: QUARKUS_OIDC__TENANT_LOGOUT_BACKCHANNEL_LOGOUT_TOKEN_KEY

string

sub

quarkus.oidc."tenant".logout.frontchannel.path

应用程序中 Front-Channel Logout 端点的相对路径。

环境变量: QUARKUS_OIDC__TENANT_LOGOUT_FRONTCHANNEL_PATH

string

 

quarkus.oidc."tenant".certificate-chain.leaf-certificate-name

leaf 证书的通用名称。如果 trust-store-file 没有导入此证书,则必须设置它。

环境变量: QUARKUS_OIDC__TENANT__CERTIFICATE_CHAIN_LEAF_CERTIFICATE_NAME

string

 

quarkus.oidc."tenant".certificate-chain.trust-store-file

truststore 文件,用于保留可信证书的指纹。

环境变量: QUARKUS_OIDC__TENANT__CERTIFICATE_CHAIN_TRUST_STORE_FILE

path

 

quarkus.oidc."tenant".certificate-chain.trust-store-password

如果使用 trust-store-file 配置,用于指定 truststore 文件的密码的参数。

环境变量: QUARKUS_OIDC__TENANT__CERTIFICATE_CHAIN_TRUST_STORE_PASSWORD

string

 

quarkus.oidc."tenant".certificate-chain.trust-store-cert-alias

指定信任存储证书的别名的参数。

环境变量: QUARKUS_OIDC__TENANT__CERTIFICATE_CHAIN_TRUST_STORE_CERT_ALIAS

string

 

quarkus.oidc."tenant".certificate-chain.trust-store-file-type

指定信任存储文件类型的可选参数。如果未指定,则根据文件名自动检测到类型。

环境变量: QUARKUS_OIDC__TENANT__CERTIFICATE_CHAIN_TRUST_STORE_FILE_TYPE

string

 

quarkus.oidc."tenant".authentication.response-mode

授权代码流响应模式。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_RESPONSE_MODE

query: Authorization 响应参数在添加到 redirect_uri的查询字符串中编码

form-post: Authorization 响应参数编码为 HTML 表单值,这些值由浏览器中自动提交并由 HTTP POST 方法使用 application/x-www-form-urlencoded 内容类型传输

query

quarkus.oidc."tenant".authentication.redirect-path

计算 redirect_uri 查询参数的相对路径。它必须从正斜杠开始,并附加到请求 URI 的主机和端口。例如,如果当前请求 URI 是 https://localhost:8080/service,如果此属性设置为 /,则 redirect_uri 参数被设置为 https://localhost:8080/,如果没有配置此属性,则与请求 URI 相同。请注意,如果 restorePathAfterRedirect 设为 true,则在用户通过身份验证后恢复原始请求 URI。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_REDIRECT_PATH

string

 

quarkus.oidc."tenant".authentication.restore-path-after-redirect

如果此属性设为 true,则在用户重定向到应用程序时恢复身份验证之前使用的原始请求 URI。请注意,如果没有设置 redirectPath 属性,则即使禁用了此属性,也会恢复原始请求 URI。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_RESTORE_PATH_AFTER_REDIRECT

布尔值

false

quarkus.oidc."tenant".authentication.remove-redirect-parameters

在用户通过将用户重定向到同一 URI 后,在重定向 URI 上删除由 OIDC 服务器设置 的代码和 状态,但没有查询参数。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_REMOVE_REDIRECT_PARAMETERS

布尔值

true

quarkus.oidc."tenant".authentication.error-path

指向处理 OIDC 授权端点错误响应的公共端点的相对路径。如果用户身份验证失败,OIDC 供应商会返回一个错误和可选的 error _description 参数,而不是预期的 授权代码。如果设置了此属性,用户会被重定向到端点,这可以返回用户友好的错误描述页面。它必须从正斜杠开始,并附加到请求 URI 的主机和端口。例如,如果它被设置为 /error,且当前请求 URI 为 https://localhost:8080/callback?error=invalid_scope,则会将重定向设置为 https://localhost:8080/error?error=invalid_scope。如果没有设置此属性,则在用户身份验证失败时会返回 HTTP 401 状态。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_ERROR_PATH

string

 

quarkus.oidc."tenant".authentication.session-expired-path

当会话已过期时,经过身份验证的用户重定向到的公共端点的相对路径。

当 OIDC 会话已过期且会话无法刷新时,用户会被重定向到 OIDC 供应商来重新验证。在这种情况下,用户体验可能并不理想,因为因为返回身份验证质询的原因可能并不明显。

您希望用户再次重定向到公共应用特定页面,则设置此属性。这可通知会话已过期,并建议用户按照到安全初始条目页面的链接来重新验证。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_SESSION_EXPIRED_PATH

string

 

quarkus.oidc."tenant".authentication.verify-access-token

作为授权代码流的一部分,从 OIDC 供应商获取 ID 和访问令牌。

ID 令牌始终在每个用户请求上验证,作为主令牌,用于代表主体并提取角色。

授权代码流访问令牌旨在传播到下游服务,除非 quarkus.oidc.roles.source 属性设置为 accesstoken,否则授权决定基于从访问令牌提取的角色。

如果此令牌被注入 JsonWebToken,则也启用了授权代码流访问令牌验证。如果不需要,将此属性设置为 false

bearer 访问令牌始终被验证。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_VERIFY_ACCESS_TOKEN

布尔值

当访问令牌作为 JsonWebToken bean 注入时为 true,否则为 false

quarkus.oidc."tenant".authentication.force-redirect-https-scheme

在 SSL/TLS 终止反向代理后面运行时,强制 https 作为 redirect_uri 参数方案。如果启用,此属性也会影响 logout post_logout_redirect_uri 和本地重定向请求。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_FORCE_REDIRECT_HTTPS_SCHEME

布尔值

false

quarkus.oidc."tenant".authentication.scopes

范围列表

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_SCOPES

字符串列表

 

quarkus.oidc."tenant".authentication.scope-separator

配置多个范围时使用的分隔符。默认使用单个空间。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_SCOPE_SEPARATOR

string

 

quarkus.oidc."tenant".authentication.nonce-required

要求 ID 令牌包含非 ce 声明,该声明必须与 身份验证请求查询参数匹配。启用此属性可帮助缓解重播攻击。如果您的 OpenId Connect 供应商不支持在 ID 令牌中设置 非ce,或者与 OAuth2 供应商(如没有提供 ID 令牌的 GitHub )搭配使用,则不要启用此属性。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_NONCE_REQUIRED

布尔值

false

quarkus.oidc."tenant".authentication.add-openid-scope

openid 范围自动添加到范围列表中。这是 OpenId Connect 供应商所必需的,但不适用于 OAuth2 供应商,如 thread OAuth2,不接受此范围并抛出错误。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_ADD_OPENID_SCOPE

布尔值

true

quarkus.oidc."tenant".authentication.extra-params."parameter-name"

添加作为查询参数到身份验证重定向 URI 的额外属性。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_EXTRA_PARAMS__PARAMETER_NAME_

Map<String,String>

 

quarkus.oidc."tenant".authentication.forward-params

请求 URL 查询参数(如果存在)添加到身份验证重定向 URI 中。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_FORWARD_PARAMS

字符串列表

 

quarkus.oidc."tenant".authentication.cookie-force-secure

如果启用了 state、session 和 post logout cookies,则在使用 HTTP 时将其 secure 参数设置为 true。在 SSL/TLS 终止反向代理后面运行时,可能需要这样做。如果使用 HTTPS,则 Cookie 始终安全,即使此属性设置为 false。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_COOKIE_FORCE_SECURE

布尔值

false

quarkus.oidc."tenant".authentication.cookie-suffix

Cookie 名称后缀。例如,默认 OIDC 租户的会话 Cookie 名称为 q_session,但如果此属性设置为 test,则可以更改为 q_session_test

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_COOKIE_SUFFIX

string

 

quarkus.oidc."tenant".authentication.cookie-path

Cookie path 参数值(如果设置了)用于为会话设置 path 参数,state 和 post logout cookies。如果设置,则 Cookie-path-header 属性会首先检查。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_COOKIE_PATH

string

/

quarkus.oidc."tenant".authentication.cookie-path-header

Cookie path header 参数值(如果设置)标识传入的 HTTP 标头,其值用于为会话、状态和发布 logout cookie 设置 path 参数。如果缺少标头,则会检查 cookie-path 属性。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_COOKIE_PATH_HEADER

string

 

quarkus.oidc."tenant".authentication.cookie-domain

Cookie 域参数值(如果设置了)用于会话,state 和 post logout cookies。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_COOKIE_DOMAIN

string

 

quarkus.oidc."tenant".authentication.cookie-same-site

会话 Cookie 的 SameSite 属性。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_COOKIE_SAME_SITE

strict,lax,none

lax

quarkus.oidc."tenant".authentication.allow-multiple-code-flows

如果存在状态 Cookie,则 状态 查询参数也必须存在,并且当重定向路径与当前路径匹配时,状态 Cookie 名称后缀和状态 Cookie 值必须与状态 查询参数的值匹配。但是,如果从同一浏览器中尝试多个身份验证,例如从不同的浏览器标签页中,则当前可用的状态 cookie 可能代表从另一个标签页启动的身份验证流,而不是与当前请求相关的。禁用此属性,以在同一浏览器中只允许单个授权代码流。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_ALLOW_MULTIPLE_CODE_FLOWS

布尔值

true

quarkus.oidc."tenant".authentication.fail-on-missing-state-param

如果 state cookie 存在但没有状态查询参数,则失败并显示 HTTP 401 错误。

当禁用多个身份验证或者重定向 URL 与原始请求 URL 匹配时,过时的状态 Cookie 可能会保留在之前失败的浏览器缓存中,并可在当前请求中可见。例如,如果 Single-page 应用(SPA)使用 XHR 处理重定向到不支持其授权端点的 CORS 的提供程序,浏览器会阻止它,并且 Quarkus 创建的状态 Cookie 保留在浏览器缓存中。当检测到旧的状态 cookie 时,quarkus 会报告身份验证失败,但找不到匹配的状态查询参数。

报告 HTTP 401 错误通常是在这种情况下执行的正确操作,它会最小化浏览器重定向循环的风险,但还可以 SPA 或 Quarkus 应用程序管理重定向方式识别问题。例如,可能需要启用 java-script-auto-redirect,或者将供应商重定向到配置了 redirect-path 的 URL,以避免此类错误。

但是,如果上述选项不合适,则将此属性设置为 false 可以帮助。这会导致新的身份验证重定向到 OpenId Connect 供应商。这样做可能会增加浏览器重定向循环的风险。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_FAIL_ON_MISSING_STATE_PARAM

布尔值

false

quarkus.oidc."tenant".authentication.user-info-required

如果此属性设为 true,则调用 OIDC UserInfo 端点。

如果 quarkus.oidc.roles.source 设置为 userinfoquarkus.oidc.token.verify-access-token-with-user-info,则会自动启用此属性,如果将 quarkus.oidc.authentication.id-token-required 设置为 false,则当前的 OIDC 租户必须支持这些情况下的 UserInfo 端点。

如果检测到 io.quarkus.oidc.UserInfo 注入点,但只有当前的 OIDC 租户支持 UserInfo 端点,它会自动启用。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_USER_INFO_REQUIRED

布尔值

当 UserInfo bean 被注入时为 true,否则为 false

quarkus.oidc."tenant".authentication.session-age-extension

会话期限扩展(以分钟为单位)。默认情况下,用户会话年龄属性被设置为 ID 令牌生命周期的值,用户会被重定向到 OIDC 供应商,以在会话过期后重新验证。如果此属性设置为非零值,则在会话过期前可以刷新过期的 ID 令牌。如果没有启用 token.refresh-expired 属性,则此属性会被忽略。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_SESSION_AGE_EXTENSION

duration question circle

5M

quarkus.oidc."tenant".authentication.state-cookie-age

状态 Cookie 期限(以分钟为单位)。当新的授权代码流重定向在完成此流时,都会创建状态 Cookie。默认情况下,状态 Cookie 名称是唯一的,请参阅 allow-multiple-code-flows。保持其合理的最小值,如 5 分钟或更少。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_STATE_COOKIE_AGE

duration question circle

5M

quarkus.oidc."tenant".authentication.java-script-auto-redirect

如果此属性设为 true,则返回普通的 302 重定向响应,如果请求是由 JavaScript API (如 XMLHttpRequest 或 Fetch)启动,且当前用户需要(re) authenticated,这可能不适用于单页应用程序(SPA),因为它自动遵循该 OIDC 授权端点通常不支持 CORS。

如果此属性设为 false,则返回 499 状态代码,以允许 SPA 在找到以 JavaScript 请求身份识别当前请求的请求标头时手动处理重定向。如果启用此属性,则默认预期 X-Requested-With 请求标头,其值设为 JavaScriptXMLHttpRequest。您可以注册自定义 JavaScriptRequestChecker 来执行自定义 JavaScript 请求检查。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_JAVA_SCRIPT_AUTO_REDIRECT

布尔值

true

quarkus.oidc."tenant".authentication.id-token-required

当授权代码流完成后,要求 ID 令牌可用。仅在您需要将授权代码流与 OAuth2 供应商(没有返回 ID 令牌)搭配使用时禁用此属性 - 在这种情况下会生成内部 IdToken。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_ID_TOKEN_REQUIRED

布尔值

true

quarkus.oidc."tenant".authentication.internal-id-token-lifespan

内部 ID 令牌寿命.只有在 Oauth2 供应商没有返回 IdToken 时,才会检查此属性。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_INTERNAL_ID_TOKEN_LIFESPAN

duration question circle

5M

quarkus.oidc."tenant".authentication.pkce-required

要求使用代码交换证明密钥(PKCE)。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_PKCE_REQUIRED

布尔值

false

quarkus.oidc."tenant".authentication.state-secret

用于为代码交换(PKCE)代码验证器(PKCE)代码验证器和/或非代码流状态加密概念验证的 secret。此 secret 应该至少为 32 个字符。

如果没有设置此 secret,则会检查使用 quarkus.oidc.credentials.secretquarkus.oidc.credentials.client-secret.value 配置的客户端 secret。最后,检查可用于 client_ jwt_secret 身份验证的 quarkus.oidc.credentials.jwt.secret。如果客户端 secret 小于 32 个字符,则不会将客户端 secret 用作状态加密 secret。

如果在检查所有这些属性后仍然未初始化,则自动生成该 secret。

如果 secret 长度小于 16 个字符,则报告错误。

环境变量: QUARKUS_OIDC__TENANT__AUTHENTICATION_STATE_SECRET

string

 

quarkus.oidc."tenant".code-grant.extra-params."parameter-name"

除了所需的 代码和 redirect-uri 参数外,还必须包含其他参数,才能完成授权代码授权请求。

环境变量: QUARKUS_OIDC__TENANT__CODE_GRANT_EXTRA_PARAMS__PARAMETER_NAME_

Map<String,String>

 

quarkus.oidc."tenant".code-grant.headers."header-name"

必须发送自定义 HTTP 标头来完成授权代码授权请求。

环境变量: QUARKUS_OIDC__TENANT__CODE_GRANT_HEADERS__HEADER_NAME_

Map<String,String>

 

quarkus.oidc."tenant".token-state-manager.strategy

默认 TokenStateManager 策略。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_STATE_MANAGER_STRATEGY

keep-all-tokens :保留 ID、访问和刷新令牌。

id-token :只保留 ID 令牌

id-refresh-tokens: 仅保留 ID 和刷新令牌

keep-all-tokens

quarkus.oidc."tenant".token-state-manager.split-tokens

默认 TokenStateManager 会保留在授权代码中返回的所有令牌(ID、访问和刷新)默认授予单个会话 Cookie 的响应。启用此属性最小化会话 Cookie 大小

环境变量: QUARKUS_OIDC__TENANT_TOKEN_STATE_MANAGER_SPLIT_TOKENS

布尔值

false

quarkus.oidc."tenant".token-state-manager.encryption-required

强制 Default TokenStateManager 加密存储令牌的会话 Cookie。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_STATE_MANAGER_ENCRYPTION_REQUIRED

布尔值

true

quarkus.oidc."tenant".token-state-manager.encryption-secret

Default TokenStateManager 用来加密在启用 encryption-required 属性时存储令牌的会话 Cookie 的 secret。

如果没有设置此 secret,则会检查使用 quarkus.oidc.credentials.secretquarkus.oidc.credentials.client-secret.value 配置的客户端 secret。最后,检查可用于 client_ jwt_secret 身份验证的 quarkus.oidc.credentials.jwt.secret。如果应用程序在检查所有这些属性后仍然未初始化,则每次应用程序启动时都会自动生成 secret。在重启之前,生成的机密无法解密会话 Cookie 加密,因此用户需要重新进行身份验证。

用于加密令牌的 secret 的长度应至少为 32 个字符。如果 secret 长度小于 16 个字符,则会记录警告信息。

环境变量: QUARKUS_OIDC__TENANT_TOKEN_STATE_MANAGER_ENCRYPTION_SECRET

string

 

quarkus.oidc."tenant".token-state-manager.encryption-algorithm

会话 Cookie 密钥加密算法

环境变量: QUARKUS_OIDC__TENANT_TOKEN_STATE_MANAGER_ENCRYPTION_ALGORITHM

a256-gcmkw: 使用 A256GCMKW 算法和配置的加密 secret 生成并加密内容加密密钥。生成的内容加密密钥将用于加密会话 Cookie 内容。

dir :配置的密钥加密 secret 将用作内容加密密钥来加密会话 Cookie 内容。使用直接加密可避免内容加密密钥生成步骤,并将使加密的会话 Cookie 序列稍短。如果加密 secret 小于 32 个字符,则避免使用直接加密。

a256-gcmkw

quarkus.oidc."tenant".allow-token-introspection-cache

允许缓存令牌内省数据。请注意,启用此属性不启用缓存本身,但仅允许缓存给定租户的令牌内省。如果可以使用默认令牌缓存,请参阅 OidcConfig.TokenCache 来启用它。

环境变量: QUARKUS_OIDC__TENANT__ALLOW_TOKEN_INTROSPECTION_CACHE

布尔值

true

quarkus.oidc."tenant".allow-user-info-cache

允许缓存用户信息数据。请注意,启用此属性不启用缓存本身,但只允许缓存给定租户的用户信息数据。如果可以使用默认令牌缓存,请参阅 OidcConfig.TokenCache 来启用它。

环境变量: QUARKUS_OIDC__TENANT__ALLOW_USER_INFO_CACHE

布尔值

true

quarkus.oidc."tenant".cache-user-info-in-idtoken

允许在 IdToken 中简化 UserInfo,而不是将其缓存在令牌缓存中。只有在 OAuth2 供应商没有返回 IdToken 时,才会检查此属性。在生成的 IdToken 中,Inlining UserInfo 允许将其存储在会话 Cookie 中,并避免引入缓存的状态。

如果会话 Cookie 已被加密,并且没有为当前租户禁用 UserInfo 缓存,并且当前租户将 allow-user-info-cache 属性设置为 false,则启用生成的 IdToken 中的 Inlining UserInfo。

环境变量: QUARKUS_OIDC__TENANT_CACHE_USER_INFO_IN_IDTOKEN

布尔值

 

quarkus.oidc."tenant".jwks.resolve-early

如果在连接到 OIDC 供应商时,应该获取 JWK 验证密钥。

禁用此属性会延迟密钥获取,直到必须验证当前令牌的时间。通常,只有在令牌或其他 telated 请求属性提供正确解析密钥所需的额外上下文时,才能需要它。

环境变量: QUARKUS_OIDC__TENANT__JWKS_RESOLVE_EARLY

布尔值

true

quarkus.oidc."tenant".jwks.cache-size

可以缓存的最大 JWK 密钥数。如果 resolve-early 属性设为 true,则此属性会被忽略。

环境变量: QUARKUS_OIDC__TENANT__JWKS_CACHE_SIZE

int

10

quarkus.oidc."tenant".jwks.cache-time-to-live

可以缓存 JWK 密钥的分钟数。如果 resolve-early 属性设为 true,则此属性会被忽略。

环境变量: QUARKUS_OIDC__TENANT__JWKS_CACHE_TIME_TO_LIVE

duration question circle

10M

quarkus.oidc."tenant".jwks.clean-up-timer-interval

缓存计时器间隔。如果设置了此属性,则计时器会定期检查并删除过时的条目。如果 resolve-early 属性设为 true,则此属性会被忽略。

环境变量: QUARKUS_OIDC__TENANT__JWKS_CLEAN_UP_TIMER_INTERVAL

duration question circle

 

quarkus.oidc."tenant".jwks.try-all

如果没有密钥标识符('kid')或证书指纹('x5t', 'x5t""256')在 JOSE 标头中指定的,且没有键决定,检查与令牌算法('alg')标头值匹配的所有可用密钥。

环境变量: QUARKUS_OIDC__TENANT__JWKS_TRY_ALL

布尔值

false

quarkus.oidc."tenant".provider

已知的 OpenId Connect 供应商标识符

环境变量: QUARKUS_OIDC__TENANT__PROVIDER

Apple,discord,facebook,github,google,linkedin,mas libpmemn,microsoft,spotify,strava,twitch,twitter,x

 
关于 Duration 格式

要写入持续时间值,请使用标准 java.time.Duration 格式。如需更多信息,请参阅 Duration#parse ()Java API 文档

您还可以使用简化的格式,从数字开始:

  • 如果值只是一个数字,它代表时间(以秒为单位)。
  • 如果值为数字,后跟 ms,代表时间(毫秒)。

在其他情况下,简化的格式被转换为 java.time.Duration 格式以进行解析:

  • 如果该值是一个数字,后跟 hms,则前缀为 PT
  • 如果值为数字,后跟 d,则会以 P 为前缀。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.