Keycloak
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:
- 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.
- Acesso apropriado: Essas identidades têm as permissões adequadas para acessar recursos específicos (autorização).
- 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:
-
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.
-
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.
-
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.
-
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.
-
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.
-
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).
-
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.
-
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.
-
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)?
- 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.
- 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.
- 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.
- 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)?
- 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.
- 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.
- 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.
- 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.
- 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.