Checklist — Itaú STS CC + gateway B2B (AUTH-14.10)¶
Operações para habilitar integração Client Credentials + scope no STS Itaú (openid.itau.com.br), convivendo com login humano Azure Enterprise.
Relacionado: integracao_b2b_itau_sts_cc.md · checklist_vars_terraform_b2b_java.md · checklist_b2b_entra_app_only.md (perfil Entra roles — opcional)
1. Itaú STS / identidade (cliente)¶
Emissor e JWKS¶
- [ ] Issuer confirmado:
https://openid.itau.com.br/api/oauth/token - [ ] URL JWKS documentada e acessível pelo gateway e pelos containers ECS
- [ ] Algoritmo de assinatura confirmado (RS256 esperado)
Token CC (integrador)¶
- [ ] Fluxo
client_credentialsoperacional (lambda/serviço emissor) - [ ] Claim
flow=CCpresente - [ ] Claim
usr=null(sem usuário humano) - [ ] Claim
scopeinclui scopes QW4 (ex.:qw4-balancetes-fundos-investimentos.read) - [ ]
subanotado por ambiente (DEV: lambda fixa; PROD: GUID produção) - [ ] Cliente confirmou:
aud=sub - [ ] Token decodificado em jwt.ms (sem expor secret)
Exemplo DEV (referência):
"sub": "e19c3d92-3603-4a89-923a-1a4bba633591",
"scope": "appid-42e02f44-8897-4513-978b-3ce788b41e27 qw4-balancetes-fundos-investimentos.read resource.READ"
App role Entra¶
- [ ] Não aplicável neste perfil — cliente não usa App role / service principal Microsoft para B2B
2. API Gateway (cliente Itaú)¶
Dois issuers¶
- [ ] Authorizer / policy aceita Microsoft (humano) e Itaú STS (M2M)
- [ ] JWKS configurado para ambos issuers
Humano (regressão)¶
- [ ] Issuer:
https://login.microsoftonline.com/{tenant-id}/v2.0 - [ ] Token com
scpdelegated continua passando - [ ] Rotas SPA /
external-logininalteradas
M2M Itaú CC¶
- [ ] Policy valida claim
scope(não exigescpMicrosoft) - [ ] Scopes exigidos = mesmos nomes QW4 acordados
- [ ] Allowlist opcional de
subna borda - [ ] Audience: validação
aud=subconforme contrato cliente
Comum¶
- [ ] JWT ECOSIF (HS256) rejeitado em
/ecosif-* - [ ] Health / actuator público inalterado
3. eCosif — backend (5 APIs Java)¶
Aplicar idêntico em: ecosif-auth, ecosif-masterdata, ecosif-moviments, ecosif-querys, ecosif-reports.
Ver checklist detalhado: checklist_vars_terraform_b2b_java.md.
- [ ] Imagens ≥ versão com AUTH-14.10 implementado
- [ ]
ECOSIF_ENABLE_AZURE_APP_ONLY=true(após onboarding) - [ ]
ECOSIF_AZURE_APP_REQUIRED_SCOPESpreenchido (scopes CC) - [ ]
ECOSIF_AZURE_APP_REQUIRED_ROLESvazio - [ ]
ECOSIF_AZURE_APP_ALLOWED_CLIENT_IDS=subintegrador (por ambiente) - [ ]
ECOSIF_ITAU_STS_ISSUER+ECOSIF_ITAU_STS_JWKS_URIconfigurados - [ ] Variáveis humano Microsoft inalteradas (
ECOSIF_AZURE_SCOPES, etc.) - [ ] Usuário técnico + ACL empresa/filial
- [ ] Vínculo
POST /api/admin/b2b-app-linkscomexternalId = sub - [ ] Flyway ≥
V0.7.00.15aplicado
4. Homologação E2E (AUTH-14.10.9)¶
| # | Caso | Serviço testado | Esperado |
|---|---|---|---|
| 1 | Humano Azure → API | querys (piloto) | 200 |
| 2 | CC Itaú + scope + vínculo | masterdata | 200 |
| 3 | Mesmo token CC → outro serviço | querys | 200 (sem passar pelo auth) |
| 4 | CC sem vínculo | qualquer API | 401 backend |
| 5 | CC scope insuficiente | gateway | 403 ou 401 |
| 6 | CC sub errado |
backend | 401 allowlist |
| 7 | Logs M2M | CloudWatch/Datadog | outcome=success + sub mascarado |
5. Rollback¶
| Ação | Efeito |
|---|---|
ECOSIF_ENABLE_AZURE_APP_ONLY=false |
Desliga M2M; humano inalterado |
| Remover vínculo B2B | Integrador perde acesso; humano OK |
| Reverter imagem pré-14.10 | Perde perfil Itaú; AUTH-14 Entra roles permanece se versão ≥ 0.7.08.202608301 |
6. Referências¶
| Documento | Conteúdo |
|---|---|
| integracao_b2b_itau_sts_cc.md | Desenho completo |
| manual_implantacao_b2b_itau_sts_cc.md | Runbook |
| variaveis_autenticacao_baseline.md | Catálogo vars |