Table des matières

2021/02/20 (Neutriton) : keycloak

Présences :

Jitsi : https://jitsi.belnet.be/neutriton

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(?)

plus détaillé / juste:

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 :

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.