The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

Arquitetura da Segurança do Quarkus

A arquitetura da Segurança do Quarkus oferece vários mecanismos de autenticação incorporados e é altamente personalizável. O principal mecanismo para proteger os aplicativos HTTP no Quarkus é a interface HttpAuthenticationMechanism .

Visão geral da arquitetura da Segurança do Quarkus

When a client sends an HTTP request, Quarkus Security orchestrates security authentication and authorization by interacting with several built-in core components, including HttpAuthenticationMechanism, IdentityProvider, and SecurityIdentityAugmentor.

O processo de validação de segurança sequencial conduz a um de três resultados:

  • The HTTP request gets authenticated and authorized, and access to the Quarkus application gets granted.

  • The HTTP request authentication fails, and the requester receives a challenge specific to the authentication mechanism, for example, a 401 error, a URL redirect to reauthenticate, or some other custom authentication challenge response. For practical examples of challenge responses, see the Quarkus Security Tips and Tricks guide.

  • The HTTP request authorization fails, and the requester gets denied access to the Quarkus application.

O diagrama seguinte apresenta o fluxo detalhado do processo da arquitetura da Segurança do Quarkus:

Quarkus Security architecture process flow
Figure 1. A arquitetura e o fluxo do processo da Segurança do Quarkus

Componentes principais da arquitetura da Segurança do Quarkus

HttpAuthenticationMechanism

A Segurança do Quarkus usa HttpAuthenticationMechanism para extrair as credenciais de autenticação da requisição HTTP e as delega a IdentityProvider para convertê-las em SecurityIdentity . Por exemplo, as credenciais podem vir do cabeçalho Authorization , de certificados HTTPS do cliente ou de cookies.

When Quarkus Security rejects an authentication request, HttpAuthenticationMechanism returns an authentication challenge to the client. The type of challenge depends on the authentication mechanism. For example, with the OIDC OpenID Connect (OIDC) Authorization Code Flow mechanism, a redirect URL gets generated, and the client is returned to the OpenID Connect provider to authenticate.

IdentityProvider

IdentityProvider verifica as credenciais de autenticação e mapeia-as para SecurityIdentity, que tem o nome de utilizador, as funções, as credenciais de autenticação originais e outros atributos.

Você pode injetar uma instância de SecurityIdentity para cada recurso autenticado para obter as informações de identidade autenticada.

Em outros contextos, é possível ter outras representações paralelas da mesma informação ou de partes dela, por exemplo, SecurityContext para Jakarta REST ou JsonWebToken para JSON Web Tokens (JWT).

Para mais informações, consulte o guia de provedores de identidade do Quarkus.

SecurityIdentityAugmentor

Because Quarkus Security is customizable, you can, for example, add authorization roles to SecurityIdentity and register and prioritize one or more SecurityAugmentor implementations.

As instâncias registradas de SecurityIdentityAugmentor são invocadas durante o estágio final do processo de autenticação de segurança. Para obter mais informações, consulte a seção Personalização da Identidade de Segurança do guia "Dicas e Truques de Segurança".

Mecanismos de autenticação suportados

The Quarkus Security framework supports multiple authentication mechanisms, which can also be combined. Some supported authentication mechanisms are built into Quarkus, while others require you to add an extension.

To learn about security authentication in Quarkus and the supported mechanisms and protocols, see the Quarkus Authentication mechanisms in Quarkus guide.

Autenticação proativa

A autenticação proativa é ativada no Quarkus por padrão. A solicitação é sempre autenticada se uma solicitação de entrada tiver uma credencial, mesmo que a página de destino não exija autenticação. Para obter mais informações, consulte o guia de autenticação proativa do Quarkus.

Personalização da Segurança do Quarkus

Quarkus Security is customizable. You can customize the following core security components of Quarkus:

  • HttpAuthenticationMechanism

  • IdentityProvider

  • SecurityidentityAugmentor

Para obter mais informações sobre a personalização da Segurança do Quarkus, incluindo segurança reativa e como registar um provedor de segurança, consulte o guia de Dicas e truques de segurança.

Conteúdo Relacionado