Aller au contenu principal

Votre compte fremforge

Un compte fremforge est votre identité personnelle sur la plateforme. Une organisation est un tenant facturable, un espace de travail où se trouvent les dépôts, les membres, les secrets, les exécutions de CI et les politiques. Ces deux notions sont volontairement distinctes ; cette page explique ce qui se trouve où, comment elles interagissent et comment supprimer l’une ou l’autre.

Un compte, plusieurs organisations

Vous vous inscrivez une seule fois. Vous obtenez un compte personnel unique sur frem.sh/<your-username>, avec votre adresse e-mail, vos clés SSH, vos jetons d’accès personnels, votre authentification à deux facteurs et votre mot de passe local (si vous en définissez un). Partout où vous vous authentifiez auprès de fremforge (interface, Git, API), vous vous authentifiez avec ce compte.

L’appartenance à une organisation est une relation distincte. Votre compte unique peut être membre d’aucune, d’une ou de plusieurs organisations. Chaque organisation paie son propre utilisateur pour vous. Les organisations auxquelles vous appartenez apparaissent dans le sélecteur d’organisation de l’interface.

Deux conséquences à bien intégrer :

  • Vous retirer d’une organisation ne supprime pas votre compte. Les administrateurs d’une organisation peuvent vous en retirer à tout moment ; cela révoque votre accès à leurs dépôts et retire un utilisateur facturable de leur décompte, mais votre compte personnel subsiste et vous pouvez rejoindre d’autres organisations.
  • Supprimer votre compte ne supprime pas les organisations auxquelles vous appartenez. Si vous êtes l’unique propriétaire d’une organisation, la plateforme exige que vous désigniez un autre propriétaire ou que vous résiliiez entièrement l’organisation avant que votre demande de suppression de compte puisse aboutir.

Rejoindre une deuxième organisation

Vous pouvez être l’administrateur fondateur de plusieurs organisations fremforge sans créer plusieurs comptes. Deux cas :

  • Même adresse e-mail, nouvelle inscription. Si vous inscrivez une nouvelle organisation sur frem.sh/_app/signup avec une adresse e-mail qui possède déjà un compte fremforge, le processus d’inscription détecte l’utilisateur existant, le réutilise et vous ajoute comme Propriétaire de la nouvelle organisation. Vous n’obtenez pas de deuxième mot de passe : vos identifiants existants fonctionnent pour les deux organisations, et le bouton de l’e-mail de bienvenue indique « Ouvrir <slug> → » (connectez-vous avec votre mot de passe existant) au lieu du lien à usage unique « Se connecter à fremforge → » que reçoit un tout nouvel administrateur. (Aucun e-mail de bienvenue de fremforge ne contient jamais de mot de passe.)
  • Invitation dans une organisation existante. Si un autre administrateur invite votre adresse e-mail, vous acceptez l’invitation depuis frem.sh/user/notifications et vous êtes ajouté comme membre de son organisation. Pas de deuxième compte, pas de deuxième mot de passe.

Chaque organisation a sa propre relation de facturation avec fremverk, son propre nombre d’utilisateurs, son propre mandat Mollie, ses propres factures et sa propre interface d’administration sur frem.sh/<slug>/_admin/billing. Il n’existe pas de facture consolidée entre organisations.

Passer d’une organisation à l’autre

Il n’y a pas de sélecteur d’organisation intégré sur frem.sh/_app : l’interface d’administration de chaque tenant est déterminée par le slug dans le chemin de l’URL (/<slug>/_admin/...). Le sélecteur naturel se trouve côté Forgejo, sur frem.sh :

  1. Connectez-vous sur frem.sh/user/login (ou cliquez sur « Sign in » n’importe où sur le site marketing, qui vous fait passer par frem.sh/_app/login pour la découverte par domaine de messagerie ; voir Fonctionnement de la connexion).
  2. Votre tableau de bord affiche toutes les organisations auxquelles vous appartenez. Ouvrez-en une pour commencer à travailler : dépôts, tickets, CI, paramètres.
  3. Pour ouvrir l’administration fremforge (facturation, SSO, membres) d’une organisation donnée, rendez-vous sur frem.sh/<slug>/_admin/billing. L’usage le plus courant consiste à ajouter un favori vers l’URL d’administration de chaque organisation que vous administrez.

La liaison de session par organisation est activée par défaut pour chaque tenant. La première fois que vous ouvrez l’interface d’administration d’une organisation, fremforge vous fait faire un aller-retour de connexion pour cette organisation et en conserve une trace propre à l’organisation pendant 8 heures au maximum. Ce que prouve cet aller-retour dépend du niveau décrit ci-dessous. Avec la liaison souple, il prouve que votre navigateur détient une connexion valide, et non que vous venez de vous reconnecter. Seule la liaison stricte vous oblige à vous authentifier à nouveau.

La cible de l’aller-retour est la connexion universelle de Forgejo sur frem.sh/user/login, et non une URL SSO propre à l’organisation. C’est délibéré : la connexion universelle accepte à la fois les boutons SSO configurés et le mot de passe local avec authentification à deux facteurs, ce qui préserve la procédure de secours SSO : si votre IdP est injoignable, un propriétaire d’organisation disposant d’identifiants locaux et de l’authentification à deux facteurs peut toujours s’authentifier, satisfaire le contrôle de liaison par organisation et accéder à l’administration de l’organisation. Passer par une URL SSO propre à l’organisation créerait un point de défaillance unique (l’IdP de l’organisation), que la conception du secours vise justement à éviter.

Deux niveaux de rigueur selon la configuration de votre IdP :

  • Liaison souple (par défaut, secours par identifiants locaux préservé) : une trace, par organisation, de qui a utilisé l’interface d’administration de chaque organisation et quand, et un aller-retour par Forgejo lors du premier accès à chaque organisation. Si votre session Forgejo est à jour, l’aller-retour est invisible et ne demande rien : il prouve la possession d’une session, pas une authentification récente. Si la session n’est pas à jour, vous vous reconnectez. La cible du rebond est frem.sh/user/login, qui accepte le mot de passe local avec authentification à deux facteurs, de sorte qu’une panne de l’IdP ne bloque pas les propriétaires d’organisation.
  • Liaison stricte (charges de travail réglementées) : une nouvelle attestation par l’IdP est imposée pour chaque organisation via OIDC prompt=login. L’aller-retour devient une véritable authentification attestée par l’IdP et limitée à cette organisation : l’IdP DOIT redemander les identifiants et la MFA, et notre callback vérifie que auth_time date de moins de 5 minutes. Cela se configure en enregistrant dans votre IdP un second client OIDC à côté de celui de Forgejo (même émetteur, client_id et client_secret distincts) et en collant ses identifiants dans Administration de l’organisation → SSO.

Les deux niveaux préservent la procédure de secours SSO : les propriétaires d’organisation disposant d’un mot de passe local et de l’authentification à deux facteurs peuvent se remettre de n’importe quelle panne de l’IdP. La liaison stricte n’impose une nouvelle authentification auprès de l’IdP que tant que l’IdP de votre organisation est joignable. Si votre IdP devient injoignable, votre procédure de secours existante fonctionne toujours.

SSO sur plusieurs organisations

Chaque organisation configure son propre IdP sous Administration de l’organisation → SSO. Les utilisateurs se connectent à une organisation donnée via le bouton <auth-source-name> de cette organisation sur frem.sh/user/login?redirect_to=/<slug> (ou via le processus de découverte frem.sh/_app/login, qui vous dirige vers la page de connexion de la bonne organisation selon le domaine de votre adresse e-mail).

Si vous êtes membre de deux organisations qui utilisent des IdP différents, vous vous authentifiez via l’IdP par lequel vous arrivez ; une fois votre session Forgejo établie, la navigation entre organisations fonctionne comme décrit ci-dessus. Si les deux organisations utilisent le même IdP (par exemple deux unités métier sur le même tenant Authentik), une seule authentification vous donne accès aux deux.

Le premier accès à une autre organisation vous fait rebondir une fois. La destination de ce rebond dépend de la configuration de la liaison stricte (un client OIDC d’authentification renforcée) par l’organisation :

  • Organisation à liaison stricte : le rebond mène à frem.sh/<slug>/_admin/-/stepup, qui lance une requête d’authentification OIDC avec prompt=login auprès du client d’authentification renforcée de l’organisation. Votre IdP redemande les identifiants et la MFA, le callback vérifie le jeton d’identité et la fraîcheur de auth_time, et vous arrivez sur l’URL d’origine avec une nouvelle trace de session pour cette organisation.
  • Organisation à liaison souple : le rebond mène à frem.sh/user/login. La connexion universelle de Forgejo présente les sources d’authentification disponibles : toujours le mot de passe local avec authentification à deux facteurs, plus le bouton SSO de votre organisation lorsqu’il est configuré. Si votre session Forgejo existante est récente, la page suit simplement redirect_to sans rien redemander.

Les deux niveaux laissent intact le secours par identifiants locaux. Un propriétaire d’organisation disposant d’un mot de passe local et de l’authentification à deux facteurs sur la connexion universelle de Forgejo peut se remettre de n’importe quelle panne de l’IdP ; la liaison par organisation ne change rien à cet engagement.

Données du compte et données de l’organisation

C’est la ligne de partage qui détermine qui est responsable de quoi au sens du RGPD et où trouver chaque paramètre.

DonnéesNiveauResponsable du traitementOù les gérer
Adresse e-mail, nom d’affichage, hachage du mot de passeComptefremverk ApSParamètres utilisateur → Sécurité et connexion
Clés SSH, clés GPGComptefremverk ApSParamètres utilisateur → Clés SSH / GPG
Jetons d’accès personnelsComptefremverk ApSParamètres utilisateur → Jetons d’accès Git
Inscription à l’authentification à deux facteurs et codes de récupérationComptefremverk ApSParamètres utilisateur → Sécurité et connexion
Mot de passe local (lorsque le SSO est aussi configuré)Comptefremverk ApSParamètres utilisateur → Sécurité et connexion
Liaison OIDCCompte, limitée à chaque organisationPropriétaire de l’organisation et IdPAdministration de l’organisation → SSO
Dépôts, tickets, PR, wikiOrganisationL’organisation (le Client)Administration de l’organisation / paramètres du dépôt
Secrets, runners et politiques de l’organisationOrganisationL’organisation (le Client)Administration de l’organisation
Journal d’auditOrganisationL’organisation (le Client)Journal d’audit
Facturation, factures, moyen de paiementOrganisationL’organisation (le Client)Administration de l’organisation → Facturation

Les données du compte sont régies par la politique de confidentialité du produit : fremverk ApS est le responsable du traitement. Le contenu de l’organisation est régi par l’accord de traitement des données : votre organisation est le responsable du traitement, et fremverk est le sous-traitant qui agit pour son compte.

Référence des paramètres du compte

frem.sh/user/settings est l’interface des paramètres personnels, affichée par Forgejo. Les sous-pages utiles :

  • Profil : nom, adresse e-mail, avatar, préférence de langue.
  • Sécurité et connexion : mot de passe local, authentification à deux facteurs, codes de récupération, suppression du compte. Voir Authentification à deux facteurs.
  • Clés SSH / GPG : les clés publiques pour les opérations Git et la signature des commits.
  • Jetons d’accès Git : jetons d’accès personnels (PAT). Les applications OAuth que vous avez autorisées sont listées, et révocables, sur frem.sh/user/settings/applications, qui n’a pas d’entrée dans le menu des paramètres.
  • Notifications : préférences de notification par e-mail et dans l’application.

Via l’API REST

Quelques opérations au niveau du compte sont aussi exposées sur l’API REST publique, ce qui est utile pour scripter l’amorçage de la CI, vérifier sur quelles organisations un jeton peut agir ou renouveler des PAT depuis une automatisation.

  • Lire votre profil et vos appartenances aux organisations GET /_app/api/v1/users/me
  • Émettre un jeton d’accès personnel POST /_app/api/v1/auth/tokens
  • Lister vos jetons actifs GET /_app/api/v1/auth/tokens
  • Révoquer un jeton DELETE /_app/api/v1/auth/tokens/:tokenId

Authentifiez-vous avec un jeton d’accès personnel (PAT) sous la forme Authorization: Bearer ${FREMFORGE_PAT}. L’émission d’un nouveau PAT exige une session de connexion active à l’interface d’administration ; la portée du jeton émis ne peut pas dépasser votre rôle.

curl -H "Authorization: Bearer ${FREMFORGE_PAT}" \
  https://frem.sh/_app/api/v1/users/me

Voir la référence de l’API REST publique pour la spécification OpenAPI complète.

Les interfaces du compte personnel citées ci-dessus (clés SSH, clés GPG, inscription à l’authentification à deux facteurs, suppression du compte) ne sont volontairement pas exposées sur l’API REST publique : ce sont des actions sur des identifiants personnels qui exigent, pour des raisons de sécurité, une session de navigateur connectée.

Supprimer votre compte fremforge (droit à l’effacement du RGPD)

En vertu de l’article 17 du RGPD, vous avez le droit d’obtenir l’effacement de vos données personnelles, sous réserve d’exceptions limitées liées aux obligations légales de conservation. fremverk ApS respecte ce droit en tant que responsable du traitement des données de votre compte.

Ce que vous pouvez supprimer vous-même

Paramètres utilisateur → Sécurité et connexion → Supprimer votre compte. La suppression en libre-service :

  1. Vous retire de toutes les organisations dont vous êtes actuellement membre. Le nombre d’utilisateurs de chaque organisation concernée est réduit au cycle de facturation suivant.
  2. Neutralise définitivement votre nom d’utilisateur pour qu’il ne puisse pas être réenregistré (cela empêche l’usurpation d’identité vis-à-vis des commits historiques et des entrées du journal d’audit).
  3. Supprime définitivement les données de votre compte personnel : profil, clés SSH, clés GPG, PAT, secret d’authentification à deux facteurs, hachages des codes de récupération, préférences de notification. Sous 30 jours ; purge des sauvegardes dans un délai supplémentaire de 30 jours conformément au DPA §9.
  4. Préserve vos contributions historiques : attribution des auteurs de commits, paternité des tickets et des PR, commentaires, entrées du journal d’audit qui vous nomment. Les supprimer corromprait chaque organisation qui s’appuie sur ces enregistrements pour établir qui a fait quoi. Votre nom d’utilisateur s’affiche sous la forme <deleted-account> dans l’interface, tandis que la référence sous-jacente à l’identifiant utilisateur (un entier stable) garde intacts l’historique d’audit et l’historique Git.

Ce qui nécessite le support

Deux cas nécessitent une démarche auprès de compliance@frem.sh :

  • Vous êtes l’unique propriétaire d’une organisation. La suppression en libre-service est bloquée. Désignez un autre propriétaire via Administration de l’organisation → Membres puis supprimez votre compte, ou écrivez à compliance@frem.sh pour demander la suppression conjointe de l’organisation et du compte.
  • Vous souhaitez que vos contributions historiques soient activement réécrites. Par défaut, l’attribution est conservée sous un nom d’utilisateur neutralisé. Si vous disposez d’une base juridique documentée pour un effacement plus poussé (par exemple un changement de nom légal définitif attesté par des documents judiciaires), écrivez à compliance@frem.sh en précisant cette base. Chaque demande est examinée individuellement au regard des limites de l’article 17(3) du RGPD.

Ce que nous ne supprimons pas sur demande

Conformément à l’article 17(3) du RGPD, les éléments suivants peuvent être conservés après la suppression du compte :

  • Les données de facturation et les factures des organisations auxquelles vous étiez associé, conservées 5 ans conformément au droit comptable danois (Bogføringsloven).
  • Les entrées du journal d’audit relatives à la sécurité et aux abus, lorsque leur conservation est nécessaire à la constatation, à l’exercice ou à la défense de droits en justice, ou au respect d’une obligation légale (par exemple les signalements d’abus au titre de l’article 16 du DSA, conservés 5 ans conformément à la politique de confidentialité §6).
  • Les indicateurs opérationnels agrégés et anonymisés, qui ne permettent pas de vous identifier et sortent du champ des données personnelles au sens du RGPD.

Vérification avant suppression

La suppression du compte est destructrice et irréversible. Le processus en libre-service exige une nouvelle authentification (mot de passe local, ou authentification renforcée auprès de l’IdP si vous utilisez uniquement le SSO) et une confirmation par la saisie de votre nom d’utilisateur, selon le même schéma natif de Forgejo que pour la suppression d’un dépôt. Un e-mail de confirmation est envoyé lors de la soumission, puis à nouveau à la fin de la période de purge des sauvegardes.

Réactivation

Une fois la suppression terminée, le compte ne peut pas être réactivé. Le nom d’utilisateur reste réservé à l’identifiant utilisateur supprimé afin de protéger l’attribution historique : vous ne pouvez donc pas réenregistrer le même nom d’utilisateur lors d’une nouvelle inscription. Si vous souhaitez réutiliser fremforge, inscrivez-vous avec une nouvelle adresse e-mail et un autre nom d’utilisateur.

Références croisées