Connexion et session
Les utilisateurs se connectent à votre application avec leur compte Secrecy, sur la page de connexion hébergée par Secrecy. Votre application ne voit jamais de mot de passe et n'a jamais à en stocker. Ce qu'elle récupère, c'est une session et les clés de l'utilisateur, et à partir d'elles un SecrecyClient prêt à l'emploi.
La connexion apporte les clés sur l'appareil
Dans un service zero-knowledge, une session ne suffit pas : le client a aussi besoin de clés privées pour déchiffrer quoi que ce soit. Secrecy ne stocke ces clés que verrouillées, et seule la page de connexion Secrecy peut les déverrouiller, avec la clé maître de l'utilisateur. La connexion est le moment où les clés déverrouillées — l'identité de l'utilisateur dans votre application, et les groupes dont il est membre — sont livrées sur l'appareil, avec la session et le JWT de votre application. La clé maître, elle, reste sur la page de connexion.
C'est pourquoi tout appel qui lit ou écrit des données chiffrées demande un client connecté, et pourquoi un client est toujours lié à un utilisateur d'une application.
Comment se passe la connexion
- Votre application appelle
loginavec son identifiant d'application, et éventuellement les autorisations qu'elle demande, comme l'e-mail de l'utilisateur. - L'utilisateur est envoyé sur la page de connexion Secrecy, dans une popup ou par une redirection pleine page, et s'y connecte.
- La page de connexion déverrouille les clés de l'utilisateur et les renvoie à votre application avec la session, et le SDK construit le client.
Si un client est déjà stocké dans ce navigateur, login le renvoie directement, sans afficher de nouveau la page de connexion.
La session vit dans le navigateur
Après la connexion, le SDK conserve la session et les clés dans le navigateur, pour que l'utilisateur n'ait pas à se reconnecter à chaque chargement de page. Au chargement suivant, getSecrecyClient reconstruit le client à partir de ce qui a été stocké, et logout met fin à la session et efface les clés stockées.
Les clés déverrouillées ne sont jamais renvoyées aux serveurs Secrecy. Ce qui est stocké, et comment le limiter à l'onglet en cours, est détaillé dans session et stockage.
Quand aucune connexion n'est nécessaire
Deux fonctionnalités se passent volontairement de client : télécharger un lien et chiffrer anonymement. Leurs utilisateurs n'ont pas de compte Secrecy, ils disposent donc de fonctions autonomes.
Pour mettre en œuvre la connexion, voir Secrecy auth.