Table des matières
2021/02/20 (Neutriton) : keycloak
Présences :
- HgO
- Tangeek
- Liberfix
- Célo
- nino
- Tharyrok
- flatrongraad
- niko
- ptr
Météo
Moment informel durant lequel on exprime en peu de mots comment on se sent et si on a une attente forte pour la réunion. Ce n'est pas un moment de discussion mais d'expression individuelle et ce n'est pas obligatoire
Attente(s) forte(s)
Si l'une ou l'autre personne exprime une attente forte, merci de vous en occuper en priorité ou de la noter dans le hub ou dans un point approprié.
Keycloak
Le principe de base, c'est de permettre d'avoir un compte unique pour chacun des services que Neutrinet va proposer. Une technique est de faire du SSO (single sign on) et de déléguer la manière dont on se connecte à une application.
Définition
Identification : Permet de dire comment quelqu'un s'appelle. On peut identifier la personne.
Authentification: La personne connaît un secret, et seule la personne qui a ce secret peut s'authentifier.
Autorisation: Ce sont des droits d'accès. Est-ce que entité x peut faire y. Est-ce que x peut accéder au service z.
Le service va juste identifier l'utilisateur, l'authentification va être déléguée à Keycloak.
Oauth2 | OpenID Connect | SAML | LDAP | ..
Quid de Radius / LDAP ?
On ne peut pas considérer LDAP comme du SSO, parce que chaque service va demander à LDAP le couple login/password. Et donc on n'est pas connecté tout le temps, on va devoir se connecter sur chaque service.
Protocole
SAML (Security Assertion Markup Language) : Vieux protocole qui parle du XML, avec des certificats pour signer les requêtes entre le serveur et l'application.
OpenID Connect: Plus moderne (2010) et se repose sur OAuth2 mais avec une API REST (= json). Ca permet d'avoir plusieurs endpoints, notamment pour avoir des informations sur l'utilisateur, ce qui n'est pas possible avec OAuth2 par défaut(?)
Lorsqu'un client se connecte (1) il va envoyer une requête à Keycloak (2) pour obtenir un token d'accès (3). Le client envoie le token à l'application (4) et le serveur va vérifier auprès de Keycloak si ce token est toujours valide (5) (6). Ensuite le client est authentifié et c'est un échange normal entre client serveur.
Il y a un cookie dans le navigateur qui permet de bypasser les étapes 1-3, et s'authentifier directement.
C'est un produit de red hat .
LDAP (Lightweight Directory Access Protocol)
Interface
Royaume = realm
Dans le royaume master, on sait faire tout comme config etc.
ici on voit le royaume users, ou on peut mettre des endusers avec des permissions limités
On voit par royaums certains apps, comme configuré.
La partie Realm settings, t'as des trucs général.
Dans Clients, t'as des entités créés par défaut, comme l'interface web, cli etc.
important: https://www.keycloak.org/docs/6.0/server_admin/#_protocol-mappers
etc
Nextcloud setup
Ces infos sont derrière un paywall sur nextcloud docs, donc on doit chercher ailleurs:
https://janikvonrotz.ch/2020/04/21/configure-saml-authentication-for-nextcloud-with-keycloack/
Flow
Branchement avec d'autre
Prochaine réunion
Prochain Neutriton : 13/03/2021
Sujet :
- choix du reverse proxy (caddy vs haproxy vs nginx)
- présentation de patroni et comparaison avec d'autres HA postgres
Lieu : https://jitsi.belnet.be/neutriton et/ou Caldarium https://caldarium.be/fr:contact
Météo de fin
Moment informel durant lequel on exprime en peu de mots comment, à titre personnel, la réunion a été vécue que ce soit positif ou négatif. Si une ou plusieurs tension est née durant la réunion, il est peut-être nécessaire d'envisager l'une ou l'autre réunion pour y remédier.