Quarkus Security 概述
Quarkus 安全是一个框架,它提供了架构、多种身份验证和授权机制以及其他工具,用于构建安全且具有生产质量的 Java 应用程序。
在将安全性构建到 Quarkus 应用程序中之前,请了解 Quarkus 安全架构以及您可以使用的不同身份验证机制和功能。
Quarkus 安全的关键特性
Quarkus 安全框架为 Basic、基于表单和相互 TLS (mTLS) 身份验证提供了内置的安全身份验证机制。您还可以使用其他知名的身份验证机制,例如 OpenID Connect (OIDC) 和 WebAuthn。身份验证机制依赖于身份提供程序来验证身份验证凭据,并将它们映射到具有用户名、角色、原始身份验证凭据和其他属性的 SecurityIdentity
实例。
Quarkus 还包括内置安全性,允许基于通用安全注解 @RolesAllowed
、@DenyAll
、@PermitAll
在 REST 端点以及上下文和依赖注入 (CDI) bean 上进行基于角色的访问控制 (RBAC)。有关更多信息,请参阅 Quarkus Web 端点授权指南。
Quarkus 安全还支持以下功能
Quarkus 安全也具有高度可定制性。有关更多信息,请参阅 Quarkus 安全提示和技巧指南。
Quarkus 安全入门
要开始使用 Quarkus 中的安全性,请考虑使用内置的 Quarkus Basic 身份验证和 Jakarta Persistence 身份提供程序来保护您的 Quarkus 应用程序端点,并启用基于角色的访问控制。
完成 使用 Basic 身份验证和 Jakarta Persistence 安全入门教程中的步骤。
在使用 Basic 身份验证成功保护 Quarkus 应用程序之后,您可以通过添加更高级的身份验证机制来进一步提高安全性,例如 Quarkus OpenID Connect (OIDC) 授权代码流机制 指南。
Quarkus 安全测试
有关测试 Quarkus 安全功能并确保您的 Quarkus 应用程序受到安全保护的指导,请参阅安全测试指南。
有关 Quarkus 中安全功能的更多信息
WebSockets Next 安全
quarkus-websockets-next
扩展提供了 WebSocket API 的现代、高效实现。它还提供了与 Quarkus 安全的集成。有关更多信息,请参阅 Quarkus “WebSockets Next 参考”指南的 安全部分。
跨域资源共享
要使您的 Quarkus 应用程序可以被运行在不同域上的另一个应用程序访问,您需要配置跨域资源共享 (CORS)。有关 Quarkus 提供的 CORS 过滤器的更多信息,请参阅 Quarkus “跨域资源共享”指南的 CORS 过滤器部分。
SameSite cookies
您可以将 SameSite cookie 属性添加到 Quarkus 端点设置的任何 cookie。有关更多信息,请参阅 Quarkus “HTTP 参考”指南的 SameSite cookies 部分。
密钥引擎
您可以将密钥引擎与 Quarkus 一起使用来存储、生成或加密数据。
Quarkus 在 Quarkiverse 中提供了额外的扩展,用于安全地存储凭据,例如 Quarkus 和 HashiCorp Vault。
环境变量中的密钥
Quarkus 提供了在环境变量中存储密钥的支持。有关更多信息,请参阅 Quarkus 在环境变量文件中存储密钥指南。
安全序列化
如果您的 Quarkus 安全架构包括 Quarkus REST(以前称为 RESTEasy Reactive)和 Jackson,Quarkus 可以根据配置的安全性限制 JSON 序列化中包含的字段。有关更多信息,请参阅 Quarkus “使用 Quarkus REST(以前称为 RESTEasy Reactive)编写 REST 服务”指南的 JSON 序列化部分。
使用 Panache 的 REST 数据安全自动生成资源
如果您使用 REST Data with Panache 扩展来自动生成资源,您仍然可以使用 jakarta.annotation.security
包中的安全注解。有关更多信息,请参阅 Quarkus “使用 Panache 生成 Jakarta REST 资源”指南的 保护端点 部分。
安全漏洞检测
大多数 Quarkus 标签都会在美国 国家漏洞数据库 (NVD) 中报告。有关安全漏洞的信息,请参阅 Quarkus 中的安全漏洞检测和报告 指南。