Identidade Federada: Guia Definitivo e Crítico

Identidade Federada: Guia Definitivo e Crítico

Introdução: Em janeiro de 2013, o varejista Target foi vítima de um dos ataques mais citados da história moderna: os invasores entraram pela conta de um fornecedor terceirizado e, a partir dali, moveram-se lateralmente até alcançar milhares de cartões de crédito dos clientes. Esse incidente — divulgado globalmente em dezembro de 2013 — ilustra uma verdade incômoda: acesso é quase sempre o elo mais fraco. Federated Identity Management (FIM), ou Gerenciamento de Identidade Federada, é justamente a tentativa de transformar esse elo em ponto de controle estratégico, permitindo que organizações confiem em identidades gerenciadas por terceiros de forma segura, escalável e auditável. Porém, como qualquer tecnologia que centraliza confiança, a federação cria novas superfícies de risco e exige disciplina técnica e organizacional avançada para ser efetiva.

Neste artigo, vamos dissecar o conceito de identidade federada de ponta a ponta. Você encontrará desde história e fundamentos teóricos até guias técnicos, exemplos de código, estudos de caso reais e recomendações práticas para projetar, implementar e operar um ambiente federado resistente. Se você é um arquiteto de segurança, engenheiro de IAM, profissional de DevSecOps, gestor de risco ou operador de SOC, este é o recurso que resume as lições aprendidas em décadas de prática: o que funciona, o que falha, como detectar abuso e como alinhar a federação às exigências regulatórias como LGPD e GDPR.

Prepare-se para leituras técnicas (SAML, OAuth 2.0, OpenID Connect, SCIM), armadilhas clássicas (XML Signature Wrapping, falhas na validação de audiência, erros de configuração de relógio), estratégias de mitigação (mTLS, certificate pinning, token binding), integrações práticas (Keycloak, Azure AD, Okta, Ping, SimpleSAMLphp) e um olhar prospectivo sobre como FIDO2, DIDs e verifiable credentials influenciarão a federação na próxima década. Ao final, você terá um plano de ação pragmático e detalhado para projetar ou revisar uma arquitetura federada com segurança e governança adequadas.

🔍 Entendendo a Identidade Federada – Os Fundamentos

Definição básica: Identidade federada é o conjunto de técnicas e padrões que permite que uma entidade (Service Provider — SP) confie na autenticação e em atributos de uma identidade fornecida por outra entidade (Identity Provider — IdP). Em vez de manter repositórios de credenciais separados para cada serviço, a federação estabelece domínios de confiança para trocar autenticações e atributos por meio de tokens, assertions ou protocolos padronizados. O objetivo é melhorar a experiência do usuário (SSO), reduzir a superfície de ataque (menos senhas espalhadas) e centralizar controle e auditoria.

História e evolução: As raízes da federação remontam às primeiras tentativas de Single Sign-On em ambientes corporativos: Kerberos (anos 1980) e mecanismos proprietários de SSO evoluíram até especificações padronizadas. Nos anos 2000, o SAML 2.0 (Security Assertion Markup Language) tornou-se o padrão de fato para SSO entre domínios federados — especialmente em ambientes acadêmicos e governamentais (Shibboleth é um exemplo clássico). Com a popularização da web e de APIs, OAuth 2.0 (RFC 6749, 2012) e OpenID Connect (OIDC, 2014) surgiram para suportar delegação de autorização e autenticação leve, respectivamente, mais adequadas para cenários mobile e APIs.

Modelos de federação: Existem várias topologias de federação, cada uma com trade-offs.

  • Hub-and-Spoke: Um provedor central (hub) mantém confiança com múltiplos IdPs e SPs, facilitando gerenciamento de metadata e políticas. Bom para ecossistemas controlados, mas cria um ponto central de falha.
  • Peer-to-Peer: Cada SP e IdP estabelece trust relationships diretas. Escalável em autonomia organizacional, mas complexa para gerenciar em larga escala.
  • Broker (Identity Broker): Um intermediário (ex.: Auth0, Keycloak com identity brokering) traduz protocolos e atributos entre IdPs e SPs, simplificando integrações; porém, introduz risco de roteamento de confiança e aumenta superfície de ataque.

Componentes essenciais: Em qualquer modelo federado você encontrará: IdP, SP, metadata (descrição de endpoints, chaves, certificados), protocolo (SAML/OAuth/OIDC), mecanismo de transporte seguro (TLS), e um repositório de atributos (LDAP, Active Directory, SCIM para provisionamento). A federação também exige processos: troca de metadata, rotação de chaves, acordos de nível de serviço e políticas de atribuição (claims mapping).

Elementos de confiança: A confiança é construída por: criptografia (assinatura e, quando aplicável, criptografia de assertions), validade de certificados (PKI), acordos contratuais, e controles operacionais (monitoramento, auditoria e resposta a incidentes). A segurança assume que qualquer token válido representa uma autenticação legítima — daí a importância crítica da proteção e validação dos tokens.

Quando usar federação? Casos típicos:

  • SSO entre organizações: Universidades que compartilham recursos; consórcios governamentais; parceiros de negócios.
  • Business-to-Business (B2B): Fornecedores que precisam acessar sistemas do cliente usando suas credenciais corporativas.
  • Software como Serviço (SaaS): Usuários corporativos autenticam-se via Azure AD ou Okta para acessar aplicativos SaaS.
  • APIs e microservices: Delegação de autorização (OAuth 2.0) com tokens de acesso usados por serviços confiáveis.

Princípios fundamentais: Alguns princípios orientadores tornam a federação sustentável:

  • Menor privilégio: conceder o mínimo de atributos necessários; evitar scope amplo em tokens.
  • Assinatura e audiência: validar assinaturas, aud, exp, issuer e timestamps antes de aceitar qualquer assertion/token.
  • Segurança do canal e dos artefatos: TLS rigoroso, proteção de chaves privadas e rotação regular de certificados.
  • Provisão e reprovisionamento: usar SCIM para orquestrar provisioning/deprovisioning automático e minimizar contas órfãs.
  • Transparência e auditoria: logs imutáveis das transações federadas, correlacionados com identidade e evento.

Terminologia rápida: vale consolidar termos para evitar confusão:

  • Assertion: no SAML é o documento XML que contém as declarações sobre autenticação e atributos.
  • Token: no OAuth/OIDC é o artefato (JWT, opaque token) utilizado para autorização/autenticação.
  • Claim: atributo em um token/assertion (email, role, uid).
  • Audience (aud): destinatarário pretendido do token — sempre verificar.
  • RelayState / state: parâmetro usado para preservar contexto durante redirecionamentos de SSO.

Resumo: Identidade federada não é apenas um mecanismo técnico: é uma arquitetura de confiança distribuída que exige coordenação entre pessoas, processos e tecnologia. Quando bem projetada, reduz risco e melhora a experiência do usuário; quando mal implementada, transforma um único IdP comprometido em um vetor para comprometer múltiplos SPs. Nas próximas seções vamos desmontar protocolos, analisar vulnerabilidades conhecidas, estudar casos reais e implementar controles práticos para tornar a federação um ativo e não uma passiva.

⚙️ Como a Identidade Federada Funciona – Mergulho Técnico

Panorama dos protocolos: Os protocolos mais relevantes são SAML 2.0, OAuth 2.0 e OpenID Connect. Cada um ocupa um nicho técnico:

  • SAML 2.0: Ideal para SSO browser-based em cenários enterprise e federados. Usa XML, assinaturas XML Digital Signature, e tipicamente troca assertions via browser redirects e POSTs. Muito usado por provedores acadêmicos, governamentais e em integrações tradicionais.
  • OAuth 2.0: Padrão para delegação de autorização entre aplicações/API. Não é um protocolo de autenticação por si só, e exige boas práticas para evitar vulnerabilidades (uso do Authorization Code + PKCE, evitar implicit flow).
  • OpenID Connect (OIDC): É uma camada de autenticação sobre OAuth 2.0. Retorna ID Token (JWT) com claims que asseguram a identidade do usuário. Compatível com mobile e SPA.

Fluxos fundamentais (descrição técnica):

  • Authorization Code Flow (OIDC/OAuth): cliente (SP) redireciona o usuário ao IdP com client_id, redirect_uri, scope; o IdP autentica o usuário, retorna um authorization code ao redirect_uri; o cliente troca o code por tokens (access_token, id_token, refresh_token) via endpoint token. Uso de PKCE é obrigatório em aplicações públicas (mobile/SPAs) para mitigar interceptação de code.
  • Implicit Flow (obsoleto): anteriormente retornava tokens diretamente via redirecionamento (ruim para segurança — exposto ao browser). Hoje desaconselhado em favor do Authorization Code + PKCE.
  • Back-channel logout / Single Logout: mecanismos para notificar SPs quando o IdP encerra sessão. Implementações variam e frequentemente são problemáticas; há risco de fragmentação do estado e logout parcial.
  • SAML Web Browser SSO: SP envia AuthnRequest para IdP (via redirect); IdP autentica e retorna SAML Response assinada para o Assertion Consumer Service (ACS) do SP; SP valida assinatura, condição de validade, audience e issuer; então estabelece sessão local.

Tokens e formatos: Com a ascensão das APIs, JWT (JSON Web Token — RFC 7519) tornou-se padrão para tokens OIDC. Um JWT contém header (algoritmo, kid), payload (claims) e assinatura (JWS). No SAML, as assertions são XML assinados ou criptografados. Entender a diferença é crucial para validação correta: validar esquema XML + XML signature (SAML) versus validar assinatura JWS + claims + exp/aud (JWT).

Validações essenciais: Para qualquer token/assertion, sempre execute:

  • Assinatura: verificar com a chave pública apropriada (use JWKS endpoint para OIDC); não confie em assinaturas passadas como parte do payload.
  • Issuer: comparar com o valor esperado e tratar aliases com cuidado.
  • Audience: garantir que o token destinava-se ao SP que o está recebendo.
  • Tempo: validar exp (expiration), nbf (not before) e considerar clock skew (50-120s). Clocks fora de sincronia geram validações indevidas e false negatives.
  • Nonce / state: prevenir replay e CSRF — use nonce em OIDC e state para correlacionar fluxos.

Metadados e PKI: SAML depende fortemente de metadata XML contendo endpoints e chaves de assinatura. A troca de metadata pode ser manual ou via endpoints de metadados. Rotação de chaves exige processos bem desenhados: se uma chave é atualizada, SPs precisam consumir a nova metadata antes que a antiga expire. OpenID Connect usa discovery (/.well-known/openid-configuration) e JWKS (JSON Web Key Set) para expor chaves públicas; os SPs devem _cachear_ e reciclar com base em cabeçalhos Cache-Control/Expires, e validar kid para escolher a chave correta.

Provisionamento: SCIM e beyond: SCIM 2.0 (RFC 7644) é padrão para provisioning e deprovisioning automatizado. Implementações comuns suportam endpoints /Users e /Groups com JSON, operações CRUD e PATCH. Um fluxo recomendado é: usar SCIM para manter contas sincronizadas com atributos mínimos (email, uid, status), enquanto claims adicionais são providos via assertion/token no momento do login. Provisionamento evita contas órfãs que são vetores para acesso indevido quando usuários deixam a organização.

Exposição de atributos e mapeamento: O trocas de atributos (claims) precisam ser minimizadas. Expor atributos como role, group memberships e e-mail é comum, mas evite incluir PII desnecessário (CPF, data de nascimento) dentro de tokens. Mapeie atributos no SP de forma explícita: não confie em nomes de claims desconhecidos; normalize strings, valide formatos e aplique whitelist de valores.

Arquitetura de broker vs. diretiva de confiança: Identity Brokers (ex.: Keycloak Identity Brokering) mediam entre vários IdPs, traduzindo tokens e provendo um único ponto de integração para SPs. Eles simplificam o onboard, mas se comprometidos expõem todos os SPs integrados. Em contraste, trust diretiva (SP <-> IdP) reduz superfície centralizada, mas explode a complexidade de metadata.

Proteções técnicas importantes:

  • mTLS: use mutual TLS entre componentes críticos (token exchange endpoints, SCIM), garantindo autenticação de máquina e proteção contra interceptação de tokens via rede.
  • Token binding e DPoP: técnicas emergentes para reduzir uso de tokens roubados por amarrá-los ao cliente original (DPoP, mTLS-bound tokens).
  • Short-lived tokens + Refresh tokens com proteção: evite usar access tokens de longa duração; proteja refresh tokens em clientes confidenciais e implemente revogação (token introspection endpoint no OAuth).
  • Rate limiting e anomaly detection: endpoints de token e metadata são alvos de abuso; aplique rate limiting e monitore padrões (número de token requests por client_id, geografias, IPs).

Vulnerabilidades clássicas: Conhecer vetores oferece vantagem quando se projeta defesas:

  • XML Signature Wrapping (SAML): quando o parser XML aceita um documento manipulado onde a assinatura cobre apenas uma parte inócua, enquanto a assertion maliciosa é aceita pelo SP. Mitigue usando parsing seguro, comparação de ID de assertion e validação de referencia de assinatura.
  • Misconfiguração de Audience e Issuer: aceitar tokens com aud vazio ou múltiplos aud sem validação permite tokens destinados a outro serviço serem usados indevidamente.
  • Key rollover mal gerido: SPs que não carregam metadata atualizado aceitam tokens assinados por chaves antigas, ou rejeitam chaves novas durante rollover causando outage.
  • Replay de tokens: tokens interceptados e reutilizados se não houver proteção contra replay (nonce, jti tracking).
  • Redirect URI Manipulation: permitir redirect_uris dinâmicos sem validação permite exfiltração de authorization codes; use listas de redirect URIs permitidas e validação exata.

Exemplo técnico — Verificação de JWT em Python:

Exemplo SAML metadata snippet:

Resumo técnico: Entender profundamente os protocolos é requisito para qualquer implementação federada segura. Implementações práticas demandam validações rígidas, PKI bem administrada, monitoramento ativo e políticas de provisioning/deprovisioning. A próxima seção mostrará estudos de caso reais que ilustram sucessos e falhas na federação no mundo real.

🎯 Aplicações Reais e Estudos de Caso

Estudo de Caso 1 — Target (2013) — lição sobre confiança terceirizada: Embora o ataque à Target em 2013 não envolvesse diretamente SAML ou OIDC, ele é paradigmático para ambientes federados: os invasores obtiveram credenciais de um fornecedor terceirizado (Fazio Mechanical) e utilizaram essa confiança para mover-se lateralmente. O incidente, detectado em dezembro de 2013 e amplamente coberto por Reuters e relatórios forenses, causou exposição de 40 milhões de números de cartão de pagamento e 70 milhões de registros de clientes. Lições: delegação de acesso a terceiros requer segmentação de rede, controle de acesso baseado em identidade (não apenas network-level), MFA entre domínios de confiança e monitoramento comportamental. Fonte de leitura: relatório do investigador e cobertura da Reuters (2013).

Estudo de Caso 2 — GOV.UK Verify (Reino Unido): desafios de um programa governamental de federação: Lançado em 2016 com metas ambiciosas de permitir que cidadãos consumissem serviços públicos usando identidades federadas validadas por provedores de identidade, o programa enfrentou desafios de usabilidade, custos e interoperabilidade. O projeto demonstrou problemas práticos: mapeamento de atributos entre provedores, padrões de assurance level e inclusão digital. Em 2020 o governo passou a reduzir o foco no Verify, refletindo a dificuldade de operar federações em escala nacional com múltiplos IdPs heterogêneos. Lições: políticas de assurance, auditoria e experiência do usuário são tão críticas quanto a tecnologia. Fonte: publicações do GOV.UK sobre Verify.

Estudo de Caso 3 — Estonia X-Road (Sucesso operacional): A Estônia construiu uma infraestrutura de interoperabilidade chamada X-Road desde 2001, que permite trocas seguras de dados entre entidades públicas e privadas usando identidade federada e PKI governamental. O modelo provou-se resiliente e escalável, permitindo serviços como e-Residency (2014) e uma sociedade digital avançada. X-Road combina autenticação forte, logs auditáveis e controles de acesso baseados em atributos. Lições: investimento em PKI nacional, padrões obrigatórios e infraestrutura de logging imutável são chaves para sucesso em federação em nível nacional. Fonte: e-Estonia (documentação X-Road).

Estudo de Caso 4 — Okta e incidentes de 2022 (lição sobre supply chain de identidade): Em 2022, relatos e investigações públicas destacaram que incidentes envolvendo provedores de suporte contratados levaram à exposição de dados e bandeiras de segurança para clientes Okta. Okta divulgou que uma porcentagem pequena de clientes foi impactada por atividades de suporte comprometido. O caso chamou atenção para um risco central: quando o IdP (ou suporte do IdP) é afetado, toda federação pode ser afetada. Lições: monitorar acessos administrativos de provedores terceirizados, segregar credenciais de suporte, exigir autenticação forte e processos de verificação humana para ações sensíveis. Fontes: cobertura da imprensa especializada em 2022 e comunicados oficiais.

Estudo de Caso 5 — Universidades e Shibboleth/SAML (cenário acadêmico): Desde os anos 2000, federações acadêmicas (eduGAIN, InCommon nos EUA) usam SAML para permitir que estudantes e professores acessem recursos de publishers, laboratórios e repositórios. Esses ecossistemas demonstram escalabilidade: milhares de SPs, centenas de IdPs, metadata trocada automaticamente e gerenciamento de alcance de atributos. Contudo, também evidenciaram problemas repetitivos, como configuração incorreta de assertion-consumers e falta de rotação de chaves entre campus. Lições: testes automatizados de metadata, monitoramento de SSO exitos vs. falhas e processos CLIs para rotação de chaves são essenciais.

Estudo de Caso 6 — SaaS enterprise adoption (Dropbox, 2013 em diante): Dropbox e outras plataformas SaaS passaram a oferecer suporte a SAML e OIDC para clientes corporativos. A vantagem foi clara: clientes corporativos conseguem usar seu IdP (AD FS, Azure AD, Okta) para autenticar funcionários. No entanto, casos de má-configuração do lado do cliente (ex.: accepting any cert, trusting wildcard redirect URIs) demonstraram que a segurança depende tanto do SP quanto do IdP e do configurador. Lições: fornecedores SaaS devem fornecer validações de configuração, ferramentas de diagnóstico e checklists de segurança para clientes. Fontes: documentação e casos de suporte corporativo de provedores SaaS.

Análise crítica dos casos: Três temas emergem repetidamente:

  • Terceirização de confiança: quando você aceita um IdP externo, você está delegando autenticação e parte da governança de acesso. Contratos e controles técnicos devem acompanhar cada relação.
  • Operações e governance: falhas chegam quando processos (rotação de chaves, revogação, onboarding/offboarding) não são formalizados e automatizados.
  • Monitoramento e visibilidade: a federacão cria pontos de controle poderosos, mas também centros de impacto em caso de comprometimento. SIEM + correlação de logs (IdP tokens issues, failed assertions, anomalias geográficas) são essenciais.

Estudo de Caso Técnico — ataque baseado em OAuth phishing (casos diversos): Anecdoticamente, a engenharia social via OAuth consent screens tornou-se uma técnica para roubo de tokens: aplicações maliciosas induzem usuários a conceder scopes a um app OAuth que, uma vez autorizado, obtém tokens que permitem acessar recursos. Relatos em 2018-2020 apontaram campanhas visando contas Google/GSuite e GitHub via OAuth. Mitigação: limitar scopes, usar app verification, revisar o fluxo de consent, e educar com políticas de segurança do cliente. Fontes: posts de segurança e relatórios de incidentes de provedores.

Sintetizando lições operacionais: Os estudos mostram que federação funciona bem quando suportada por práticas maduras de IAM e governança: contratos claros com IdPs, autenticação forte (MFA), monitoramento contínuo, provisionamento automatizado (SCIM) e sobrevivência planejada (planejamento de rollback e chave reserva). Abaixo, a seção de implementação fornecerá passos e checklists para construir isso de forma replicável e segura.

🔧 Guia de Implementação – Passo a Passo

Visão geral do projeto: Implementar identidade federada requer planejamento em camadas: arquitetura, seleção de protocolo, configuração de infraestrutura, provisionamento, políticas de segurança, monitoramento e treinamento. Abaixo descrevo um roteiro prático para implantar um domínio federado com foco em segurança e escalabilidade.

Fase 1 — Planejamento e levantamento de requisitos:

  • Inventário de aplicações: Liste SPs (web apps, API gateways, microservices) e identifique requisitos de autenticação (SSO browser, mobile, APIs) e atributos necessários (email, role, groups).
  • Escolha de modelo de federação: Hub-and-spoke se a organização centraliza confiança; broker quando múltiplos IdPs heterogêneos irão ser suportados; peer-to-peer quando autonomia total é exigida.
  • Requisitos de assurance: defina níveis de assurance (NIST SP 800-63) para cada aplicação: quais exigem autenticação multifatorial, proofing adicional, KYC, etc.
  • Privacidade e compliance: identifique dados pessoais em assertions; minimize claims para compliance LGPD/GDPR; documente fluxo de dados.

Fase 2 — Seleção de tecnologias:

  • IdP vs Broker: considere Keycloak (open source), Azure AD (enterprise cloud), Okta (SaaS IdP), ForgeRock (enterprise), PingFederate. Para brokers, Keycloak e Auth0 são opções comuns.
  • Protocolos: prefira OIDC para aplicações web modernas e APIs; SAML para integrações legadas de SSO institucional; OAuth 2.0 para delegação de autorização de APIs.
  • Provisionamento: implemente SCIM 2.0 para sincronização de usuários; se SCIM não for suportado pelo IdP, scripts controlados e automatizados com logs podem compensar temporariamente.

Fase 3 — Arquitetura e design:

  • Separação de ambientes: configurar ambientes de dev/test/staging que espelhem política e metadata; teste rollover de chaves e cenários de revogação antes de produção.
  • Alta disponibilidade: IdP e brokers precisam de replicação e distribuição geográfica. Planeje failover de metadata e endpoints de discovery.
  • Segurança de secrets: armazene chaves privadas em Hardware Security Modules (HSM) ou serviços de Key Management (AWS KMS, Azure Key Vault); restrinja acesso administrativo via PAM.
  • Proteção de endpoint: aplique WAF e rate limiting em endpoints de token, discovery e JWKS; use mTLS para comunicações sensíveis (SCIM, token exchange).

Fase 4 — Configuração prática (exemplo Keycloak + SAML SP):

Pré-requisitos: Keycloak instalado; SP (por exemplo, Apache com mod_auth_mellon) configurado.

Passo a passo simplificado:

  • 1. Criar realm em Keycloak: admin console → Realms → Add realm → configure name e tokens lifetimes.
  • 2. Criar client SAML para o SP: Clients → Create → Client ID = entityID do SP → Client Protocol = saml → configure Assertion Consumer Service (ACS) URL, NameID format, encrypt assertions se necessário.
  • 3. Configurar Keycloak como IdP: em SAML configuration, export metadata XML do Keycloak e forneça ao SP.
  • 4. Configurar mod_auth_mellon no Apache: instale mod_auth_mellon, coloque metadata do IdP (keycloak-metadata.xml), gere sp-metadata.xml e troque com IdP. Exemplos de parâmetros no Mellon: MellonEnable “auth”, MellonEndpointPath “/mellon”
  • 5. Testar SSO: acesse SP, verifique redirect para IdP, autentique, verifique que assertion assinada foi entregue (use browser devtools para redirecionamento POST) e tokens mapeados em headers.

Exemplo de provisionamento SCIM (payload JSON — criar usuário):

Fase 5 — Segurança adicional e hardening:

  • MFA obrigatório: para IdPs, exigir MFA adaptativo para logins sensíveis e para acessos administrativos.
  • Proteção de credenciais administrativas: segregar contas de suporte, exigir jump hosts e MFA para administração; auditar sessões.
  • Token revocation: habilitar endpoints de revogação e introspecção (RFC 7009 e RFC 7662) para permitir que SPs invalidem tokens comprometidos.
  • Key rollover plan: documentar e automatizar processo de rotação: publicar metadata com overlap window, comunicar SPs, testar automações de consumo de metadata.

Fase 6 — Monitoramento, logging e resposta:

  • Logs essenciais: token issuance, token revocation, failed signature validations, metadata fetches, SCIM provisioning events, administrative actions.
  • SIEM e detecção: crie regras para anomalias: picos de issuance para um cliente_id, token requests vindos de IPs novos, refresh token uso em localidades distintas rapidamente, e uso de tokens após revogação.
  • Playbooks de incidente: ter playbooks para compromissos de IdP: revogação de chaves, comunicação a SPs, rotação emergencial de certificados e rollback de trust relationships.

Governança e processos:

  • Onboarding/offboarding: formalize SLA para configuração de trust, checagem de metadata, e procedimentos de desligamento de contas, com SCIM automatizado para remover acessos.
  • Auditorias regulares: verifique configurações de redirect_uris, lista de clientes ativos, e uso de scopes sensíveis.
  • Treinamento: capacite equipes de DevOps e suporte em riscos de federação e verificação de configuração segura.

Checklist rápido de implantação segura:

  • Usar Authorization Code + PKCE para clientes públicos.
  • Habilitar MFA e autenticação adaptativa para IdP.
  • Proteger chaves privadas em HSM/KMS.
  • Implementar SCIM para provisionamento/deprovisionamento.
  • Habilitar endpoints de revogação e introspecção.
  • Validar aud, iss, exp, nbf e kid para todos tokens.
  • Monitorar e alertar para padrões anômalos de token issuance.
  • Executar testes de penetração específicos (SAML XML wrapping, token replay).

Resumo: Uma implementação federada bem-sucedida nasce da integração entre design sólido, escolhas tecnológicas adequadas, automação operacional e observabilidade. Os exemplos e etapas acima oferecem um roteiro prático, mas a execução exige rigor contínuo e feedback entre segurança, operações e desenvolvimento.

⚡ Melhores Práticas e Recomendações de Especialistas

Princípios técnicos de ouro: Especialistas em IAM replicam um conjunto de recomendações que, combinadas, reduzem drasticamente o risco operacional da federação.

1. Validação irrestrita de tokens e assertions: Nunca aceite um token sem validar assinatura, issuer, audience, exp/nbf e, quando aplicável, nonce. É surpreendente quantas integrações empresariais ignoram validações completas. Auditorias de código frequentemente revelam checks faltantes em parsers personalizados.

2. Minimize claims e use scopes granulares: Ainda vemos tokens com claims demais, expondo PII desnecessária a SPs. Defina scopes e claims mapping minimalistas: forneça apenas o que é estritamente necessário para a função do serviço.

3. Provisionamento e desprovisionamento automático: O maior risco de acesso indevido é conta órfã. SCIM deve ser padrão para federacões corporativas. Onde não for possível, automatize scripts de desligamento e integre com processos RH para aceleração da revogação.

4. Rotação de chaves e política de metadata: Automatize fetch e verificação de metadata, implemente janelas de roll-over e alerte para falhas de sincronização. Não permitir janelas de rotação pequenas sem automação. Documente plano de recuperação para chave comprometida.

5. Proteja credenciais administrativas e operações de suporte: A maioria dos compromissos de federação envolvem contas de suporte. Use PAM, sessões auditadas, MFA forte e segregação de duties para acessos administrativos. Revise logs de administração regularmente.

6. Use mTLS e tokens vinculados a cliente (DPoP): Para endpoints sensíveis (SCIM, token exchange), utilize mTLS. Para reduzir risco de uso indevido de tokens em clientes não autorizados, avalie DPoP ou mTLS-binded tokens.

7. Implementar políticas de lifetimes curtos e refresh com proteção: Access tokens curtos (ex.: 5–15 minutos) reduz impacto de roubo. Proteja refresh tokens com armazenamento seguro no cliente, técnicas de bound tokens, e use refresh token rotation para impedir uso reiterado de tokens roubados.

8. Auditoria e observabilidade central: Registre eventos de autenticação, emissão de tokens, falhas de validação, sincronia de SCIM e ações administrativas. Correlacione em SIEM com identidade e contexto (device, geolocalização, client_id).

9. Testes de penetração específicos de federação: Inclua no escopo: SAML XML signature wrapping, token replay, redirect URI fuzzing, JWKS poisoning, metadata substitution, SCIM privilege escalation. Testes manuais e automáticos são complementares.

10. Práticas contratuais e due diligence para terceiros: Exija cláusulas de segurança e SLAs em contratos com provedores IdP e provedores de suporte. Revisões de segurança periódicas e direito de auditoria são boas práticas para reduzir risco de cadeia de suprimentos.

Checklists de configuração segura (rápido):

  • Lista branca estrita de redirect_uris; evitar wildcards.
  • Limitar scopes e claims retornadas por default; exigir consent/responsibility para claims adicionais.
  • Habilitar introspecção/revogação de tokens e incluir revogação em processos de offboarding.
  • Enforce PKCE para apps públicos; desabilitar flows inseguros (implicit).
  • Configurar JWKS endpoint com headers de cache apropriados.
  • Pré-aprovar rotinas de rollover de chaves e testar regularmente.
  • Revisar logs de error nas tentativas de validação de assinaturas e notificar quando ocorrem spikes.

Modelos de maturidade e priorização: Nem toda organização começa no mesmo nível. Uma trilha prática de maturidade poderia ser:

  • Nível 1 — Básico: Implementação de SSO simples, checklist de configuração e logs básicos.
  • Nível 2 — Intermediário: SCIM provisioning, MFA forçado, revogação e introspecção habilitada.
  • Nível 3 — Avançado: mTLS, token binding/DPoP, HSM para chaves, SIEM + UEBA para detecção.
  • Nível 4 — Otimizado: políticas adaptativas de acesso, automação de rotação de chaves, auditoria de terceiros e governança centralizada.

Dicas de especialista:

  • Evite reinventar parsers de SAML/JWT: use bibliotecas maduras e atualizadas; parsers customizados frequentemente introduzem vulnerabilidades.
  • Teste o processo de “break the IdP”: realize exercícios de crise onde o IdP é isolado — como você realizará login quando IdP estiver offline? Estratégias offline e emergency admin access são importantes.
  • Não exponha dados sensíveis em tokens: tokens transitam e podem vazar em logs ou referers — mantenha tokens limpos de PII.
  • Use least-privilege para clients: credenciais de cliente (client_secret) devem ter escopo e permissões limitadas e ser rotacionadas regularmente.

Resumo: Seguir as melhores práticas exige disciplina contínua. A federação segura é tanto técnica quanto um problema de governança: políticas, auditorias, contratos e operações definem o sucesso. A próxima seção detalha considerações de compliance que frequentemente determinam requisitos de projeto.

🛡️ Considerações de Segurança e Compliance

Panorama regulatório: Ambientes federados frequentemente transportam dados pessoais e sensíveis (PII) entre domínios. Regulamentos como LGPD (Brasil), GDPR (UE), HIPAA (EUA), PCI-DSS (transações financeiras) impõem requisitos de proteção de dados, controle de acesso e notificações de violação. A federação muda o cenário de responsabilidade: o IdP autentica e emite atributos, o SP processa e armazena dados; acordos contratuais claros (Data Processing Agreements) e medidas técnicas são essenciais.

LGPD e federação: No Brasil, a Lei Geral de Proteção de Dados exige tratamento adequado de dados pessoais, base legal para processamento, minimização e direitos do titular. Em federação, pontos críticos incluem:

  • Base legal: identifique base aplicável (consent, execução de contrato, compliance legal) para processar PII contida em assertions.
  • Transferência internacional: se tokens/atributos circularem via provedores fora do Brasil, verifique mecanismos legais (claúsulas contratuais padrão, decisões de adequação).
  • Consentimento e transparência: quando apropriado, informe os titulares sobre uso de identidades federadas e quais dados serão compartilhados entre partes.
  • Retenção e direitos do titular: documente políticas de retenção e possibilite atendimento de solicitações de acesso/retificação/exclusão quando aplicável.

GDPR: GDPR enfatiza princípios de minimização, accountability e direitos do titular. Em federação, garanta que apenas claims mínimos sejam compartilhados, mantenha logs de tratamento e contratos que clarifiquem papel de Data Controller vs Data Processor. Em caso de violação envolvendo um IdP, coordene notificações e avaliação de impacto de proteção de dados (DPIA).

PCI-DSS e tokens de pagamento: Se tokens ou assertions contêm dados de pagamento (não recomendado), esteja em conformidade com PCI-DSS. O ideal é que tokens nunca transportem PAN; em vez disso, use referencias/tokens PCI-compliant gerenciados por um vault de pagamentos.

HIPAA: para dados de saúde, as federated flows precisam suportar controles de privacidade específicos e acordos de Business Associate. Minimize claims com informações médicas e proteja logs que possam revelar condições sensíveis.

Alinhamento com frameworks e normas:

  • NIST SP 800-63: orientações sobre assurance levels (IAL, AAL, FAL) e como avaliar identidade e autenticação.
  • ISO/IEC 27001: use o framework para governança de segurança da informação; FIM deve ser integrado ao ISMS (inventário de assets, risco, controle de acesso).
  • MITRE ATT&CK: mapear técnicas relevantes (ex.: credential access, valid accounts, token manipulation) e criar detecções correspondentes no SOC.
  • ISA-62443 (para ambientes industriais): federated identities em ICS/OT exigem cuidados adicionais com segmentação, e controles de privilégio mínimo.

Considerações de auditoria e prova de conformidade: Prepare evidências de controles técnicos: logs de emissão de tokens, auditorias de configuração de metadata, provas de rotação de chaves, registros de provisionamento SCIM e revisão de consentimentos. Ferramentas de auditoria automatizada e relatórios periódicos facilitam inspeções e demonstração de compliance.

Proteção de dados em trânsito e em repouso: Certifique-se de que endpoints OIDC/SAML e SCIM usam TLS forte (TLS 1.2/1.3), que chaves privadas estejam dentro de HSM/KMS e que logs contendo tokens sejam mascarados. Revisões regulares de configuração TLS (cipher suites, certificados) são essenciais.

Uso de pseudonimização e minimização: Quando tokens precisam transportar identificadores, prefira pseudonimização (identificadores internos) em vez de PII real. Isso reduz impacto em caso de vazamento e ajuda a cumprir princípios de privacidade.

Responder a incidente envolvendo IdP: Tenha playbooks definidos para cenários onde IdP é comprometido:

  • Revogação imediata de chaves afetadas e publicação de novo metadata.
  • Reconfiguração de SPs críticos para aceitar somente a nova chave após janelas de overlap testadas.
  • Comunicação coordenada com clientes/partners e, quando aplicável, notificações legais de violação (LGPD/GDPR timelines).
  • Forense em logs para identificar alcance do comprometimento (quais tokens emitidos, SPs acessados).

Aspectos contratuais e de SLA: Provedores IdP e terceiros de suporte devem assumir responsabilidades claras: níveis de disponibilidade, responsabilidade em caso de incidentes, testes de conformidade regulares e direito de auditoria. Inclua cláusulas sobre proteção de dados, obrigações de notificação e recuperação.

Resumo: Compliance não é um extra; é core ao design de federação. Integrar requisitos de privacidade e regulatórios ao projeto desde o início evita refatorações caras e reduz risco legal. Políticas técnicas, contratos e provas operacionais são igualmente críticas para demonstrar conformidade.

⚠️ Desafios Comuns e Como Superá-los

Complexidade de metadata e rollover de chaves: Um dos maiores desafios práticos é gerenciar metadata de várias entidades: endpoints, certificados, algoritmos e atributos. Rotação de chave mal coordenada pode causar interrupções. Solução: automatizar fetch de metadata com validação (checksum, assinatura), estabelecer janelas de rollover onde as chaves antigas e novas coexistem e implementar testes automatizados que validem autenticações usando a nova chave antes do cutover.

Problemas de interoperabilidade (SAML vs OIDC): Muitas organizações operam em ambientes heterogêneos com SAML legacy e OIDC moderno. Pontes e brokers resolvem o problema, mas aumentam a superfície de ataque e latência. Abordagem prática: documentar mapping de atributos, exigir transformação de claims explícita no broker e limitar broker a operações de tradução (não armazenar tokens sensíveis). Sempre auditar o broker com mais rigor.

Gerenciamento de confiança em larga escala: Em federações com centenas de parceiros, a escala traz fragilidade: como confiar quando muitos IdPs não seguem padrões de segurança? Solução: classificar IdPs por perfil de risco (níveis de assurance), aplicar políticas diferentes por classe (ex.: exigir MFA para IdPs de menor confiança antes de permitir acesso a assets sensíveis) e aplicar gating incremental para novos partners (honeymoon period com monitoramento intensivo).

Provisionamento inconsistente e conta órfã: O problema clássico é usuário removido no IdP mas ainda com conta ativa no SP. Isso cria risco de acesso indevido. Use SCIM para sincronização automatizada e inclua rotinas periódicas de reconciliamento que verifiquem diferenças entre IdP e SP, com alertas e workflows de desativação automática.

Administração e privilégios de suporte: Contas de helpdesk e suporte com privilégios amplos costumam ser alvo. Proteja estas contas com PAM, sessões enregistradas e aprovação step-up para ações sensíveis. Registre e revise logs administrativos diariamente para detectar padrões atípicos.

Token theft e reutilização: Roubo de tokens é frequentemente explorado por phishing ou exfiltração de logs. Reduza exposição usando tokens curtos, DPoP/mTLS-binding e revogação rápida. Monitore uso de token: se um token é usado em duas localidades geográficas em poucos segundos, é sinal de abuso.

Problemas de experiência do usuário: SSO muitas vezes quebra fluxos UX quando SSO é configurado de forma rígida (ex.: redirecionamento incômodo, problemas com cookies de terceiros em browsers). Mitigue com testes de usabilidade e fallback flows (login local temporário com alavancas de segurança), e adote OIDC Native flows para mobile para reduzir problemas com browser embedded flows.

Attacks específicos e como mitigá-los:

  • XML Signature Wrapping (SAML): Mitigação: usar bibliotecas atualizadas, validar correspondência entre signature reference URI e assertion ID, validar que o elemento assinado é o que será processado.
  • JWKS poisoning: se JWKS endpoint puder ser manipulado, tokens assinados por chaves maliciosas serão aceitos. Use HTTPS com validação estrita de TLS, cache seguro e verifique kid vs alg esperado.
  • Redirect URI manipulation: evitar URIs dinâmicas; exigir correspondência exata na whitelist e usar state para correlacionar requests.
  • Consent phishing (OAuth): reduzir scopes, exigir verificação de aplicação (app verification) e educar usuários sobre consent screens.

Estratégias de troubleshooting:

  • Falha de SSO intermitente: verifique validade e rotação de certificados, horário do sistema (NTP), e logs do IdP e SP para erro de assinatura.
  • Rejeição de token por audience: confirmar aud/azp e se o cliente está usando the right client_id ou resource identifier.
  • SCIM sync divergente: verificar logs HTTP (401/403), tokens expirados, permissões do client SCIM ou mTLS mal configurado.
  • Logout não propagado: analisar se SP implementa Single Logout (SLO) e se IdP envia logout notifications; SLO frequentemente apresenta problemas em ambientes com múltiplos SPs.

Operações de segurança para reduzir fricção:

  • Automatize testes de integração SAML/OIDC como parte do CI/CD dos SPs (mock IdP ou uso de test realms).
  • Implemente health checks para metadata discovery e JWKS fetching com alertas para falha.
  • Documente runbooks detalhados para cenários de falha: rollover, revogação e compromissos.

Resumo: Os desafios comuns da federação são resolvíveis com automação, processos e validações contínuas. A chave é antecipar falhas operacionais com testes e roteiros claros, reduzindo dependência de procedimentos manuais propensos a erro.

📊 Ferramentas e Tecnologias

Visão geral: O ecossistema de ferramentas para identidade federada é grande. Abaixo listo categorias, ferramentas representativas, vantagens e pontos de atenção práticos.

Identity Providers (IdP):

  • Azure Active Directory (Microsoft): Amplamente adotado em empresas que já usam Microsoft 365; oferece SAML/OIDC/OAuth, integração com on-prem AD, Conditional Access e Identity Protection. Vantagens: integração profunda com stack Microsoft; pontos de atenção: custos e lock-in.
  • Okta: IdP SaaS focado em enterprise — excelente console, catálogo de apps, e suporte a padrões. Vantagens: maturidade, documentação; pontos de atenção: custo e considerações de cadeia de suprimento (suporte terceirizado).
  • Keycloak: Open source, flexível, suporta SAML/OIDC, brokering e SCIM. Vantagens: custo e customização; pontos de atenção: necessidade de expertise para operar em produção (HA, HSM, backups).
  • Ping Identity, ForgeRock: soluções enterprise com funcionalidades avançadas (authz, adaptive auth, API gateways). Vantagens: recursos corporativos; pontos de atenção: custo e complexidade.

Identity Brokers e Gateways:

  • Auth0 (agora parte da Okta em alguns contextos): Broker SaaS, facilita integração com múltiplos IdPs; ideal para time de produto que quer gerenciar auth sem construir IdP.
  • Keycloak Broker: permite conectar a múltiplos IdPs e expor uma interface unificada para SPs.

SSO e middleware:

  • Shibboleth: tradicional em ambientes acadêmicos com SAML robusto.
  • SimpleSAMLphp: alternativa leve em PHP para SAML IdP/SP.
  • mod_auth_mellon (Apache): módulo SAML para integração de aplicações clássicas.

Provisionamento e user lifecycle:

  • SCIM endpoints (implementados por IdPs): Azure AD, Okta, Keycloak têm suporte em maior ou menor grau para SCIM 2.0.
  • Identity Governance & Administration (IGA): SailPoint, Saviynt: focam governança de acesso, revisão de entitlements e certificação de acesso.

Token management e API gateways:

  • Kong, Apigee, AWS API Gateway: podem atuar como resource servers, validando tokens, fazendo rate limiting e mTLS com backends.
  • OAuth libraries e frameworks: spring-security (Java), oidc-client-js, python-oauthlib — usar bibliotecas parceiras consolida segurança.

Ferramentas de segurança e observabilidade:

  • SIEM (Splunk, ELK, Microsoft Sentinel): ingestão e correlação de logs IdP/SP para detecção de anomalias.
  • UEBA / SOAR: para encaixar políticas adaptativas e automação de resposta (isolar tokens, revogar client secrets).
  • Ferramentas de pentest especializadas: Burp Suite, SAML Raider (plugin Burp), OAuth2 testing kits para simular abuso.

Comparações rápidas (prós/contrás):

  • Azure AD: prós: integração Microsoft, Conditional Access; contras: locked-in, custo.
  • Okta: prós: facilidade de uso, catálogo de apps; contras: custos e necessidade de auditoria dos processos de suporte.
  • Keycloak: prós: controle total, sem licença; contras: responsabilidade operacional e necessidade de expertise.
  • Auth0: prós: velocidade de integração; contras: complexidade de customização em larga escala e custos.

Critérios de seleção: Ao escolher tecnologias, priorize:

  • Conformidade com padrões (SAML, OIDC, SCIM).
  • Suporte nativo a MFA e autenticação adaptativa.
  • Opções de deployment (cloud vs on-premise) conforme requisitos de dados.
  • Capacidade de integração com SIEM e IGA.
  • Modelos de alta disponibilidade e suporte a HSM/KMS.

Resumo: Selecionar as ferramentas corretas depende do contexto: maturidade da organização, requisitos de conformidade e capacidade operacional. Ferramentas abertas oferecem controle, enquanto SaaS acelera time-to-market. Seja qual for a escolha, assegurar automação e observabilidade é obrigatório.

🚀 Tendências Futuras e Evolução

Identidade como perímetro: o conceito “identity is the new perimeter” continuará a se consolidar. Em um mundo distribuído de nuvens, microservices e terceirização, identidade passa a ser o principal controle para políticas Zero Trust. Isso significa integrar federação com políticas de autorização contínua (continuous authorization), context-aware access e micro-segmentation.

Passwordless e FIDO2/WebAuthn: A adoção de autenticação sem senha via FIDO2 e WebAuthn tende a reduzir o ataque baseado em credenciais. Em federações, combinar IdPs que suportam FIDO2 com OIDC melhora assurance e reduz risco de phishing. Organizações que implementam FIDO2 como mecanismo primário de autenticação reduziriam impacto de ataques baseados em credenciais roubadas.

Identidade descentralizada (DID) e Verifiable Credentials: modelos descentralizados prometem reduzir dependência de IdPs centralizados. Verifiable Credentials (VC) e DIDs (W3C specs) permitem que identidades e atributos sejam apresentados de forma verificável sem recorrer sempre a um IdP — útil para cenários cross-border e privacy-preserving. No entanto, padronização, maturidade e governança permanecem desafios para adoção em larga escala.

Token binding e técnicas anti-theft: Expectativa de adoção de mecanismos como DPoP e OAuth token binding para impedir reutilização de tokens roubados. Também veremos maior uso de mTLS em exchanges de tokens entre serviços.

Token exchange e delegação fina: RFC 8693 (OAuth 2.0 Token Exchange) traz maior sofisticação para cenários onde tokens precisam ser trocados entre serviços com escopos específicos. Isso será crucial em ambientes microservices com políticas de least privilege aplicado por token intermediário.

Machine identity e identidade de serviços: com a proliferação de containers e serviços automatizados, a gestão de identidade para máquinas ganhará foco. Soluções que automatizam issuance e rotação de certificados (SPIFFE/SPIRE), tokens mTLS e X.509 automatizado serão demandadas para reduzir fricção operacional e risco humano.

Privacidade e selective disclosure: técnicas de provas de conhecimento zero (ZKP) e selective disclosure permitem provar atributos sem revelar PII. Essa abordagem tem potencial para transformar como claims são compartilhados em federações, alinhando-se a princípios de minimização de dados.

IA e autenticação adaptativa: soluções de adaptive authentication usarão sinais avançados (behavioral biometrics, device posture, network telemetry) para ajustar requisitos de MFA e step-up. Importante: cuidado para evitar decisões automáticas sem explicabilidade e governança.

Convergência com DevSecOps: integração de práticas de federação no pipeline de CI/CD: provisionamento automatizado de realms, testes automatizados de SAML/OIDC, rotação de chaves como parte do deployment pipeline. Isso reduz erros manuais e aumenta resiliência.

Regulação e sovereignty: aumento de regulações quanto a soberania de dados e localização de identidades pode levar a arquiteturas híbridas regionais (IdP regionais interoperando via padrões). Isso exigirá capacidades de federation trust entre domínios jurisdicionais distintos com garantias legais e técnicas rígidas.

Resumo: A evolução da federação seguirá caminhos de maior segurança (passwordless, token binding), maior privacidade (selective disclosure) e descentralização (DIDs), enquanto as organizações serão pressionadas a integrar identidade por design em suas arquiteturas e operações. Preparar-se agora reduz custos futuros de migração e garante vantagem competitiva.

💬 Considerações Finais

Identidade federada é uma ferramenta poderosa: ela simplifica a experiência do usuário, centraliza controles e habilita ecossistemas colaborativos. Mas essa mesma centralidade exige disciplina operacional, engenharia cuidadosa e governança robusta. Como vimos, os maiores problemas não são conceitos teóricos — são erros de configuração, automação insuficiente, políticas de provisonamento quebradas e confiança mal distribuída a terceiros.

Se há uma máxima prática que eu deixo aqui, é esta: trate sua federação como infraestrutura crítica. Modele acordos legais com parceiros, automatize provisionamento e rotação de chaves, implemente autenticação forte com MFA e token binding, e construa observabilidade que permita detectar abuso em tempo real. Faça exercícios de crise onde o IdP é isolado, teste rollovers de chaves e mantenha playbooks claros. Sem isso, a federação transforma-se num “efeito dominó” que pode derrubar múltiplos serviços com um único compromisso.

Finalmente, olhe para o futuro com pragmatismo: tecnologias como FIDO2, DIDs e ZK-proofs são promissoras, mas não substituem a necessidade de engenharia e processos robustos. A federação é um problema socio-técnico — a tecnologia resolve parte, mas políticas, contratos e cultura de segurança completam a equação. Comece pequeno, automatize tudo o que puder, audite constantemente e aprenda com casos reais. Segurança não é uma linha de chegada; é um hábito contínuo. E no universo das identidades federadas, esse hábito é o que separa a robustez da fragilidade.

📚 Referências

Você pode gostar...

5 Resultados

  1. Elena Yamada disse:

    Caramba, esse tutorial veio na hora certa! Vou usar as informações para implementar a identidade federada no meu projeto de integração de sistemas. Com certeza vai me poupar um tempo enorme de pesquisa e testes. Valeu demais pela dica!

  2. Renata disse:

    Valeu por esse tutorial sobre Identidade Federada! Vou usar essas informações pra implementar no meu sistema de login único, facilitando a vida dos usuários e melhorando a segurança. Agora sim, vai ficar top!

  3. Pedro Ortiz disse:

    Estou muito animado para testar as instruções deste tutorial sobre Identidade Federada! Já li todo o conteúdo e estou impressionado com a clareza e detalhamento das explicações. Estou ansioso para ver na prática como a implementação da Identidade Federada pode trazer benefícios para a minha empresa. Vou seguir passo a passo as orientações e tenho certeza de que será uma experiência enriquecedora. Obrigado por compartilhar esse conhecimento tão valioso!

  4. Show esse tutorial sobre Identidade Federada! Vou usar essas informações pra implementar autenticação única no meu sistema de login. Valeu pela dica!

  5. Estava com muitas dúvidas sobre como implementar a Identidade Federada na minha empresa, mas esse tutorial me deu todas as informações que eu precisava. Agora consigo finalmente começar a configurar o sistema de autenticação único. Vou seguir todos os passos e torcer para que funcione sem problemas. Valeu pela ajuda!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *