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, 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. No Auth, inclua também as redes a partir das quais os produtos chamam o Auth. O produto resolve o IP do cliente e o envia ao Auth como clientIp.
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 que a instituição usa 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, no Auth e no Caradhras 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 Caradhras aceita os chamadores da plataforma a partir da própria cópia do valor. O Auth as subtrai da política do tenant antes de aplicar.
Nomes de recurso e de ação
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.

