Pular para o conteúdo principal

Keycloak

gitlab

Repositório Oficial Github

O Keycloak é uma solução Open Source de Gerenciamento de Identidade e Acesso (IAM) robusta e altamente configurável, desenvolvida pela Red Hat (originalmente pela comunidade JBoss). Ele visa simplificar a segurança de aplicações e serviços, permitindo que desenvolvedores se concentrem na lógica de negócios em vez de reimplementar complexos mecanismos de autenticação e autorização.

O que é Gerenciamento de Identidade e Acesso (IAM)?

Antes de mergulhar no Keycloak, é crucial entender o conceito de IAM. IAM é o framework de políticas e tecnologias que garante que:

  1. Identidades corretas: Usuários, serviços ou dispositivos são quem afirmam ser (autenticação). É a principal função do Keycloak, garantir quem é o usuário.
  2. Acesso apropriado: Essas identidades têm as permissões adequadas para acessar recursos específicos (autorização).
  3. Gerenciamento eficiente: As identidades e seus acessos são gerenciados de forma centralizada e segura ao longo de seu ciclo de vida.

Então, Keycloak fica na linha da autenticação com capacidade de autorização — mas não é um IAM manager.

Conceitos importantes para ter em mente:

  • Workforce IAM (Gerenciamento de Identidade e Acesso para a Força de Trabalho):
    • Quem são os usuários? Funcionários, contratados, parceiros de negócios – basicamente, qualquer pessoa que precise de acesso aos sistemas internos da sua empresa para realizar seu trabalho.
    • O que eles acessam? Aplicações internas, sistemas de RH, e-mail corporativo, VPN, ferramentas de desenvolvimento, e também aplicações SaaS que a empresa usa (como Salesforce, Office 365, Slack, Jira, etc.).
    • Objetivo principal: Segurança corporativa, produtividade dos funcionários, conformidade (garantir que as pessoas certas tenham o acesso certo aos recursos certos), gerenciamento do ciclo de vida da identidade (onboarding, offboarding, promoções).
    • Exemplo: Um funcionário do marketing usando seu login corporativo para acessar o Salesforce (o CRM da empresa), o sistema de e-mail e a intranet.
    • Soluções focadas aqui: Okta (tradicionalmente muito forte aqui), Azure AD (para empresas no ecossistema Microsoft), OneLogin, e o próprio Keycloak pode ser usado para isso.
  • CIAM (Customer Identity and Access Management - Gerenciamento de Identidade e Acesso do Cliente):
    • Quem são os usuários? Clientes, consumidores, usuários finais dos seus produtos ou serviços digitais.
    • O que eles acessam? Seu site público, sua loja online, seu aplicativo móvel, seu portal do cliente, fóruns da comunidade.
    • Objetivo principal: Experiência do usuário fluida (registro e login fáceis), escalabilidade para milhões de usuários, personalização, coleta de dados para marketing (com consentimento), segurança da conta do cliente.
    • Exemplo: Um cliente criando uma conta no seu e-commerce para fazer uma compra, ou fazendo login no seu aplicativo de streaming de vídeo. Soluções focadas aqui: Auth0 (muito forte em CIAM), Azure AD B2C, Amazon Cognito, Firebase Authentication, e o Keycloak também é amplamente utilizado para CIAM.

Por que usar Keycloak? (Principais Problemas que Resolve)

Em ambientes com múltiplas aplicações e serviços, gerenciar identidades e acessos pode se tornar um pesadelo:

  • Múltiplos Logins: Usuários precisam de credenciais diferentes para cada aplicação, resultando em má experiência do usuário e fadiga de senhas.
  • Lógica de Segurança Duplicada: Cada aplicação reimplementa fluxos de login, registro, recuperação de senha, gerenciamento de sessão, etc., aumentando o esforço de desenvolvimento e o risco de vulnerabilidades.
  • Gerenciamento Descentralizado de Usuários: Dificuldade em manter usuários e suas permissões sincronizados entre sistemas, especialmente no que diz respeito aos grupos e funções atribuídas a cada usuário, que são usadas para controle de acesso.
  • Inconsistência de Segurança: Diferentes implementações podem levar a diferentes níveis de segurança.
  • Integração Complexa: Adicionar login social ou integração com provedores de identidade corporativos (como LDAP/AD) é complexo.
  • Segurança de APIs: Proteger APIs de forma consistente é um desafio.

O Keycloak resolve esses problemas fornecendo uma plataforma centralizada para:

  • Single Sign-On (SSO) e Single Sign-Out (SLO): Autentique-se uma vez e acesse múltiplas aplicações.
  • Gerenciamento de Identidade: Crie e gerencie usuários, seus atributos e credenciais.
  • Identity Brokering: Integre-se com provedores de identidade externos (Google, Facebook, GitHub, SAML, OIDC).
  • User Federation: Sincronize usuários de armazenamentos existentes (LDAP, Active Directory).
  • Segurança de APIs: Proteja suas APIs usando OAuth 2.0.
  • Autorização Fina: Permite definir políticas de acesso granulares dentro do ecossistema gerenciado, com base em roles, grupos e atributos, ideal para controles simples a intermediários, mas não é o ideal para políticas muito complexas, dinâmicas ou que envolvam vários sistemas diferentes pois não é um motor de política dedicado.
    • Na prática, muitas equipes usam o Keycloak só pra autenticação + roles básicas, e delegam a autorização fina para sistemas externos.
  • Suporte a Padrões: Implementa protocolos padrão da indústria como OpenID Connect (OIDC), OAuth 2.0 e SAML 2.0.

Alternativas ao Keycloak

O Keycloak é uma solução de Gerenciamento de Identidade e Acesso (IAM) open-source robusta e muito popular. Para entender o quanto ele é bom ou não é sempre bom compará-lo com outras ferramentas ou uma outra stack de tecnologia.

Seus concorrentes podem ser divididos em algumas categorias:

Soluções Open Source / Auto-hospedadas (Self-Hosted):**

Ory Stack (Kratos, Hydra, Keto, Oathkeeper):

A grande vantagem do Ory Stack sobre o Keycloak reside em:

  1. Controle Total sobre a Experiência do Usuário (Headless):

    • Keycloak: Te dá páginas de login, registro, etc., prontas. Você pode customizá-las (temas), mas está fundamentalmente trabalhando dentro da estrutura que o Keycloak oferece. Para mudanças radicais na UI ou fluxos muito específicos, pode ser limitante ou exigir um esforço considerável em Java (SPIs).
    • Ory Stack (Kratos): Não te dá NENHUMA interface de usuário pronta. Ele só te dá APIs. Você constrói sua tela de login, registro, perfil, etc., do zero, exatamente como quiser, usando a tecnologia de front-end que preferir (React, Vue, Angular, etc.), e essas telas chamam as APIs do Kratos.
    • Vantagem do Ory aqui: Liberdade absoluta para criar uma experiência de usuário 100% integrada à sua marca e aos seus fluxos, sem as amarras de uma UI pré-definida. Ideal se você tem uma equipe de front-end forte e quer que a identidade seja uma parte imperceptível e fluida da sua aplicação.
  2. Modularidade e Arquitetura para Microsserviços:

    • Keycloak: É uma aplicação mais monolítica (embora possa ser escalada). Se você só precisa de um servidor OAuth2, por exemplo, você ainda roda "todo o Keycloak".
    • Ory Stack: É um conjunto de ferramentas especializadas:
      • Precisa de gerenciamento de usuários (login, registro)? Use Kratos.
      • Precisa só de um servidor OAuth2/OIDC para proteger APIs? Use Hydra.
      • Precisa de um sistema de permissões super granular e desacoplado? Use Keto.
      • Precisa de um proxy para validar tokens na borda? Use Oathkeeper.
    • Vantagem do Ory aqui: Você só implanta e escala o que precisa. Cada componente é independente, escrito em Go (geralmente mais leve em recursos que Java para o mesmo nível de concorrência), e se encaixa naturalmente em arquiteturas de microsserviços onde cada serviço tem uma responsabilidade clara.
  3. Autorização Desacoplada e Poderosa (com Keto):

    • Keycloak: Oferece um bom sistema de autorização baseado em RBAC (Role-Based Access Control) e pode ser estendido.
    • Ory Keto: É um servidor de permissões dedicado, inspirado no Zanzibar do Google. Ele permite modelar relações complexas e consultas de permissão ("O usuário X pode fazer a ação Y no recurso Z?"), de forma centralizada e desacoplada das suas aplicações.
    • Vantagem do Ory aqui: Se você tem requisitos de autorização muito complexos, dinâmicos ou que precisam ser gerenciados centralmente para múltiplos microsserviços, o Keto é uma ferramenta muito poderosa e especializada que o Keycloak não oferece de forma nativa com o mesmo nível de sofisticação.

Quando o Keycloak é melhor então?

  • Preciso de uma solução IAM completa e robusta "out-of-the-box" com interfaces de administração e de usuário prontas.
  • O tempo para colocar no ar é crítico e não quero (ou não tenho recursos para) construir todas as UIs de identidade do zero.
  • A equipe tem mais familiaridade com Java e o ecossistema da JVM.
  • Preciso de funcionalidades como federação SAML/OIDC com muitos provedores empresariais de forma simples.
  • A customização da UI via temas é suficiente para as necessidades da marca.
  • O projeto é um monólito ou um número menor de serviços onde a natureza mais integrada do Keycloak não é um problema.
  • Preciso de um ecossistema maduro com vasta documentação, comunidade e muitos tutoriais.

Keycloak: É como comprar um carro completo de fábrica. Ele já vem com tudo que você precisa para dirigir, tem um painel, bancos, etc. Você pode trocar a cor, as rodas, o sistema de som (customizar), mas a estrutura básica do carro é aquela. É ótimo para a maioria das pessoas que querem um carro funcional rapidamente.

Quando usaria o Ory Stack então?

  • Estou construindo um produto onde a experiência do usuário de identidade precisa ser 100% customizada e integrada (sem cara de "página de login padrão").
  • A arquitetura é baseada em microsserviços e quero que cada componente de IAM (identidade, OAuth2, permissões) seja um serviço independente, escalável e leve (Go).
  • Tenho uma equipe de desenvolvimento (especialmente front-end) capaz e disposta a construir as UIs de identidade consumindo APIs.
  • Preciso de um sistema de autorização (permissões) muito granular, desacoplado e centralizado (Ory Keto).
  • Quero a flexibilidade de usar apenas as partes do IAM que eu preciso (ex: só o Ory Hydra como servidor OAuth2).
  • A equipe tem preferência ou experiência com Go.
  • Estou buscando uma abordagem mais "moderna" e "cloud-native" para IAM, mesmo que isso signifique mais trabalho de desenvolvimento inicial na UI.

Ory Stack: É como receber um motor de alta performance (Kratos para identidade, Hydra para OAuth2), um chassi leve (Oathkeeper), e um sistema de navegação e controle super avançado (Keto). Você precisa construir a carroceria, o interior, o painel do zero, exatamente como você sonha. Dá mais trabalho, mas o resultado final é totalmente seu e adaptado às suas necessidades mais específicas.


Gluu Server:

O Gluu Server é uma plataforma IAM open source, conhecida principalmente pelo seu forte suporte ao padrão UMA (User-Managed Access), ideal para dar aos usuários controle granular sobre o compartilhamento de seus dados. No entanto, na prática, para a maioria dos cenários, o Gluu Server não apresenta vantagens significativas que justifiquem escolhê-lo em vez do Keycloak. O Keycloak geralmente leva a melhor devido à sua comunidade muito maior, maior facilidade de uso percebida para tarefas comuns, e um ecossistema e desenvolvimento mais vibrantes. Portanto, a menos que o UMA seja um diferencial crítico e insubstituível para seu projeto, o Keycloak tende a ser a escolha mais pragmática e difundida para uma solução IAM open source completa.

WSO2 Identity Server:

Outra robusta plataforma IAM open source, construída em Java. Ele se destaca em cenários de integração empresarial complexa, especialmente se você já utiliza outros produtos WSO2 (como o API Manager). Além disso, oferece suporte nativo e forte a XACML para controle de acesso fino baseado em políticas, um diferencial para requisitos de autorização muito específicos. No entanto, para a maioria das necessidades de IAM, o WSO2 Identity Server pode ser considerado mais complexo e "pesado" que o Keycloak.

O Keycloak, com sua comunidade maior, documentação mais acessível e uma curva de aprendizado geralmente mais suave para funcionalidades comuns, tende a ser uma escolha mais ágil. A configuração e a profundidade de recursos do WSO2 IS podem ser um exagero se suas necessidades são mais diretas (como SSO, gerenciamento básico de usuários e proteção de APIs com OIDC).

A combinação de Keycloak + OPA (Open Policy Agent) e Ory Stack são frequentemente considerados uma abordagem mais moderna, flexível e, em muitos aspectos, mais poderosa para autorização do que o motor XACML embutido no WSO2 Identity Server.

Dex:

Aqui a diferença é bastante clara porque eles têm propósitos fundamentalmente distintos, embora ambos operem no espaço de identidade e usem OpenID Connect (OIDC). O Dex é primariamente um provedor de identidade OpenID Connect (OIDC) que atua como um "conector" ou "broker" para outros provedores de identidade (IdPs).

  • Função Principal: Ele permite que aplicações que só entendem OIDC (como o Kubernetes) se autentiquem através de uma variedade de backends de identidade que podem não falar OIDC nativamente ou que você queira federar.
  • Backends Suportados (Conectores): LDAP, SAML 2.0, GitHub, Google, Microsoft, etc.
  • Não faz (ou faz muito pouco):
    • Não gerencia usuários diretamente: Dex não tem seu próprio banco de dados de usuários para criar, atualizar ou deletar contas. Ele delega isso aos IdPs upstream.
    • Não tem UI de administração robusta: A configuração é feita principalmente via arquivos YAML.
    • Não tem funcionalidades avançadas de IAM: Como autorização fina, fluxos de autenticação complexos, gerenciamento de sessão avançado, portais de usuário, etc.
    • Caso de Uso Típico: Permitir que usuários se autentiquem no Kubernetes (ou outras aplicações OIDC-compatíveis) usando credenciais do Active Directory (via LDAP), de um provedor SAML corporativo, ou contas do GitHub.

Casdoor:

O Casdoor é um player mais novo no cenário de IAM open source, mas que tem chamado a atenção por sua abordagem e foco. Uma plataforma de Gerenciamento de Identidade e Acesso (IAM) open source, construída em Go (menor consumo de recursos e implantação mais leve) e com um forte foco na experiência do desenvolvedor e do usuário, apresentando uma interface (UI) de usuário moderna. Tenta oferecer uma solução IAM completa, mas com uma ênfase na facilidade de uso, configuração simplificada e uma UI mais amigável tanto para administradores quanto para usuários finais.

  • Funcionalidades:**
    • Suporte a OIDC, OAuth 2.0, SAML.
    • Gerenciamento de usuários, organizações, aplicações.
    • Login social.
    • MFA.
    • Extensibilidade através de "providers" e "models".
    • Tem um foco em ser "cas" (Central Authentication Service), daí o nome.

Casdoor é uma alternativa promissora e interessante ao Keycloak, mas será que é o momento? O Casdoor é um para se observar, pois pode se tornar um concorrente mais forte à medida que amadurece.

  1. Maturidade e Comunidade: Muito mais novo. Embora o desenvolvimento seja ativo e a comunidade esteja crescendo, ainda não se compara em tamanho, maturidade e quantidade de recursos disponíveis ao Keycloak. Isso pode significar menos soluções prontas para problemas específicos e uma base de conhecimento menor.

  2. Linguagem e Recursos:

    • Keycloak: Java (JVM). Pode ser mais intensivo em recursos (memória, CPU) especialmente na inicialização, embora o Keycloak.X (Quarkus) tenha melhorado isso significativamente.
    • Casdoor: Go. Geralmente, aplicações em Go são conhecidas por serem mais leves em recursos e terem tempos de inicialização mais rápidos. Isso pode ser uma vantagem em ambientes com restrições de recursos ou para escalabilidade mais eficiente em certos cenários.
  3. Interface de Usuário (UI) e Experiência do Usuário (UX):

    • Keycloak: A UI do Keycloak é funcional e poderosa, mas às vezes criticada por não ser a mais moderna ou intuitiva, especialmente para administradores menos técnicos. A customização da UI do usuário final é feita por temas.
    • Casdoor: Este é um dos principais apelos do Casdoor. Sua UI é frequentemente elogiada por ser mais moderna, limpa e fácil de usar, tanto para administradores quanto para os fluxos de usuário final (login, registro).
  4. Facilidade de Configuração e Uso Inicial:

    • Keycloak: Pode ter uma curva de aprendizado para explorar todas as suas funcionalidades avançadas. A configuração inicial para casos simples é relativamente direta.
    • Casdoor: Busca simplificar a configuração e o processo de "começar a usar", com uma abordagem mais amigável para desenvolvedores que talvez não sejam especialistas profundos em IAM.
  5. Conjunto de Funcionalidades e Extensibilidade:

    • Keycloak: Possui um conjunto de funcionalidades de IAM extremamente abrangente, cobrindo quase todos os cenários imagináveis. Sua extensibilidade via SPIs é muito poderosa.
    • Casdoor: Oferece as funcionalidades essenciais de IAM, mas pode não ter a mesma profundidade ou amplitude de funcionalidades avançadas ou de nicho que o Keycloak acumulou ao longo dos anos. Sua extensibilidade está em desenvolvimento.
  6. Ecossistema e Integrações:

    • Keycloak: Beneficia-se de um vasto ecossistema de integrações, adaptadores para diversas linguagens e frameworks, e suporte de terceiros.
    • Casdoor: Por ser mais novo, seu ecossistema de integrações e ferramentas de suporte ainda está em construção.

Soluções de Identidade como Serviço (IDaaS - Cloud-Based):**

Auth0 (agora parte da Okta):

CIAM (Customer Identity and Access Management), com uma ênfase gigantesca na experiência do desenvolvedor (DX), facilidade de integração e flexibilidade através de "Rules" e "Actions" (código JavaScript customizado que roda na plataforma). Você integra suas aplicações com o Auth0 usando SDKs e APIs. A autenticação e o gerenciamento de usuários acontecem nos servidores do Auth0.

  • Facilidade de Uso e Integração Rápida: SDKs excelentes para diversas linguagens e frameworks, documentação abundante e voltada para desenvolvedores. É muito rápido colocar para funcionar.
  • "Actions" (anteriormente "Rules" e "Hooks"): Permitem customizar extensivamente os fluxos de autenticação e registro com código JavaScript diretamente na plataforma, sem precisar modificar o "core" da aplicação. Isso é extremamente poderoso para lógicas de negócio específicas.
  • Login Universal: Uma página de login centralizada e customizável que pode ser facilmente integrada.
  • Login Social e Empresarial: Conectores prontos para dezenas de provedores sociais (Google, Facebook, etc.) e empresariais (SAML, ADFS, etc.).
  • Segurança e Escalabilidade Gerenciadas: Você não se preocupa com a infraestrutura, patches de segurança, escalabilidade – o Auth0 cuida disso.
  • Recursos Avançados de CIAM: Detecção de brechas de senha, MFA adaptativo, gerenciamento de consentimento.

O que o Auth0 faria que o Keycloak não faz (ou faz com mais esforço)?

  1. Rapidez Extrema para Começar e Integrar: A experiência "out-of-the-box" do Auth0, com SDKs e documentação focada no desenvolvedor, é imbatível para prototipagem rápida e lançamento de produtos.
  2. Customização de Fluxos com JavaScript ("Actions"): A capacidade de injetar lógica JavaScript customizada nos fluxos de autenticação de forma tão simples e poderosa é um grande diferencial. No Keycloak, customizações similares exigiriam escrever e implantar SPIs em Java, o que é mais complexo.
  3. Infraestrutura Gerenciada: Não se preocupar com a escalabilidade, disponibilidade e segurança da infraestrutura de identidade é uma vantagem enorme para muitas equipes, permitindo que foquem no seu produto principal.
  4. Funcionalidades de CIAM Avançadas "Prontas para Usar": Coisas como detecção de senhas comprometidas, MFA adaptativo e análises de segurança são oferecidas como parte do serviço. No Keycloak, algumas dessas exigiriam customização ou integração com ferramentas externas.

Quando escolher Auth0:

  • Quando não tem tempo.
  • Quando não tem equipe de segurança.
  • O custo da assinatura se encaixa no seu orçamento e modelo de negócio (especialmente para CIAM, onde o custo por usuário pode ser baixo).
  • Quando se quer terceirizar a responsabilidade pelos dados dos usuários. Aqui talvez pode ser um dos fatores que mais pega para a maioria das empresas.

Quando escolher Keycloak:

  • Controle total sobre os dados dos usuários e a infraestrutura é um requisito não negociável** (regulamentações, políticas de segurança).
  • Custo é uma grande preocupação** e você tem a capacidade de gerenciar a infraestrutura (o software Keycloak é gratuito).
  • Você precisa de uma solução IAM que possa rodar em ambientes offline ou "air-gapped".
  • Você precisa de customizações muito profundas no core da plataforma que só são possíveis com acesso ao código-fonte e SPIs.
  • Evitar "vendor lock-in" é uma prioridade alta.

Vale lembrar que o foto do Auth0 não é workforce, apesar de ser possível também utilizar, mas para isso temos o OKTA.

Okta:

O Okta já tem todo o seu diferencial baseado no workforce e por isso comprou o Auth0 para resolver suas falhas com o CIAM. Para workforce hoje é o lider de mercado e ponto final.

  • Pontos Fortes:
    • Catálogo de Integrações Imbatível: Milhares de conectores pré-construídos para aplicações SaaS populares (Office 365, Salesforce, G Suite, Slack, Zoom, Workday, etc.) e suporte a padrões como SAML, OIDC, SCIM.
    • Single Sign-On (SSO) Robusto: Experiência de SSO fluida para usuários finais.
    • Gerenciamento do Ciclo de Vida da Identidade (LCM): Automatiza o provisionamento e desprovisionamento de usuários em aplicações conectadas, geralmente integrado a sistemas de RH.
    • Autenticação Multifator (MFA) Avançada: Diversas opções de MFA, incluindo Okta Verify (push), WebAuthn, e políticas de MFA adaptativas.
    • Universal Directory: Um diretório na nuvem flexível para gerenciar usuários e grupos.
    • Okta Workflows: Automação de processos de identidade e TI sem código ou com pouco código.
    • Segurança e Conformidade: Forte foco em segurança, relatórios de auditoria, e ajuda as empresas a atenderem a requisitos de conformidade.
    • Facilidade de Administração (para TI): Interface de administração poderosa e relativamente intuitiva para gerenciar um grande número de usuários e aplicações.

O que o Okta (Workforce) faria que o Keycloak não faz (ou faz com muito mais esforço)?

  1. Vasta Gama de Integrações Prontas para Aplicações SaaS Corporativas: Este é o maior diferencial. Configurar SSO e provisionamento para centenas de apps como Salesforce, Workday, Office 365 é significativamente mais simples e rápido com o catálogo da Okta. No Keycloak, você pode precisar configurar SAML/OIDC manualmente para cada um ou depender de conectores da comunidade, se existirem.
  2. Gerenciamento do Ciclo de Vida da Identidade (LCM) Profundamente Integrado: A capacidade da Okta de se integrar com sistemas de RH (como Workday) para automatizar o "joiner-mover-leaver" (entrada, movimentação e saída de funcionários) de forma robusta é uma grande vantagem para empresas.
  3. Okta Workflows para Automação: Uma ferramenta poderosa para criar automações complexas de processos de identidade e TI sem precisar escrever muito código. Keycloak exigiria desenvolvimento customizado para funcionalidades equivalentes.
  4. Foco e Recursos Especializados em Workforce IAM: A plataforma Okta foi construída do zero com as necessidades de Workforce IAM em mente, incluindo relatórios de conformidade, políticas de segurança granulares para acesso corporativo, etc.
  5. Menor Overhead de Gerenciamento de Infraestrutura para TI: Para o departamento de TI, não ter que se preocupar com a manutenção, patching e escalabilidade da plataforma de identidade é um grande alívio, mas você paga por isso.

Quando escolher Okta (Workforce):

  • Sua principal necessidade é gerenciar o acesso de funcionários a um grande número de aplicações SaaS e internas.
  • Automatizar o ciclo de vida da identidade (provisionamento/desprovisionamento) integrado com sistemas de RH é crucial.
  • Você precisa de um catálogo extenso de integrações prontas para economizar tempo e esforço.
  • A empresa prefere um modelo SaaS para reduzir o ônus de gerenciamento de infraestrutura e está disposta a pagar pela assinatura.
  • Segurança e conformidade para acesso de funcionários são prioridades máximas.

Quando escolher Keycloak:

  • Você precisa de uma solução tanto para CIAM quanto para Workforce IAM e quer uma plataforma unificada sob seu controle.
  • A necessidade de integrações com aplicações SaaS não é tão vasta, ou você tem capacidade para configurar SAML/OIDC manualmente.
  • Evitar "vendor lock-in" e ter a flexibilidade do código aberto são importantes.

A maioria das empresas que eu trabalhei usam o Okta, por incrível que pareça, principalmente pelo fator mencionado acima sobre RH. Em um ambiente onde as mudanças de pessoal são constantes, a necessidade de manter e adaptar essas integrações customizadas poderia se tornar um fardo considerável.

Existem outras soluções como por exemplo o OneLogin, Azure AD, etc.

Azure Active Directory B2C (Azure AD B2C), Amazon Cognito e Google Cloud Identity Platform (Firebase Authentication)

Todos esses são focados em CIAM e não em workforce. Todos esses são bem integrados principalmente com os recursos de suas próprias clouds. O controle de todos eles é através do console de suas respectivas clouds.

  • São serviços gerenciados pelos respectivos provedores de nuvem (Microsoft, AWS, Google). Você não gerencia a infraestrutura, escalabilidade, patches de segurança do serviço de identidade em si.
  • Foco Principal em CIAM e foram projetados primariamente para gerenciar a identidade de clientes/usuários finais de suas aplicações web e móveis.
  • Modelo de custo geralmente baseados no número de Usuários Ativos Mensais (MAUs) e, às vezes, no uso de funcionalidades premium (como MFA avançado).
  • Integram-se nativa e profundamente com outros serviços dentro de seus respectivos ecossistemas de nuvem (Azure, AWS, Google Cloud/Firebase). Keycloak: Pode ser hospedado em qualquer nuvem, mas a integração com serviços específicos da nuvem não é tão "nativa" e pronta como nos serviços da própria nuvem.

Em vários casos empresas preferem focar o workforce com o OKTA e utilizar CIAM de suas respectivas clouds. O problema vem quando temos mais de uma cloud e o CIAM tem que dar conta de tudo.


Ao escolher um concorrente, considere:

  • Custo: Open source (custo de infraestrutura e manutenção) vs. SaaS (custo de assinatura).
  • Auto-hospedagem vs. Nuvem: Você quer/pode gerenciar a infraestrutura?
  • Escalabilidade: Suas necessidades atuais e futuras.
  • Curva de aprendizado e complexidade: Quão rápido você precisa implementar?
  • Recursos específicos: Suporte a SAML, OpenID Connect, federação, login social, MFA, políticas de autorização granulares, etc.
  • Comunidade e Suporte: Disponibilidade de documentação, fóruns, suporte pago.
  • Integrações: Com seus sistemas legados ou outros serviços.

Keycloak continua sendo uma excelente escolha, especialmente se você precisa de uma solução open-source, auto-hospedada e rica em funcionalidades. Mas o mercado oferece alternativas interessantes dependendo das suas prioridades!

O Keycloak é um verdadeiro canivete suíço, pois cobre tanto CIAM quanto workforce IAM em uma única solução madura. Estudar o Keycloak, mesmo sem implementá-lo, traz um know-how valioso — inclusive para avaliar se vale a pena pagar por soluções SaaS.