Je vous invite à découvrir mes services sur les solutions IAM, la cybersécurité et l’architecture IT.
Définir l’architecture d’installation
Déployer Keycloak sur l’Infrastructure
Brancher Keycloak une base de données externe
Déployer plusieurs instances de Keycloak
Configurer le cache Infinispan
Configurer le mode proxy
Protéger l’accès à la console d’administration
Bloquer les URLs non utilisées
Dimensionner les ressources: RAM, CPU
Activer le endpoint de health check et les metrics
Configuration du processus d’authentification
Configuration du Realm, clients, utilisateurs, jetons, sessions
Gestion du consentement & condition d’utilisation
Actions requises, politique de mot de passe
Enrôlement des utilisateurs & clients
Rotation des clés cryptographiques
Activation de la fonctionnalité de récupération du compte (recovery)
Fédération des utilisateurs et des identités
MFA et protections contre les menaces
Configuration des évènements d’audit
Comprendre les protocoles implémentés par Keycloak
Installation et première prise en main
Les termes et concepts de base
Comprendre et configurer les principaux types de jetons
Comprendre les clients
Comprendre les différents types d’authentification
Les droits d’accès
L’organisation des utilisateurs par groupes
Comprendre les Mappers et les Client Scopes
Stocker et analyser l’activité des utilisateurs et des administrateurs
Comprendre chaque jeton: Access Token, ID Token, Refresh Token, Offline Token
Intégrité, validité, chiffrement, révocation de jeton
Apprivoiser les notions JWT, JWS, JWE, JWKS
Comprendre les sessions utilisateurs
Fédération des utilisateurs et des identités
Authentification sans mot de passe
MFA et protection contre les menaces
Les clés cryptographiques
PKCE
Définir les politiques de mot de passe, OTP, etc
Forcer la réalisation de certaines actions par l’utilisateur: changement de mot de passe, vérification de l’adresse email, etc.
Configurer des administrateurs sur un périmètre réduit
Adapter les étapes de l’authentification selon les besoins
Réaliser une rotation des clés cryptographiques
Comprendre chaque type de jeton: Access, Refresh, ID, Offline Token
Comprendre les claims d’un jeton
Apprendre comment valider un jeton
Apprendre comment raccorder une application à Keycloak
Apprendre comment se servir des jetons Keycloak pour protéger les applications
Utiliser les API de Keycloak
Keycloak est un outil conçu pour être facilement extensible grâce aux SPI: Service Provider Interface. Avec les SPI, il est possible d’augmenter Keycloak avec de nouvelle fonctionnalités ou remplacer certaines fonctionnalités existantes. C’est ainsi qu’on peut implémenter une logique d’authentification adaptée à ses besoins, brancher Keycloak avec une source externe d’utilisateurs (base de données, API), etc.
Keycloak supporte le MFA par OTP. L’utilisateur installe une application OTP sur son téléphone mobile et l’associe à son compte. Certains utilisateurs ne possèdent pas de smartphone. D’autres sont réticents à installer de telles applications. Parfois, ce sont les administrateurs qui rechignent à rendre ce processus obligatoire, de peur me mécontenter les utilisateurs. Pour tous ces cas, le code envoyé par SMS ou email est une alternative.
Il est possible d’implémenter cette solution avec Keycloak grâce à un développement spécifique. Lors de l’authentification, une fois que l’utilisateur à renseigné son login et mot de passe, Keycloak génère un code aléatoire, et l’envoie l’utilisateur par email ou SMS. Keycloak affiche une page où l’utilisateur doit renseigne le code reçu afin de compléter l’authentification.
Quelques précautions sont à observer sur la durée de validité ou la longueur du code. Aussi, afin d’améliorer l’expérience utilisateur, il est possible de déclencher cette deuxième authentification sur la base de critères prédéfinis. Quelques exemple de critères: appliquer le MFA tous les 7 jours, après 10 authentifications, après 1 mois sans authentification, en fonction de la localisation de l’utilisateur, selon l’appareil utilisé par l’utilisateur pour se connecter, etc.
Keycloak supporte nativement deux types de sources externes d’utilisateurs: LDAP/AD ou Kerberos. Que faire si vos utilisateurs sont stockés dans une base de données externe ou dans un référentiel accessible par API? Pas de panique! Grâce aux SPI, il est possible, avec un développement spécifique, d’intégrer tout type de source externe de stockage d’utilisateurs. Du fait de la complexité inhérente à la gestion des utilisateurs, ce type de développement spécifique est plus complexe à developper que les autres. En effet, il faut gérer tout le cycle de vie des utilisateurs. Possible, mais pas une mince affaire.
Une action requise est une action qui est imposée à l’utilisateur et qu’il doit faire immédiatement après s’être authentifié. Comme exemples de telles actions, on a le changement de mot de passe, la validation de l’adresse email, la configuration du MFA. Keycloak supporte un bon nombre d’actions requises. Si vous avez une action que vous souhaitez que vos utilisateurs accomplissent après l’authentification et qui ne fait pas partie de la liste des actions supportées par défaut, pas de problème. Grâce au SPI, il est possible de developper facilement une nouvelle action requise.