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 subject derivado de claims do token, o
resourceconfigurado para a rota e aactionconfigurada para a rota; - envia essa verificação ao Auth;
- continua com o handler do produto quando o Auth retorna uma decisão autorizada;
- rejeita a requisição com o erro HTTP ou gRPC apropriado quando o Auth a nega;
- usa claims do token conforme a integração de tenant do próprio produto quando necessário.
POST /transactions com o recurso transactions e a ação post. O Auth decide se o subject no bearer token tem essa permissão.
Modelo de permissão
O Access Manager avalia a decisão central de permissão com três valores:
A autorização de usuários humanos avalia permissões incorporadas aos dados de identidade. Grupos podem organizar permissões, e usuários também podem receber permissões diretas.
Para um token de usuário normal, o middleware deriva o subject de suas claims
owner e sub. A menos que o produto configure a verificação local do JWT, o lib-auth analisa essas claims sem verificar a assinatura; a chamada de autorização ao 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 subject 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.
Allowlist de IP do tenant
O Identity armazena a allowlist de IP de cada tenant e as superfícies em que ela se aplica. Uma lista não vazia só é aplicada nos escopos selecionados explicitamente:console para tráfego humano e api para tráfego de máquina. Sem nenhum escopo selecionado, a lista é preservada, mas permanece inativa. Configure TRUSTED_PROXIES em cada processo de produto que usa o lib-auth e também no Auth. Cada processo deve usar os CIDRs do balanceador de carga ou ingress que fica à sua frente. O lib-auth do produto resolve o IP do cliente e o envia ao Auth como clientIp; o Auth usa sua própria configuração para decidir se pode confiar nesse endereço ao aplicar a allowlist. Esse controle é executado antes do cache de permissões do Auth; tokens marcados como internos o ignoram. Uma lista vazia não aplica o controle.
Um token é interno quando carrega a claim isInternal com o valor true. O Casdoor 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 bypass pula apenas o controle da allowlist: o Auth continua validando o token com o Casdoor antes de autorizar a requisição, então um marcador interno forjado em um token inválido não concede acesso.
Em deployments nos quais serviços da plataforma chamam o Casdoor por 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, e um prefixo abrangente é rejeitado no boot porque confiaria em todo chamador e removeria toda entrada do tenant da aplicação. O Identity coarmazena esses intervalos somente enquanto existe uma lista do tenant para que as verificações nativas do Casdoor permitam o tráfego da plataforma; o Auth os subtrai da política do tenant antes da aplicação.
Nomes de recursos e ações
Os nomes de recursos e ações são strings exatas. Eles precisam corresponder aos 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étodos HTTP:
Alguns produtos usam ações semânticas quando a rota não é melhor descrita por um método HTTP:
Use Recuperar Permissões do Usuário para inspecionar os recursos e 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 estiver ausente ou malformado, a requisição é rejeitada antes de qualquer verificação de permissão ser tentada.
- 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 deployments cientes de tenant, o produto aplica sua própria integração de tenant configurada. Não infira um contrato universal de autorização baseado apenas em
tenantIda partir deste fluxo no nível da rota.
- Perguntar ao Auth
- O produto chama o Auth com o subject, o recurso e a ação. Conforme sua integração, ele também pode encaminhar contexto de produto e 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
- Se autorizada, o produto continua para o seu handler.
- Se negada, o produto retorna o erro HTTP ou gRPC apropriado e não invoca a lógica de negócio.
Onde isso se encaixa
Quando um produto configura o controle de acesso no nível da 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 subject autorizado ainda precisa da permissão de recurso-ação correta para alcançar uma operação específica e pode ser negado por uma allowlist de IP do tenant ativa para o escopo daquela requisição. O Auth pode servir decisões de autorização a partir do cache. Para o lado de gerenciamento desse cenário, veja o serviço Identity. Para o lado de decisão em runtime, veja o serviço Auth. Para o fluxo do dia a dia com as APIs, veja Usando o Access Manager.

