Pular para o conteúdo principal
Auth é um serviço centralizado que fornece capacidades de autenticação e autorização para as aplicações da Lerian Studio. Construído sobre um Identity Provider (IdP), este serviço oferece:
  • Fluxos de autenticação compatíveis com OAuth2/OIDC.
  • Capacidades de emissão, validação e renovação de tokens.
  • Recuperação de informações do usuário de acordo com os padrões OIDC.
  • Aplicação de permissões para recursos.
  • Otimização de performance através de mecanismos de cache.
O Auth funciona como um middleware entre as aplicações da Lerian e o servidor de autorização subjacente, fornecendo uma interface unificada para todas as necessidades de autenticação e autorização, além de adicionar capacidades de cache para melhorar a performance.

Fluxo de autenticação e autorização


O Auth implementa vários fluxos-chave de autenticação e autorização:

Fluxo de autenticação

  1. Requisição de token
    • Aplicações cliente solicitam tokens de acesso usando:
      • Password grant (usuário/senha para usuários interativos).
      • Client credentials grant (para autenticação serviço-a-serviço).
    • A requisição é encaminhada para o Identity Provider.
    • Access token, refresh token e ID token opcional são retornados.
  2. Renovação de token
    • Aplicações cliente usam refresh tokens para obter novos access tokens.
    • O refresh token é validado via Identity Provider.
    • Um novo access token é emitido.
  3. Validação de token
    • Os access tokens são validados no acesso a recursos protegidos.
    • Os resultados são armazenados em cache para otimização de performance.
    • As claims do token são extraídas para identificar o subject.

Fluxo de autorização

  1. Aplicar acesso
    • O cliente solicita acesso a um recurso com uma ação.
    • O ID do subject é extraído do token.
    • O motor de políticas determina se o subject tem permissão.
    • O resultado é armazenado em cache para performance.
    • A decisão de autorização é retornada.
  2. Recuperar políticas
    • O cliente solicita todas as políticas para o usuário autenticado.
    • O motor de políticas é consultado para todos os recursos e ações permitidos.
    • As políticas são retornadas como um mapa de recursos para as ações permitidas.

Fluxo de informações do usuário

  1. Requisição de perfil
    • O cliente solicita informações do perfil do usuário.
    • O access token é validado.
    • Os detalhes do usuário são recuperados do Identity Provider.
    • Informações do usuário compatíveis com OIDC são retornadas.

Fluxo de logout

  1. Logout do usuário
    • O cliente envia requisição de logout com ID token hint.
    • Os tokens são invalidados no Identity Provider.
    • As entradas de cache são invalidadas.

Visão geral da API


O Auth fornece gerenciamento seguro de identidade e controle de acesso para aplicações Lerian. As APIs suportam:
  • Autenticação e gerenciamento do ciclo de vida de tokens.
  • Autorização e aplicação de permissões.
  • Recuperação de informações do usuário.
O acesso às APIs do Auth é protegido por controles rígidos de permissão. Para detalhes técnicos sobre endpoints e uso, consulte a documentação das APIs do Auth.

Estrutura de políticas


As tabelas de políticas armazenam permissões usando o seguinte padrão:

Regra de política (ptype=‘p’):

p, <role>, <resource>, <action>, allow, <note>
Exemplo:
p, lerian/identity-editor-role, users, get, allow, lerian/identity-editor-permission
Isso concede à role identity-editor-role permissão para executar a ação GET no recurso users.

Atribuição de grupo (ptype=‘g’):

g, <user_id>, <role>
Exemplo:
g, user123, lerian/identity-editor-role
Isso atribui o usuário com ID user123 à role identity-editor-role.

Armazenamento de dados e cache


O Auth otimiza performance e segurança aproveitando um sistema de armazenamento estruturado e mecanismos de cache:
  • Gerenciamento de políticas: Armazena políticas de controle de acesso para usuários e serviços.
  • Cache de introspecção de token: Armazena em cache resultados de validação de token para reduzir verificações redundantes.
  • Cache de permissões: Armazena decisões de autorização para melhorar o tempo de resposta.
  • Cache de políticas do usuário: Mantém um mapa de recursos e ações para controle de acesso eficiente.

Testes e confiabilidade


O Auth passa por testes contínuos para manter confiabilidade e segurança. Os testes cobrem:
  • Fluxos de autenticação e validação de token.
  • Aplicação de controle de acesso.
  • Performance e eficiência de cache.
Avaliações de segurança e monitoramento garantem conformidade com as melhores práticas e padrões de segurança em evolução.