Un espace de travail n'est un seul produit que s'il a une seule porte d'entrée. Comment Authentik connecte un compte à sept produits, ce qu'exige réellement une identité servant plusieurs entreprises à la fois, et pourquoi le service de connexion reçoit une paranoïa de niveau messagerie.
Un espace de travail n'est un seul produit que s'il a une seule porte d'entrée. Courrier, agenda, fichiers, chat, visio, facturation : si chacun accueille votre équipe avec son propre mot de passe, vous n'avez pas acheté un espace de travail, vous avez acheté sept outils et un tableur d'identifiants. L'identité est donc le pilier auquel tout le reste est suspendu, et celui sur lequel nous avons le plus hésité. Partie 4 de la série.
Chaque produit de nos briques a sa propre idée de ce qu'est un utilisateur. Le serveur de messagerie veut un annuaire pour authentifier. Le serveur de chat veut qu'on lui dise qui appartient à quelle organisation. Le serveur de fichiers crée des comptes à la première utilisation. Le produit de réunion veut un jeton de connexion. Aucun n'a été conçu avec les autres, et notre travail consiste à leur donner l'air de l'avoir été.
La réponse est un fournisseur d'identité unique auquel tout le reste s'en remet. Nous avons d'abord essayé deux autres systèmes, les avons exploités assez longtemps pour en trouver les murs, et avons convergé vers Authentik, qui porte le produit depuis. Il parle les deux langues dont nous avons besoin : OIDC, le protocole moderne de connexion unique qu'utilisent les applications web, et LDAP, le protocole d'annuaire qu'attend le serveur de messagerie. Un système, un jeu de comptes, deux dialectes.
Ce que votre équipe vit : un compte par personne, un mot de passe, un seul endroit pour configurer la double authentification, et les applications web vous connectent via la même session. Connectez-vous une fois le matin et le chat, les réunions et le tableau de bord s'ouvrent simplement. Pour les logiciels de messagerie de bureau, qui parlent IMAP plutôt que sessions de navigateur, chacun peut créer des mots de passe d'application : des clés distinctes et révocables par appareil, gérables depuis le tableau de bord, si bien qu'un portable perdu n'oblige jamais à changer votre vrai mot de passe.
Installer un fournisseur d'identité prend un après-midi. Le faire servir plusieurs entreprises à la fois en toute sécurité, voilà l'ingénierie. Chaque client d'email.eu est un locataire isolé : vos gens, vos groupes, votre connexion, invisibles de tous les autres locataires. Le chat en est l'exemple le plus clair : chaque client reçoit un espace distinct avec son historique et ses membres, et chaque espace ne fait confiance qu'aux connexions des comptes de ce client, et d'aucun autre.
L'autre chose que nous avons appris à faire tôt est de traiter la configuration de l'identité comme du code. Les parcours d'invitation, la récupération de mot de passe, l'identité visuelle, le câblage entre applications et annuaire : tout cela est déclaré dans des plans versionnés et appliqué comme n'importe quel déploiement, plutôt qu'assemblé à la souris dans une console. Une configuration assemblée à la souris est la façon d'obtenir un système de connexion que personne ne peut reconstruire ni raisonner. Le nôtre se reconstruit depuis le dépôt, et ses modifications sont relues comme des modifications de code.
Un espace de travail auquel vous ne pouvez pas vous connecter est hors service, quoi qu'en dise la file d'attente du courrier. Le service de connexion est donc conçu selon la même exigence que le cluster de messagerie. Le fournisseur d'identité tourne en deux répliques. La machinerie de base de données en dessous est répartie de sorte qu'aucun événement de maintenance ne puisse toucher les deux copies, et l'ordonnanceur du cluster se voit dire explicitement quelles paires ne doivent jamais tomber ensemble, si bien que lorsque notre hébergeur renouvelle des machines pour des correctifs de routine, tout garde son quorum et personne ne s'aperçoit de rien. Le comportement de réessai est réglé pour qu'une brève interruption de base reste un soubresaut plutôt que de s'aggraver.
Les mises à jour reçoivent la même paranoïa. Après chaque changement du fournisseur d'identité, nous refaisons toute la cérémonie, connexion, déconnexion, récupération, invitation, car « la mise à jour a réussi » et « les connexions fonctionnent » sont deux affirmations différentes, et une seule des deux apparaît dans un journal de déploiement.
Vous verrez rarement l'identité sur une page de comparaison de fonctions, et elle décide de plus de votre quotidien que la plupart des lignes qui y figurent. C'est la différence entre intégrer un nouveau collègue en une étape ou en sept, entre révoquer l'accès d'une personne partie à un seul endroit ou en fouillant des consoles d'administration, entre un téléphone perdu qui est un désagrément ou un incident. Quand vous évaluez un espace de travail, le nôtre compris, demandez où vivent les comptes et ce qui se passe quand ce système a une mauvaise journée. Nous avons écrit notre réponse.
Ensuite, la partie 5 : l'infrastructure sous tout cela, et pourquoi nous l'avons conçue aussi ennuyeuse que possible.