Tester Keycloak sur Amazon EC2

En voulant tester WildFly via Docker sur Amazon EC2 je suis tombé par hasard sur le projet Keycloak. Ce projet consiste à pouvoir gérer du SSO/une IDM entre différentes apps et/ou API REST. A la base il se déploie sur WildFly mais peut finalement être mis sur d’autres serveurs. Je vous laisse découvrir le projet via le screencast de 15 min.

Mais en fait le mieux de l’installer et le tester. Pour cela j’ai utilisé Amazon EC2 en étant dans la période de gratuité de 1 an de celui-ci mais en étant donc limité à des instances de type t2.micro (sur le lieu « US West (Oregon) ») mais qui suffisent pour des tests.

Voici le déroulé pour l’installation de Keycloak sur Amazon EC2 :

  • Connectez-vous sur la console d’administration d’Amazon Web Services et sélectionnez le service « EC2 ».
  • Cliquez sur « Launch Instance » et sélectionnez une image de type « Ubuntu Server 14.04 LTS ».
  • Sélectionnez votre type d’instance. Dans mon cas et pour rester dans le cadre de l’utilisation gratuite d’Amazon Web Services j’utilise une instance de type « t2.micro ». Cliquez ensuite sur « Next: Configure Instance Details ».
  • Pour ma part à ce stade je clique sur « Review and launch » mais vous pouvez à la place configurer d’autres paramètres comme notamment l’intégration de la machine à réseau déjà existant. Mais ce n’est pas là l’objectif de l’article.
  • L’écran affiche un résumé des propriétés de la nouvelle instance. Par défaut il y a un accès SSH all over the world (en supposant que vous ayez déjà configuré une clé SSH pour Amazon Web Service, voir içi). Attention, à ce stade il faut modifier les règles d’accès à l’instance en changeant « SSH » par « All TCP » pour que n’importe quel port soit accessible depuis Internet. Pour cela dans la partie « Security Groups » cliquez sur « Edit security groups » et changez « SSH » en « All TCP » puis cliquez de nouveau sur « Review and launch ». Vous pouvez enfin cliquer sur « Launch » et sélectionner une clé SSH pour y accéder en SSH.

Une fois ceci effectué votre instance est en cours d’initialisation. Cliquez sur « View Instances » et attendez 2 minutes …

Quand votre nouvelle instance est notifiée comme « Running » et non « Initializing » c’est que vous pouvez désormais y accéder via SSH en utilisant l’adresse réseau affichée dans la colonne « Public DNS ». Donc allons-y avec la commande ssh (avec l’adresse réseau fournie par Amazon EC2) :

> ssh -i ec2.pem ubuntu@ec2-54-148-255-72.us-west-2.compute.amazonaws.com
[…]
ubuntu@ip-172-31-38-59:~$

Maintenant que vous êtes connecté à votre instance EC2 vous pouvez installer docker mais aussi l’image Keycloak :

sudo apt-get install docker.io
[…] (une dizaine de secondes)
sudo docker pull jboss/keycloak
[…] (1 Go à télécharger en moins de 2 minutes)

A ce stade Docker est installé et l’image de Keycloak est prête (enfin presque). Pour la démarrer :

sudo docker run -it -p 80:8080 -p 9090:9090 jboss/keycloak

Si ensuite, dans votre navigateur préféré vous tapez l’URL (en fonction du DNS fourni par Amazon EC2) :

http://ec2-54-148-255-72.us-west-2.compute.amazonaws.com/auth/

Vous devriez alors avoir la page suivante :

keycloak_welcome

Maintenant pour accéder à la console d’administration de keycloak ce n’est pas possible de base car il faut que ce soit effectué via SSL/HTTPS. J’ai bien essayé de configurer Keycloak pour lui indiquer de passer malgré la non présence de SSL (utile avec proxy reverse comme Nginx ou Apache gérant lui même le SSL) en modifiant le fichier /opt/jboss/wildfly/standalone/deployments/auth-server.war/WEB-INF/classes/META-INF/keycloak-server.json via la commande (dans le conteneur jboss/keycloak) :

sed -i 's|    "admin|    "ssl-required": false,\n    "admin|' /opt/jboss/wildfly/standalone/deployments/auth-server.war/WEB-INF/classes/META-INF/keycloak-server.json

Mais cela ne semble pas marcher alors que le fichier est bien modifé Bon solution de secours j’utilises SSH avec une redirection de port :

ssh -i ec2.pem -L 3000:127.0.0.1:80 ubuntu@ec2-54-148-255-72.us-west-2.compute.amazonaws.com

En tapant dans un navigateur l’adresse http://127.0.0.1:300/auth/admin/ cela fonctionne enfin ! J’utilise le login et mot de passe admin/admin, Keycloak me demande de modifier ce mot de passe suite à une première connexion. Après cela j’ai enfin accès à la console de Keycloak.

Voilà maintenant vous pouvez jouer avec cette console afin de voir ce qu’elle propose comme fonctionnalités.

Publicités

2 réponses à “Tester Keycloak sur Amazon EC2

  1. Supreetha 1 août 2016 à 22:35

    Merci pour votre commentaire. Mais je ne suis pas en mesure de se connecter à la console d’administration en utilisant le nom d’utilisateur : admin , mot de passe : admin . Je reçois un message d’erreur « nom d’utilisateur ou mot de passe invalide . Pourriez-vous s’il vous plaît aider?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s