Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 4 Próxima »

O Keycloak é uma plataforma open source capaz de gerenciar os acessos dos usuários que utilizam as aplicações configuradas a ela. Esse procedimento é feito através do esquema de autenticação SSO e garante diversos benefícios:, entre eles:

  • Após logar na aplicação A, o usuário pode acessar a aplicação B sem efetuar um novo login enquanto o token ainda estiver ativo.
  • Passa a responsabilidade do gerenciamento de acessos das suas aplicações para uma plataforma robusta e confiável.
  • Possui integração com o Active Directory.
  • Possui integração com diversas redes sociais para permitir o Login social.
  • Facilidade para configurar autenticação em dois fatores.

Pré-requisitos

Antes de começar a seguir os passos do tutorial é preciso ter certeza de que se tem um ambiente minimamente preparado para reproduzir o exemplo. Abaixo estão os requisitos principais.

  1. Esse tutorial não aborda a instalação e configuração do servidor do Keycloak. Acesse a documentação oficial para realizar esse procedimento.
  2. Usaremos um usuário local criado no próprio Keycloak como exemplo. acesse a documentação oficial para saber com importar os usuários de um Active Directory ou configurar o acesso por Login social.
  3. Atualmente a opção de autenticação por SSO não está disponível para o plano Free.

Passos

Para os próximos passos será necessário possuir um usuário Administrador do seu servidor do Keycloak para criar Realms, Clientes e usuários. Por isso, acesse a área Administration Console e logo com o usuário administrador.


Figura 1 - Página de bem-vindo do servidor do Keycloak

Realms

Um realm gerencia um conjunto de usuários, credenciais, regras (roles) e grupos (groups). Um usuário pertence e efetua login em um domínio (realm). Os realms são isolados uns dos outros e só podem gerenciar e autenticar os usuários que controlam. Caso não possua regras que o limite, um usuário credenciado em um realms poderá logar em todas as aplicações (clients) associadas.

Após logar na aplicação do Keycloak será possível visualizar a lista de reams já criada. Passe o cursor do mouse sobre a palavra Select realm e clique no botão Add realm (destaque 1 da figura 2).


Figura 2 - Acesso a lista de realms


Na tela seguinte, informe o nome para seu realms e clique em Create (Figura 2.1).


Figura 2.1 - Criando o realm


Após a criar o realm, você será direcionado para a aba Realm Settings do menu lateral e poderá ajustar diversos recursos do novo realm. Neste tutorial usaremos a configuração padrão, porém, para mais detalhes sobre a configuração do realm, acesse a documentação oficial.


Figura 2.1 - Área de configuração do realm selecionado

Clients

Os clientes são entidades que podem solicitar que o Keycloak autentique seus usuários. Na maioria das vezes os clientes são aplicações ou serviços que desejam usar o Keycloak para se proteger e fornecer uma solução de logon único. Os clientes também podem apenas obter informações de identidade ou token de acesso para que possam invocar, com segurança, outros serviços em redes protegidas pelo Keycloak. Assim, cada aplicação criada no Cronapp deve ser configurada como um client diferente no keycloak.

Acesse a aba Clients no menu lateral (destaque 1 da figura 3) para exibir a lista dos clientes existentes (alguns são padrões do Keycloak) e clique em Create (2). 


Figura 3 - Acesso a aba Clients


A próxima tela exibirá alguns campos para obter as informações mais básicas do novo client. Preencha como na figura 3.1 e clique em Save.


Figura 3.1 - Informações iniciais para a criação do Client


  1. Client ID: informe um identificador para a aplicação a ser cadastrada.
  2. Client Protocol: selecione a opção openid-connect.
  3. Root URL: informe https://ide.cronapp.io


Estamos incluindo a URL do Cronapp no campo Root URL pois iremos executar uma aplicação pelo sistema de debug do Cronapp que possui esse endereço base (exemplo: https://app-30-205-11680.ide.cronapp.io), Ao utilizar uma aplicação real, utilize o domínio base da sua aplicação (exemplo: https://mydomain.com.br). 


Em seguida o Keycloak exibirá a subaba Settings do client, fazermos mais algumas configurações. 


Ocultamos alguns campos na figura 3.2 (destaques 1) para facilitar a visualização dos campos mais importantes nesse momento. 


Figura 3.2 - Subaba Settings das configurações do Client


  • Name: informe o nome da aplicação que representa o client.
  • Login Theme: selecione o tema Keycloak. É possível personalizar o tema da tela de login, acesse a documentação oficial para mais detalhes.
  • Access Type: selecione a opção confidential.
  • Valid Redirect URIs: informe apenas "*" (asterisco), a aplicação Cronapp informará automaticamente o Keycloak qual a página que o usuário deve ser direcionado após o login de sucesso.


Clique em Save.

Acesse a subaba Credentials (destaque 1 da figura 3.3) e copie o conteúdo do campo Secret, usaremos esse dado logo mais nas configurações da aplicação no Cronapp.


Figura 3.2 - Campos da subaba Credentials

Users

Usuários são entidades que podem fazer login em aplicações (clients) vinculadas ao Keycloak. Podem ter atributos (e-mail, nome de usuário, endereço, etc) associados e ser atribuídos como membros do grupo e possuir funções específicas. Um usuário possui vínculo com um realm, e não aos clients, dessa forma, após logar em uma aplicação, e não existir restrições, esse usuário poderá acessar todas as aplicações vinculadas ao realm. 

A base de usuários utilizada pelo Keycloak pode vir do cadastro local, como faremos nesse tutorial, ou obtida através de recursos como AD / LDAP (User Federation) ou Login Social (Identity Providers).

Novo usuário e duplo fator de autenticação (OTP)

Vamos cadastrar o usuário que iremos usar para logar em nossa aplicação Cronapp. Acesse a aba Users do menu lateral (destaque 1 da figura 4) e clique em Add user (2).


Figura 4 - Lista de usuários do realm


Na próxima tela são exibidos os campos de cadastro do usuário, apenas o Username é obrigatório, porém destacamos alguns.


Figura 4.1 - Cadastro do usuário


  • User Enabled: marque ON.
  • Email Verified: quando ativada, essa opção fará com que o atributo de verificação de e-mail seja configurado como true. Pularemos essa etapa neste tutorial, por isso, marque ON.
  • Required User Adctions: esse campo permite selecionar algumas ações do usuário. Precisaremos marcar apenas as opções abaixo:
    • Update Password: essa opção exigirá que o usuário crie uma nova senha no primeiro login;
    • Configure OTP: ao selecionar essa opção, o Keycloak exibirá um QRCode ou um código hash para que o usuário utilize um aplicativo de autenticação.


Ao selecionar a opção Configure OTP, o usuário poderá utilizar qualquer aplicativo de autenticação para realizar o procedimento de autenticação em 2 fatores (múltipla).

Exemplos de aplicativos no Smartphone:

Exemplo de aplicativos no Computador: Para essa opção será necessário gerar o código hash ao invés do QRCode.


Finalizada as configurações iniciais do usuário, clique em Save

Precisamos agora informar uma senha para o usuário recém-criado. Por isso, acesse a subaba Credentials (destaque 1 da figura 4.2) e preencha os campos como na imagem abaixo.


Figura 4.2 - Configuração da senha do usuário


  • Password: informe uma senha para esse usuário. 
  • Password Confirmation: confirme a senha desse usuário.
  • Temporary: essa opção força o usuário a trocar de senha após o primeiro login, para simplificar os passos desse tutorial, dessa essa opção desmarcada (OFF).


Clique em Set Password e depois em Reset password no pop-up de confirmação de alteração da senha.





  • Sem rótulos