Configuration de plusieurs clients OpenID-Connect via Ruby
Ici nous allons configurer un serveur pour protéger une URL par plusieurs authentifications SSO de type OpenID Connect
Toutes les manipulations de cette page s’effecutent sur la machine web, en tant qu’utilisateur root.
-
En premier lieu, il est nécessaire d’installer les prérequis :
- Le script openidc-server.rb
- les gems ruby nécessaires :
gem install -V omniauth-facebook omniauth-google-oauth2 moneta dalli
-
Testez le service :
ruby openidc-server.rb
- Ouvrez un tunnel SSH depuis votre poste
ssh -p `vagrant ssh-config web |grep Port |cut -d\ -f4` -L 3000:localhost:3000 -i ~/.vagrant.d/insecure_private_key vagrant@localhost
- Connectez vous sur http://localhost:3000 depuis votre navigateur Web
-
Activons les authentifications
- dans le fichier openidc-server.rb décommentez la partie 2
- relancez le serveur
- Utilisez un compte Google ou FaceBook (en espérant que vous en ayez un…)
-
Propageons l’authentification vers un autre serveur
- Installez les packages memcached et libmemcached-tools
- Décommentez la partie 3 de openidc-server.rb
- Récupérez le script openidc-client.rb
-
Test :
- Lancez le service memcached (normalement il l’est déjà)
- Lancez le serveur et le client
- Modifiez le tunnel SSH pour écouter le client
ssh -p `vagrant ssh-config web |grep Port |cut -d\ -f4` -L 3000:localhost:3000 -L 3001:localhost:3001 -i ~/.vagrant.d/insecure_private_key vagrant@localhost
- Ouvrez deux onglets http://localhost:3000 et http://localhost:3001
- Observez ce que contient la session :
memcdump --servers localhost => retourne une clé
memccat --servers localhost la_clé