wiki/HowtoKeycloak.md
2023-06-21 17:49:14 +02:00

4.4 KiB

Contexte

Keycloak est un Identity Access Manager IAM open-source permettant de faire du Single-Sign-On SS0, c'est à dire d'utiliser un seul compte pour se connecter à différents services.

Keycloak supporte principalement 2 protocoles d'authentification

  • SAML 2.0 (Security Assertion Markup Language)

    • authentification de l'utilisateur

      • SAML assertion (XML signé numeriquement par le royaume) contenant les information sur les accés de l'utilisateur
    • accés au service

      • via un SAML assertion
  • OIDC (OpenID Connect)

    • authentification de l'utilisateur

      • -> identity token : infos utilisateur qui l'indentifie

      • -> access token : information sur les accés de l'utilisateur, signé numeriquement par le royaume

    • accés au service

      • via un access token

Installation

En dur

  • ressources

  • Installer OpenJDK

    • apt install openjdk-11-jre
      
  • Lister les release

    • git ls-remote --tags https://github.com/keycloak/keycloak
      
  • Récupérer et extraire le zip de la release souhaité

    • keycloak_release=21.1.1
      keycloak_zip=keycloak-${keycloak_release}.zip
      wget https://github.com/keycloak/keycloak/releases/download/${keycloak_release}/keycloak-${keycloak_release}.zip
      unzip $keycloak_zip
      
  • Lancer keycloak depuis son dossier

    • keycloak_folder=${keycloak_zip%".zip"}
      cd $keycloak_folder
      bin/kc.sh start-dev
      

Brancher une base de donnée de prod

  • doc officielle

  • Mariadb

    • Démarrer le serveur keycloak et (re-)définit les options de configuration

      • bin/kc.sh start --db mariadb --db-url-host mymariadb --db-username myuser --db-password change_me
        

Haute disponibilité

Utilisation

Administration de Keycloak

  • On supposera que nous nous trouvons dans le dossier d'installation keycloack

    • cd $keycloak_folder
      
  • Voir les option de démarrage / aide

    • bin/kc.sh start-dev --help
      
  • Lancer Keycloak

    • Lancer Keycloak en dev sur le port 8080

      • $keycloak_http_port=8080
        bin/kc.sh start-dev --http-port ${keycloak_http_port}
        
  • Créer un administrateur

    • Au lancement du serveur

      • export KEYCLOAK_ADMIN=<username>
        export KEYCLOAK_ADMIN_PASSWORD=<password>
        bin/kc.sh start-dev
        
    • En mode "click"

Gestion des royaumes "realm"

  • Se connecter à http://localhost:8080/admin avec les identifiant admin

  • Un royaume est un ensemble isolé d'utilisateurs et d'applications géré par un administrateur

  • Le royaume master est seulement utilisé pour gérer Keycloak et ne doit pas être utiliser pour gérer d'autres applications

  • Tester le fonctionnement des royaume voir getting-started-zip

  • Créer un royaume

    • Dans le menu déroulant tout en haut à gauche choisir "Create Realm"

      • Choisir un nom de royaume "Realm name" puis le créer avec "Create"
  • Créer un utilisateur

    • ATTENTION : nous allons créer un utilisateur dans le royaume sélectionné dans le menu déroulant tout en haut à gauche, sauf cas particulier, il faudra éviter le royaume master

    • TODO finir

  • TODO Créer client

TODO Gestion via la cli

:logbook: CLOCK: [2023-06-21 Wed 14:43:19]--[2023-06-21 Wed 15:05:04] => 00:21:45 :END:

Ressources

https://github.com/thomasdarimont/awesome-keycloak