O que ele faz
Para cada requisição em uma rota com controle de acesso configurado, o produto:
- lê o bearer token do header
Authorization. - monta uma verificação de permissão com o sujeito derivado das claims do token, o
resourceconfigurado para a rota e aactionconfigurada para a rota. - envia essa verificação ao Auth.
- segue com o handler do produto quando o Auth retorna uma decisão autorizada.
- rejeita a requisição com o erro HTTP ou gRPC adequado quando o Auth nega.
- usa as claims do token conforme a própria integração ciente de tenant do produto quando necessário.
POST /transactions com o recurso transactions e a ação post. O Auth decide se o sujeito no bearer token tem essa permissão.
Modelo de permissões
O Access Manager avalia a decisão central de permissão com três valores:
A autorização humana avalia permissões embutidas nos dados de identidade. Grupos podem organizar permissões, e usuários também podem receber permissões diretas de usuário.
Para um token normal de usuário, o middleware deriva o sujeito das claims
owner e sub dele. A menos que o produto configure verificação local de JWT, o middleware interpreta essas claims sem verificação de assinatura. A ida e volta de autorização até o Auth é a âncora de confiança. A autorização máquina a máquina depende de AUTH_M2M_INVERSION_ENABLED. Com o valor padrão false, o middleware deriva um sujeito admin/<product>-editor-role com escopo de produto para qualquer tipo de token que não seja de usuário e não consulta o sub desse token. Com true, ele usa a identidade sub do token da aplicação e rejeita tipos de token desconhecidos.
IP allowlist do tenant
Para o guia deste recurso voltado ao cliente, leia IP allowlist. O Identity armazena a IP allowlist de cada tenant e as superfícies onde ela se aplica. Uma lista não vazia se aplica apenas em escopos explicitamente selecionados:console para tráfego humano e api para tráfego de máquina. Sem escopo selecionado, a lista continua armazenada, mas fica inerte.
Configure TRUSTED_PROXIES no Auth e em cada processo de produto listado em Requisitos de deploy (BYOC). Cada processo deve usar os CIDRs do load balancer ou do ingress que fica na frente dele. O produto resolve o IP do cliente e o envia ao Auth como clientIp. O Auth usa a própria configuração para decidir se pode confiar nesse endereço para aplicar a allowlist.
A trava roda antes do cache de permissões do Auth. Tokens marcados como internos a contornam. Uma lista vazia não aplica a trava.
Um token é interno quando carrega a claim isInternal com o valor true. O Caradhras emite essa claim apenas para aplicações que a plataforma provisiona como serviços internos da Lerian. A API de aplicações voltada ao cliente não pode defini-la. O desvio pula apenas a trava da allowlist. O Auth ainda valida o token contra o Caradhras antes de autorizar a requisição, então um marcador interno forjado em um token inválido não dá acesso.
Em deploys onde os serviços de plataforma chamam o Caradhras a partir de redes do cluster, configure o mesmo valor de PLATFORM_INTERNAL_CIDRS no Identity e no Auth com esses CIDRs. Cada entrada deve incluir um prefixo explícito. Um prefixo que aceita tudo é rejeitado no boot, porque confiaria em todo chamador e tiraria toda entrada de tenant do controle de acesso. O Identity guarda essas faixas junto apenas enquanto existir uma lista do tenant, para que as verificações nativas do Caradhras liberem o tráfego de plataforma. O Auth as subtrai da política do tenant antes de aplicar.
Nomes de recurso e de ação
Nomes de recurso e de ação são strings exatas. Eles devem bater com os valores configurados para a rota do produto, e a rota envia esses valores configurados ao Auth. A maioria dos produtos de API usa ações no estilo de método HTTP:
Alguns produtos usam ações semânticas quando um método HTTP não descreve bem a rota:
Use Retrieve User Permissions para inspecionar os recursos e as ações efetivos disponíveis para o usuário autenticado.
Fluxo da requisição
- Receber a requisição
- O produto lê o bearer token do header
Authorization. - Se o token está ausente ou malformado, o produto rejeita a requisição antes de qualquer verificação de permissão.
- O produto lê o bearer token do header
- Montar a verificação de permissão
- O produto usa o recurso e a ação configurados para a rota.
- Em deploys cientes de tenant, o produto aplica a própria integração de tenant configurada. Não deduza desse fluxo no nível de rota um contrato universal de autorização baseado apenas em
tenantId.
- Perguntar ao Auth
- O produto chama o Auth com o sujeito, o recurso e a ação. Dependendo da integração, ele também pode encaminhar o contexto de produto e de IP do cliente.
- O Auth avalia a requisição contra as permissões configuradas no Access Manager e pode servir a resposta a partir do cache.
- Aplicar a decisão
- Quando autorizado, o produto segue para o handler dele.
- Quando negado, o produto retorna o erro HTTP ou gRPC adequado e não chama a lógica de negócio.
Onde isso se encaixa
Quando um produto configura o controle de acesso no nível de rota, ele fica entre a rede e o handler do produto. Com um cliente Auth habilitado e configurado, o Auth avalia a autorização antes de o handler rodar. Um sujeito autorizado ainda precisa da permissão certa de recurso e ação para chegar a uma operação específica. Uma IP allowlist de tenant ativa para o escopo daquela requisição ainda pode negá-la. O Auth pode servir decisões de autorização a partir do cache. No lado de gerenciamento desse quadro, veja o serviço Identity. O serviço Auth cuida do lado de decisão em runtime. Para o fluxo do dia a dia contra as APIs, veja Usando o Access Manager.

