2.3. 其他支持的身份验证机制


Quarkus 安全还通过扩展支持以下身份验证机制:

2.3.1. OpenID Connect 身份验证

OpenID Connect (OIDC)是一个在 OAuth 2.0 协议之上工作的身份层。OIDC 可让客户端应用程序根据 OIDC 供应商执行的身份验证来验证用户的身份,并检索有关该用户的基本信息。

Quarkus quarkus-oidc 扩展提供了一个被动、可互操作的、启用了多租户的 OIDC 适配器,它支持 Bearer 令牌和授权代码流身份验证机制。Bearer 令牌身份验证机制从 HTTP Authorization 标头中提取令牌。

Authorization Code 流机制将用户重定向到 OIDC 供应商,以验证用户的身份。用户重定向到 Quarkus 后,机制通过交换为 ID、访问和刷新令牌提供的代码来完成身份验证过程。

您可以使用可刷新的 JSON Web 密钥(JWK)集或内省来验证 ID 和访问 JSON Web 令牌(JWT)令牌。但是,不透明(也称为二进制令牌)只能远程内省。

注意

使用 Quarkus OIDC 扩展时,Bearer 令牌和授权代码流验证机制都使用 SmallRye JWT 身份验证来代表 JWT 令牌作为 MicroProfile JWT org.eclipse.microprofile.jwt.JsonWebToken

2.3.1.1. 用于 OIDC 身份验证的额外 Quarkus 资源

有关可用于保护 Quarkus 应用程序的 OIDC 身份验证和授权方法的更多信息,请参阅以下资源:

Expand
OIDC 主题Quarkus 信息资源

bearer 令牌身份验证机制

OIDC Bearer 令牌身份验证

授权代码流身份验证机制

OpenID Connect (OIDC)授权代码流机制

OIDC 和 SAML 身份代理

OpenID Connect (OIDC)授权代码流和 SAML Identity 代理

支持 Bearer 令牌身份验证或授权代码流机制的多个租户

使用 OpenID Connect (OIDC)多租户

使用常用的 OpenID Connect 供应商保护 Quarkus

配置已知的 OpenID Connect 供应商

使用 Keycloak 集中授权

使用 OpenID Connect (OIDC)和 Keycloak 集中授权

注意

要在运行时启用 Quarkus OIDC 扩展,请在构建时设置 quarkus.oidc.tenant-enabled=false。然后,使用系统属性在运行时重新启用它。

有关在多租户 OIDC 部署中管理单个租户配置的更多信息,请参阅"使用 OpenID Connect (OIDC)多租户"指南中的 禁用 租户配置部分。

2.3.1.2. OpenID Connect 客户端和过滤器

quarkus-oidc-client 扩展为 OidcClient 提供 OidcClient,用于从支持以下令牌授予的 OpenID Connect 和 OAuth2 供应商中刷新访问令牌:

  • client-credentials
  • password
  • refresh_token

quarkus-oidc-client-filter 扩展需要 quarkus-oidc-client 扩展。它提供 JAX-RS RESTful Web Services OidcClientRequestFilter,它将 OidcClient 获取的访问令牌设置为 HTTP Authorization 标头的 Bearer scheme 值。此过滤器可以在注入当前 Quarkus 端点的 MicroProfile REST 客户端实现中注册,但它与此服务端点的身份验证要求无关。例如,它可以是一个公共端点,也可以使用 mTLS 进行保护。

重要

在这种情况下,您不需要使用 Quarkus OpenID Connect 适配器来保护 Quarkus 端点。

quarkus-oidc-token-propagation 扩展需要 quarkus-oidc 扩展。它提供 Jakarta REST TokenCredentialRequestFilter,它将 OpenID Connect Bearer 令牌或 Authorization Code Flow 访问令牌设置为 HTTP Authorization 标头的 Bearer scheme 值。此过滤器可以注册到注入当前 Quarkus 端点中的 MicroProfile REST 客户端实现,该端点必须使用 Quarkus OIDC 适配器进行保护。此过滤器可以将访问令牌传播到下游服务。

如需更多信息,请参阅 OpenID Connect 客户端和令牌传播快速启动OpenID Connect (OIDC)和 OAuth2 客户端和过滤器参考指南

2.3.2. 小的 JWT 身份验证

quarkus-smallrye-jwt 扩展提供 MicroProfile JSON Web Token (JWT) 2.1 实现,以及验证签名和加密的 JWT 令牌的多个选项。它将它们表示为 org.eclipse.microprofile.jwt.JsonWebToken

Quarkus-smallrye-jwtquarkus-oidc Bearer 令牌身份验证机制的替代选择,并使用 Privacy Enhanced Mail (PEM)密钥或 refreshable JWK 密钥集仅验证 JWT 令牌。Quarkus-smallrye-jwt 还提供 JWT 生成 API,可用于轻松创建 签名的内部签名和加密JWT 令牌。

如需更多信息,请参阅使用 JWT RBAC 指南。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat