搜索

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

download PDF

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

2.3.1. OpenID Connect 身份验证

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

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

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

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

注意

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

2.3.1.1. 用于 OIDC 身份验证的其他 Quarkus 资源

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

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 扩展为从支持以下令牌授予的 OpenID Connect 和 OAuth2 供应商中获取和刷新访问令牌提供 OidcClient

  • client-credentials
  • password
  • refresh_token

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

重要

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

quarkus-resteasy-client-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. smallrye 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)密钥或可刷新的 JWK 密钥集来验证仅 JWT 令牌。quarkus-smallrye-jwt 还提供 JWT 生成 API,您可以使用它来轻松创建 经过签名内部 签名的,以及 加密的 JWT 令牌。

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.