2.2. L'outil Keycloak
Keycloak est un IAM (Identity and Access Management)
open source, licencié par Apache et pris en charge par Red Hat. Il est
écrit en Java et prend en charge les protocoles de
fédération d'identité par défaut SAML V2, OIDC,
OAUTH2.0. Le but de Keycloack d'un point de vue conceptuel c'est de faciliter
la protection des applications et des services au moyen de configurations. Il
fait du SSO, et il utilise la fédération d'identités pour
se connecter à des serveurs comme Active Directory ou LDAP.Il est
né du besoin commun des entreprises d'avoir un outil centralisé
d'authentification et d'autorisation. Il apporte une gestion simplifiée
via la console. Il gère l'authentification et l'identification.
Fonctionnalités:
Keycloak permet entre autre de :
? Sécuriser les interfaces graphiques (Il va agir comme
un point d'entrée)
? Sécuriser les API
? Faire du SSO (un seul point d'entrée)
? Gérer les mots de passes
? Intégrer des logins sociaux (google, github,
facebook)
? Fédération des identités avec les
annuaires LDAP et Active Directory
Déploiement:
Keycloak peut être déployer sur :
? Machine Virtuel ou Machine physique
? Conteneurs et Kubernetes (operator)
? En mode Standalone ou cluster
Technologies et base de données:
Keycloak embraque les technologies :
? Docker
? Openshift
? Kubernetes
? Open JDK
? Podman
Keycloak peut s'interfacer avec les bases de
données:
? Locale (h2)
? Mariadb/Mysql
? Postgres,...)
Authentication Flow
Sous keycloak la notion d'authentication flow est
évoquée. Selon la définition de keycloak: «Un flux
d'authentification est un conteneur d'authentifications, d'écrans et
d'actions, pendant la connexion, l'enregistrement et d'autres flux de travail
de {nom_du_projet}.»
En d'autres termes, un flux d'authentification est un ensemble
d'actions s'exécutant lors d'une connexion ou d'une inscription.
Ces actions sont exécutées les unes à la
suite des autres.
? La colonne "Auth Type" est le nom de l'action qui sera
exécutée.
? La colonne "Requirement" définit si l'action est
impérative, alternative, ou désactivée :
? Required => Cette action doit être terminée
avec succès avant de passer à la suite.
? Alternative => Même si l'action n'est pas
réussie, le flow peut continuer.
? Disabled => L'action n'est pas activée.
Keycloak offre plusieurs flux d'authentification et permet de
passer facilement d'un flow à l'autre.
La mise en place d'une politique de mot passe est
également offerte par l'outil keycloak et peut être
gérée d'une manière simple et efficace. Il est possible
de:
? Définir la complexité requise pour les mots de
passe
? Empêcher la réutilisation d'anciens mots de
passe
? Exiger une mise à jour régulière des
mots de passe
? Définir des intervalles de hachage
Un autre point important de keycloak est qu'il respecte les
normes OWASP(The Open Web Application Security Project) pour
l'implémentation des ses protocoles et permet ainsi à ses
applications d'être en adéquation avec les normes de
sécurité définies par OWASP.
|