Pular para o conteúdo principal

Arquitetura e Conceitos

Se pensarmos em uma empresa de grande porte típica, ela geralmente é dividida em departamentos que podem conter uma ou mais equipes. Cada equipe implementa softwares (microserviços) em várias linguagens diferentes e podem usar diferentes clouds ou até mesmo rodar on-premise. A tecnologia usada não é tão importante, mas como eles vão gerenciar os usuários de seus aplicativos é. Como será o método de autenticação e autorização? Como serão divididos os usuários por grupos e funções?

Certamente não esperamos que os aplicativos os gerenciem por conta própria até por questões de segurança.

Esses usuários podem ser internos, externos de empresas parceiras, ou podem até ser usuários de aplicativos sociais (Google, Apple, Facebook), etc.

Esses aplicativos precisam de ajuda para gerenciar seus usuários da maneira mais segura possível, é aí que entra o gerenciamento de identidade e acesso, no nosso caso o Keycloak.

alt text

O Keycloak permite configurar diversos protocolos de autenticação e federação de identidade, como OpenID Connect, OAuth 2.0, SAML 2.0, LDAP, entre outros, para que os aplicativos possam se integrar com ele de forma segura.

O que o Keycloak nos oferece é um local central onde todas as identidades podem ser gerenciadas e isso é extremamente importante em uma empresa em que a segurança é fundamental.

Normalmente, uma empresa teria requisitos como remover esse usuário de um aplicativo, removê-lo de um grupo desse aplicativo, removê-lo completamente da organização, giro de chaves e tokens periódicos, etc. Com um IAMS podemos fazer isso de forma centralizada pelo administrador.

O Keycloak pode ser usado como um servidor de logon único (SSO - Single Sign On). Basicamente, ele pode atuar como um provedor de identidade Saml ou pode até mesmo atuar como um servidor de autorização OAuth. Portanto, como mencionado anteriormente, seus aplicativos podem usar Saml ou OpenID Connect para fazer logon único em sua empresa.

Ele pode atuar como um broker de identidade no meio entre seu aplicativo e outro provedor de identidade seja de parceiros ou de Social Provider.

alt text

Basicamente, os aplicativos implantados em nossa empresa talvez precisem ter usuários dessas organizações parceiras. A maneira mais segura de fazer isso é aproveitar suas identidades armazenadas em seus próprios provedores de identidade. Nesse caso, o Keycloak pode se comunicar com esses provedores de identidade usando Saml ou OpenID Connect.

Podemos querer os usuários da Internet que são basicamente usuários do Google ou do Facebook. Talvez queiramos que eles acessem nosso aplicativo. O Keycloak também pode se comunicar com eles usando o OAuth ou o OpenID Connect.

O Keycloak também pode se conectar a servidores Ldap existentes, como o Active Directory ou o Novell NetWare, para puxar todos os usuários dos servidores de diretório para o Keycloak.

Portanto, se pensarmos nisso em um nível mais elevado, o Keycloak pode consolidar todos esses usuários de diferentes provedores de identidade e gerenciá-los de forma centralizada, mesmo que alguns deles não estejam realmente definidos no próprio Keycloak.

O keycloak também fornece autenticação multifator para os usuários imediatamente.