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.

  1. En premier lieu, il est nécessaire d’installer les prérequis :

    gem  install -V omniauth-facebook omniauth-google-oauth2 moneta dalli
    
  2. 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
  3. 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…)
  4. 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
  5. 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é