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

Quando um cliente envia uma requisição HTTP, a Segurança do Quarkus orquestra a autenticação e a autorização de segurança interagindo com vários componentes principais incorporados, incluindo HttpAuthenticationMechanism, IdentityProvider e SecurityIdentityAugmentor.

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

  • A requisição HTTP é autenticada e autorizada e o acesso à aplicação Quarkus é concedido.

  • A autenticação da requisição HTTP falha e o solicitante recebe um desafio específico para o mecanismo de autenticação, por exemplo, um erro 401 , um redirecionamento de URL para reautenticar ou alguma outra resposta personalizada de desafio de autenticação. Para obter alguns exemplos práticos de respostas de desafio, consulte o guia Dicas e Truques de Segurança do Quarkus.

  • A autorização da requisição HTTP falha e é negado ao requerente o acesso à aplicação Quarkus.

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.

Quando uma requisição de autenticação é rejeitada pela Segurança do Quarkus, o HttpAuthenticationMechanism envia um desafio de autenticação de volta ao cliente. O tipo de desafio depende do mecanismo de autenticação. Por exemplo, com o mecanismo Fluxo de Código de Autorização do OIDC OpenID Connect (OIDC), é gerado um URL de redirecionamento e o cliente é enviado de volta ao provedor OpenID Connect para autenticação.

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

Uma vez que a Segurança do Quarkus é personalizável, por exemplo, você pode adicionar funções de autorização a SecurityIdentity, pode registar e dar prioridade a um ou mais aumentadores de segurança personalizados.

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.