Tutorial Keycloak
Tutorial Keycloak
Tutorial Keycloak
Paulo Jerônimo
Table of Contents
1. Resumo ................................................................................................................. 1
2. Pré-requisitos ........................................................................................................ 2
3. Baixando e iniciando o Keycloak para a execução de aplicações de
demonstração ............................................................................................................ 3
4. Testando alguns exemplos ................................................................................... 4
4.1. Os exemplos "pré-configurados" ................................................................. 4
4.1.1. Importando o realm dos exemplos ................................................... 4
4.1.2. Compilando e implantando os exemplos .......................................... 4
4.1.3. Testando, manualmente, os exemplos customer-portal e product-
portal ............................................................................................................ 4
4.1.4. Uma aplicação escrita puramente em Javascript: customer-portal-
js .................................................................................................................. 6
4.1.5. Gerenciando a conta do usuário logado ........................................... 7
4.2. O exemplo basic-auth ................................................................................. 8
4.2.1. Compilando, implantando e testando a aplicação ............................. 9
5. A console de administração do Keycloak ........................................................... 10
6. Baixando e compilando os fontes do Keycloak .................................................. 11
6.1. Utilizando uma versão específica ............................................................. 11
ii
Chapter 1. Resumo
Este tutorial apresenta um passo a passo prático para a instalação e testes do
1
Keycloak 1.5.0.Final.
1
http://keycloak.org
2
http://cygwin.com
3
https://github.com/paulojeronimo/dicas-windows/blob/master/instalacao-cygwin.asciidoc
1
Chapter 2. Pré-requisitos
Para executar os passos deste tutorial você precisará ter instalado em tua máquina:
1
https://github.com/paulojeronimo/javaee-ambiente
2
Chapter 3. Baixando e iniciando o
Keycloak para a execução de aplicações
de demonstração
Uma forma fácil de testar e aprender os conceitos do Keycloak é baixando o
1 2
instalador de desenvolvimento (arquivo keycloak-demo-1.5.0.Final.tar.gz ). Esse
arquivo contém parte dos arquivos necessários para a execução dos exemplos deste
tutorial. Isso inclui um servidor Wildfly 9.0.1.Final com o servidor Keycloak e seus
adaptadores já configurados.
3
Se você montou teu ambiente através do projeto javaee-ambiente
o download e a descompactação do instalador de desenvolvimento
do keycloak podem ser realizados pelo comando keycloak_demo
install . Dessa forma, ele ficará instalado no diretório configurado
para a variável FERRAMENTAS_DIR .
export JBOSS_HOME=$PWD/keycloak-demo-1.5.0.Final/keycloak
$JBOSS_HOME/bin/standalone.sh &
1
http://keycloak.github.io/docs/userguide/html/server-installation.html#d4e118
2
http://downloads.jboss.org/keycloak/1.5.0.Final/keycloak-demo-1.5.0.Final.tar.gz
3
https://github.com/paulojeronimo/javaee-ambiente
3
Chapter 4. Testando alguns exemplos
4.1. Os exemplos "pré-configurados"
Vá para o diretório $JBOSS_HOME/../examples/preconfigured-demo e leia o
arquivo README.md . Os passos descritos a seguir são uma simplificação dos passos
apresentados nele.
cd $JBOSS_HOME/../examples/preconfigured-demo
view README.md
Logue-se com o usuário admin e a senha admin . Será solicitada a troca da senha.
Observe a tela que será apresentada. Note o valor de Servlet User Principal .
4
Testando alguns exemplos
Clique em products . Observe que não foi solicitada nova autenticacão apesar
do contexto ter sido alterado para product-portal (esta app também utiliza os
mecanismos de segurança do Java EE).
5
Testando alguns exemplos
},
Notamos que, nessa saída, o usuário em questão não possui a role admin (as roles
que ele possui estão definidas para o valor de realmRoles ).
Efetue o Log in informando teu email e senha. Após o logon, note que o
Username permanece [email protected] .
6
Testando alguns exemplos
4 directories, 4 files
Clique em logout .
Volte para a tela anterior e clique em logout . Note que você estará na página
Customer Portal . Clique em Customer Listing .
7
Testando alguns exemplos
Clique em manage acct . Note que é possível que esse usuário gerencie sua conta,
o que não ocorre para o usuário admin . A explicação está nas roles definidas para
esse usuário: ele possui a role manage-accout definida para o acesso ao cliente
account (associado a URL base /auth/realms/demo/account ). O mesmo não
ocorre para o usuário admin .
Observe que qualquer tentativa de acesso a URLs protegidas pelo Keycloak (como,
por exemplo, http://localhost:8080/angular-product/) será redirecionada a tela de
autenticação provida pelo Keycloak.
$ tree
.
|-- basicauthrealm.json
|-- pom.xml
|-- README.md
`-- src
`-- main
|-- java
| `-- org
| `-- keycloak
| `-- example
1
http://localhost:8080/auth/realms/demo/account?referrer=customer-portal
8
Testando alguns exemplos
| `-- basicauth
| |-- BasicAuthService.java
| `-- BasicAuthServiceApplication.java
`-- webapp
`-- WEB-INF
|-- keycloak.json
`-- web.xml
9 directories, 7 files
Teste a aplicação:
curl http://admin:password@localhost:8080/basicauth/service/echo?
value=hello
9
Chapter 5. A console de administração
do Keycloak
A URL http://localhost:8080/auth/admin/index.html possibilita o acesso a interface de
administração do Keycloak.
10
Chapter 6. Baixando e compilando os
fontes do Keycloak
6.1. Utilizando uma versão específica
Para gerar a versão 1.5.0.Final:
Mais detalhes sobre como contribuir na solução de um bug, gerar um release, etc,
1
podem ser obtidos na página HackingOnKeycloak.md .
1
https://github.com/keycloak/keycloak/blob/master/misc/HackingOnKeycloak.md
11