MVP4 — Identidade avançada (groups/claims)
Fase inicial do MVP4: mapeamento de groups e claims do token externo para tenant/role no provisionamento, e tabela identity_provider_link.
Backlog restante: access token Microsoft no gateway (M4-05/06), Microsoft Graph overage (M4-01), Admin UI (M4-10).
Funcionalidades implementadas
| ID | Item | Status |
|---|---|---|
| M4-02 | Mapeamento group → tenant + role | ✅ YAML + env |
| M4-03 | Mapeamento claim → tenant + role | ✅ YAML + env |
| M4-08 | Tabela identity_provider_link |
✅ Flyway V0.7.00.9 |
| M4-09 | GroupMappingService / ClaimMappingService |
✅ |
| M4-11 | Provisionamento só com mapping (opcional) | ✅ *_MAPPING_REQUIRED |
Fluxo no external-login
- Valida token →
ExternalIdentity(incluigroupseclaimsdo JWT). - Busca usuário por
identity_provider_link(provider+externalId/oid/sub). - Se não achar, busca por
username/email. - Se não existir e
ECOSIF_AUTH_AUTO_PROVISION=true: - Resolve tenant/role via mapping (se habilitado). - Se*_MAPPING_REQUIRED=truee nenhum match → 404. - Criagr_usere grava vínculo emidentity_provider_link. - Se usuário já existia, garante vínculo
identity_provider_linkno login.
Variáveis
ECOSIF_AUTH_GROUP_MAPPING_ENABLED=false
ECOSIF_AUTH_GROUP_MAPPING_REQUIRED=false
ECOSIF_AUTH_GROUP_MAPPING_FILE=/config/group-mapping.yaml
ECOSIF_AUTH_CLAIM_MAPPING_ENABLED=false
ECOSIF_AUTH_CLAIM_MAPPING_REQUIRED=false
ECOSIF_AUTH_CLAIM_MAPPING_FILE=/config/claim-mapping.yaml
Exemplos de arquivo
Azure Entra — claim groups
Configure o App Registration para emitir groups no ID token (ou use Graph overage no backlog).
Com ECOSIF_AUTH_AUTO_PROVISION=false, o mapping não cria usuário — apenas afeta tenant/role quando AUTO_PROVISION=true.
Próximos passos (MVP4)
- M4-05: validar access token
api://...no API Gateway - M4-06: dual mode gateway (JWT ECOSIF ou access token Microsoft)
- M4-07:
ECOSIF_AZURE_ALLOWED_TENANTS - M4-10: UI admin para mapeamentos