Autorização (Authorization)
Autorização (Authorization) no Logto define o que usuários e aplicativos podem fazer após a autenticação: quais APIs, recursos ou ações são permitidos para cada identidade.
O Logto oferece autorização flexível baseada em token para aplicativos SaaS e de IA modernos. Você pode proteger recursos de API globalmente ou dentro do contexto de cada organização. Todas as permissões são gerenciadas por meio de um sistema de controle de acesso baseado em papel (RBAC), com suporte avançado para aplicativos multi-inquilino via modelos de organização. Além de controlar o que os usuários podem fazer, você também pode restringir quais usuários podem fazer login em cada aplicativo com o controle de acesso em nível de aplicativo.
Conceitos principais
- Controle de acesso baseado em papel (RBAC): O Logto utiliza RBAC como base para atribuir permissões a usuários, clientes e serviços. Saiba mais sobre RBAC.
- Recurso de API (API resource): Qualquer serviço backend ou endpoint que você deseja proteger (global ou específico da organização).
- Papel (Role): Um grupo de permissões (por exemplo, admin, visualizador, editor).
- Permissão (escopo) (Permission (scope)): Uma ação permitida específica (por exemplo,
read:report,invite:member). - Organização (Organization): Representa um inquilino, espaço de trabalho ou cliente em seu aplicativo. Isso é diferente do tenant do Logto, que se refere ao seu projeto ou instância Logto como um todo.
- Modelo de organização (Organization template): Para aplicativos multi-inquilino, defina um conjunto reutilizável de papéis e permissões aplicados em todas as organizações. Veja como funcionam os modelos de organização.
- Token de acesso / token de organização (Access token / organization token): Tokens contendo reivindicações para permissões globais ou com escopo de organização.
Cenários de autorização
Existem três principais padrões de autorização no Logto. Escolha o cenário que corresponde às suas necessidades:
| Cenário | Quando usar | Tipo de token | Configuração de papel | Saiba mais |
|---|---|---|---|---|
| Permissões globais de recursos de API | Proteger recursos de API compartilhados em todo o seu tenant Logto (não específico de organização) | Token de acesso | Atribuir papéis/permissões globais | Proteger recursos globais de API |
| Permissões de organização (não-API) | Controlar ações específicas da organização, recursos de UI ou lógica de negócio (não APIs) | Token de organização | Atribuir papéis/permissões de organização para controles de app | Proteger permissões de organização (não-API) |
| Permissões de recursos de API em nível de organização | Proteger recursos de API acessíveis dentro de uma organização específica | Token de organização | Atribuir papéis/permissões de organização para APIs da organização | Proteger recursos de API em nível de organização |
O Logto modela recursos de API de acordo com a RFC 8707, usando o parâmetro resource nos fluxos de autorização OAuth 2.0. Isso facilita proteger várias APIs ou microsserviços e garante compatibilidade com outros sistemas baseados em padrões.
Esses padrões controlam o que um usuário pode fazer após fazer login em um aplicativo. Para controlar se um usuário pode fazer login em um aplicativo específico, use o controle de acesso em nível de aplicativo. Ele restringe o acesso ao aplicativo com regras de permissão baseadas em usuários, papéis, organizações ou papéis de organização, e funciona independentemente dos padrões baseados em token acima.
Precisa de reivindicações personalizadas ou controle de acesso avançado? Veja Reivindicações personalizadas de token.
Como funciona a autorização do Logto
-
Baseada em token: Todo acesso é concedido por meio de um token de acesso seguro e assinado. Seu backend valida o token e aplica as permissões (escopos).
-
Permissão global vs. permissão de organização (escopo):
- Permissão global (escopo): Controla o acesso a recursos de API em todo o seu tenant Logto.
- Permissão de organização (escopo): Controla tanto a lógica de negócio (recursos do app) quanto recursos de API dentro do contexto de uma organização. Permissões de organização podem ser aplicadas a recursos não-API (como elementos de UI ou fluxos de trabalho) e/ou endpoints de API com escopo de organização.
-
Papéis e permissões (escopos): Papéis são coleções de permissões (escopos). Atribua papéis a usuários ou clientes globalmente ou dentro de uma organização, dependendo do seu cenário.
Próximos passos
Pronto para avançar? Comece na prática, explore guias do mundo real ou aprofunde seu entendimento:
Domine papéis e permissões para controle de acesso detalhado.
Saiba como configurar papéis e permissões reutilizáveis para aplicativos multi-inquilino.
Proteja APIs compartilhadas em seu tenant Logto com papéis e permissões globais.
Controle ações específicas da organização e recursos de UI com papéis de organização.
Proteja APIs acessíveis dentro de uma organização específica usando papéis de organização.
Saiba como verificar tokens Logto em seu backend para proteger APIs.
Restrinja quais usuários podem fazer login em cada aplicativo usando usuários, papéis, organizações e papéis de organização.
Saiba como adicionar reivindicações personalizadas para cenários avançados de controle de acesso.
Casos de uso
Procurando exemplos práticos e cenários do mundo real? Confira estes guias:
Veja um exemplo passo a passo e real de autorização segura com RBAC.
Siga um guia abrangente para arquitetura e implementação de SaaS multi-inquilino.
Leitura adicional
RBAC e ABAC: Os modelos de controle de acesso que você deve conhecer
Quando devo usar JWTs? Métodos de autorização de API