Zum Hauptinhalt springen

Dein fremforge-Konto

Ein fremforge-Konto ist deine persönliche Identität auf der Plattform. Eine Organisation ist ein abrechenbarer Mandant, ein Arbeitsbereich, in dem Repositorys, Mitglieder, Secrets, CI-Läufe und Richtlinien liegen. Beides sind bewusst getrennte Konzepte. Diese Seite erklärt, was wo liegt, wie beides zusammenspielt und wie du das eine oder das andere entfernst.

Ein Konto, viele Organisationen

Du registrierst dich einmal. Du erhältst ein persönliches Konto unter frem.sh/<your-username> mit deiner E-Mail-Adresse, deinen SSH-Schlüsseln, deinen persönlichen Zugriffstoken, deiner Zwei-Faktor-Authentifizierung und deinem lokalen Passwort (falls du eines gesetzt hast). Überall, wo du dich bei fremforge authentifizierst, ob Oberfläche, Git oder API, authentifizierst du dich als dieses Konto.

Die Mitgliedschaft in einer Organisation ist eine eigene Beziehung. Dein eines Konto kann Mitglied in keiner, einer oder vielen Organisationen sein. Jede Organisation bezahlt für dich einen eigenen Nutzer. Die Organisationen, denen du angehörst, siehst du im Organisationswechsler der Oberfläche.

Zwei Folgen, die du verinnerlichen solltest:

  • Wirst du aus einer Organisation entfernt, wird dein Konto nicht gelöscht. Administratoren einer Organisation können dich jederzeit daraus entfernen. Damit verlierst du den Zugriff auf ihre Repos und sie einen abrechenbaren Nutzer, aber dein persönliches Konto bleibt bestehen, und du kannst anderen Organisationen beitreten.
  • Löschst du dein Konto, werden die Organisationen, denen du angehörst, nicht gelöscht. Bist du einziger Owner einer Organisation, verlangt die Plattform, dass du entweder einen weiteren Owner benennst oder die Organisation vollständig kündigst, bevor deine Kontolöschung abgeschlossen werden kann.

Einer zweiten Organisation beitreten

Du kannst gründender Administrator mehrerer fremforge-Organisationen sein, ohne mehrere Konten anzulegen. Zwei Fälle:

  • Dieselbe E-Mail-Adresse, neue Registrierung. Registrierst du unter frem.sh/_app/signup eine neue Organisation mit einer E-Mail-Adresse, zu der es bereits ein fremforge-Konto gibt, erkennt der Registrierungsablauf den bestehenden Nutzer, verwendet ihn weiter und fügt dich als Owner der neuen Organisation hinzu. Du bekommst kein zweites Passwort: Deine bestehenden Zugangsdaten gelten für beide Organisationen, und der Button in der Willkommens-E-Mail lautet „<slug> öffnen →“ (Anmeldung mit deinem bestehenden Passwort) statt des einmaligen Links „Bei fremforge anmelden →“, den ein ganz neuer Administrator erhält. (Keine Willkommens-E-Mail von fremforge enthält jemals ein Passwort.)
  • Einladung in eine bestehende Organisation. Lädt ein anderer Administrator deine E-Mail-Adresse ein, nimmst du die Einladung unter frem.sh/user/notifications an und wirst Mitglied seiner Organisation. Kein zweites Konto, kein zweites Passwort.

Jede Organisation hat ihre eigene Abrechnungsbeziehung mit fremverk, ihre eigene Nutzerzahl, ihr eigenes Mollie-Mandat, ihre eigenen Rechnungen und ihre eigene Verwaltung unter frem.sh/<slug>/_admin/billing. Eine zusammengefasste Rechnung über mehrere Organisationen gibt es nicht.

Zwischen Organisationen wechseln

Auf frem.sh/_app gibt es keinen eingebauten Organisationswechsler, die Verwaltung pro Mandant richtet sich nach dem Slug im URL-Pfad (/<slug>/_admin/...). Der natürliche Wechsler liegt auf der Forgejo-Seite unter frem.sh:

  1. Melde dich unter frem.sh/user/login an (oder klicke irgendwo auf der Marketing-Website auf „Anmelden“; das führt dich zur Erkennung der E-Mail-Domain über frem.sh/_app/login, siehe So funktioniert die Anmeldung).
  2. Dein Dashboard zeigt jede Organisation, der du angehörst. Klicke eine an, um zu arbeiten: Repos, Issues, CI, Einstellungen.
  3. Um die fremforge-Verwaltung (Abrechnung, SSO, Mitglieder) einer bestimmten Organisation zu öffnen, rufe frem.sh/<slug>/_admin/billing auf. Am häufigsten legt man sich für jede verwaltete Organisation ein Lesezeichen auf die Verwaltungs-URL an.

Die Sitzungsbindung pro Organisation ist für jeden Mandanten standardmäßig aktiv. Wenn du die Verwaltung einer Organisation zum ersten Mal öffnest, schickt fremforge dich durch eine Anmelde-Rundreise für diese Organisation und hält das bis zu 8 Stunden pro Organisation fest. Was diese Rundreise beweist, hängt von der Stufe ab (siehe unten). Bei weicher Bindung beweist sie, dass dein Browser eine gültige Anmeldung besitzt, nicht, dass du dich gerade erneut angemeldet hast. Nur bei harter Bindung musst du dich erneut authentifizieren.

Ziel der Rundreise ist die universelle Anmeldung von Forgejo unter frem.sh/user/login, keine SSO-URL pro Organisation. Das ist Absicht: Die universelle Anmeldung akzeptiert alle eingerichteten SSO-Buttons und lokales Passwort + 2FA. So bleibt der Weg über SSO-Break-Glass erhalten: Ist dein IdP nicht erreichbar, kann sich ein Owner der Organisation mit lokalen Zugangsdaten und 2FA trotzdem authentifizieren, die Prüfung der Sitzungsbindung bestehen und die Verwaltung erreichen. Eine Umleitung über eine SSO-URL pro Organisation würde einen Single Point of Failure schaffen (den IdP der Organisation), den das Break-Glass-Konzept gerade vermeiden soll.

Je nachdem, wie dein IdP angebunden ist, gibt es zwei Stufen:

  • Weiche Bindung (Standard, Break-Glass mit lokalen Zugangsdaten bleibt erhalten): ein Eintrag pro Organisation, wer ihre Verwaltung wann genutzt hat, und eine Rundreise über Forgejo beim ersten Zugriff auf jede Organisation. Ist deine Forgejo-Sitzung aktuell, bemerkst du die Rundreise nicht und musst nichts eingeben: Sie beweist den Besitz der Sitzung, keine frische Authentifizierung. Ist die Sitzung nicht aktuell, meldest du dich erneut an. Ziel der Umleitung ist frem.sh/user/login, das lokales Passwort + 2FA akzeptiert, sodass ein IdP-Ausfall die Owner nicht aussperrt.
  • Harte Bindung (regulierte Umgebungen): erzwungene erneute Bestätigung durch den IdP pro Organisation über OIDC prompt=login. Die Rundreise wird zu einer echten, vom IdP bestätigten Authentifizierung für diese Organisation; der IdP MUSS erneut nach Zugangsdaten und MFA fragen, und unser Callback prüft, dass auth_time höchstens 5 Minuten zurückliegt. Eingerichtet wird sie, indem du in deinem IdP neben dem Forgejo-Client einen zweiten OIDC-Client registrierst (gleicher Issuer, eigene client_id + client_secret) und die Zugangsdaten unter Organisationsverwaltung → SSO einträgst.

Beide Stufen erhalten den Weg über SSO-Break-Glass: Owner mit lokalem Passwort + 2FA können jeden IdP-Ausfall überbrücken. Harte Bindung erzwingt eine frische Authentifizierung beim IdP nur, solange der IdP deiner Organisation erreichbar ist. Wird er unerreichbar, funktioniert dein bestehendes Break-Glass-Verfahren weiterhin.

SSO über mehrere Organisationen

Jede Organisation bindet unter Organisationsverwaltung → SSO ihren eigenen IdP an. Nutzer melden sich bei einer bestimmten Organisation über deren Button <auth-source-name> auf frem.sh/user/login?redirect_to=/<slug> an (oder über die Erkennung unter frem.sh/_app/login, die dich anhand der Domain deiner E-Mail-Adresse zur Anmeldeseite der richtigen Organisation führt).

Bist du Mitglied zweier Organisationen mit unterschiedlichen IdPs, authentifizierst du dich über den IdP, über den du hereinkommst; sobald deine Forgejo-Sitzung steht, funktioniert die Navigation zwischen den Organisationen wie oben beschrieben. Nutzen beide Organisationen denselben IdP (z. B. zwei Geschäftsbereiche im selben Authentik-Mandanten), trägt dich eine Authentifizierung durch beide.

Der erste Zugriff auf eine weitere Organisation leitet dich einmal um. Wohin, hängt davon ab, ob die Organisation harte Bindung eingerichtet hat (einen Step-up-OIDC-Client):

  • Organisation mit harter Bindung: Die Umleitung geht zu frem.sh/<slug>/_admin/-/stepup, das eine OIDC-AuthN-Anfrage mit prompt=login an den Step-up-Client der Organisation stellt. Dein IdP fragt erneut nach Zugangsdaten und MFA, der Callback prüft das ID-Token und die Aktualität von auth_time, und du landest mit einem frischen Sitzungseintrag für die Organisation auf der ursprünglichen URL.
  • Organisation mit weicher Bindung: Die Umleitung geht zu frem.sh/user/login. Die universelle Anmeldung von Forgejo zeigt die verfügbaren Anmeldequellen, lokales Passwort + 2FA immer, dazu den SSO-Button deiner Organisation, falls eingerichtet. Ist deine bestehende Forgejo-Sitzung frisch, folgt die Seite einfach redirect_to, ohne erneut zu fragen.

Beide Stufen lassen das Break-Glass mit lokalen Zugangsdaten unangetastet. Ein Owner mit lokalem Passwort + 2FA bei der universellen Forgejo-Anmeldung kann jeden IdP-Ausfall überbrücken; die Bindung pro Organisation ändert an dieser Zusage nichts.

Daten auf Konto- und auf Organisationsebene

Das ist die Trennlinie, die festlegt, wer nach DSGVO worüber bestimmt und wo du welche Einstellung findest.

DatenLiegen aufVerantwortlicherWo verwalten
E-Mail-Adresse, Anzeigename, Passwort-HashKontofremverk ApSBenutzereinstellungen → Sicherheit und Anmeldung
SSH-Schlüssel, GPG-SchlüsselKontofremverk ApSBenutzereinstellungen → SSH- / GPG-Schlüssel
Persönliche ZugriffstokenKontofremverk ApSBenutzereinstellungen → Git-Zugriffstoken
2FA-Registrierung + WiederherstellungscodesKontofremverk ApSBenutzereinstellungen → Sicherheit und Anmeldung
Lokales Passwort (wenn auch SSO eingerichtet ist)Kontofremverk ApSBenutzereinstellungen → Sicherheit und Anmeldung
OIDC-VerknüpfungKonto, pro OrganisationOwner der Organisation + IdPOrganisationsverwaltung → SSO
Repositorys, Issues, PRs, WikiOrganisationDie Organisation (Kunde)Organisationsverwaltung / Repo-Einstellungen
Secrets, Runner und Richtlinien der OrganisationOrganisationDie Organisation (Kunde)Organisationsverwaltung
Audit-LogOrganisationDie Organisation (Kunde)Audit-Log
Abrechnung, Rechnungen, ZahlungsmittelOrganisationDie Organisation (Kunde)Organisationsverwaltung → Abrechnung

Für Daten auf Kontoebene gilt der Datenschutzhinweis für das Produkt; Verantwortlicher ist fremverk ApS. Für Inhalte auf Organisationsebene gilt der Auftragsverarbeitungsvertrag; Verantwortlicher ist deine Organisation, fremverk ist der Auftragsverarbeiter in ihrem Auftrag.

Übersicht der Kontoeinstellungen

frem.sh/user/settings ist die Seite für persönliche Einstellungen, dargestellt von Forgejo. Die relevanten Unterseiten:

  • Profil: Name, E-Mail-Adresse, Avatar, Sprache.
  • Sicherheit und Anmeldung: lokales Passwort, 2FA, Wiederherstellungscodes, Kontolöschung. Siehe Zwei-Faktor-Authentifizierung.
  • SSH- / GPG-Schlüssel: öffentliche Schlüssel für Git-Operationen und das Signieren von Commits.
  • Git-Zugriffstoken: persönliche Zugriffstoken (PATs). OAuth-Anwendungen, die du autorisiert hast, siehst und widerrufst du unter frem.sh/user/settings/applications; diese Seite hat keinen Eintrag im Einstellungsmenü.
  • Benachrichtigungen: Einstellungen für Benachrichtigungen per E-Mail und in der Anwendung.

Über die REST-API

Einige Operationen auf Kontoebene stehen auch in der öffentlichen REST-API zur Verfügung, praktisch, wenn du die Einrichtung einer CI skriptest, prüfst, in welchen Organisationen ein Token handeln darf, oder PATs automatisiert rotierst.

  • Profil + Mitgliedschaften in Organisationen lesen GET /_app/api/v1/users/me
  • Persönliches Zugriffstoken ausstellen POST /_app/api/v1/auth/tokens
  • Aktive Token auflisten GET /_app/api/v1/auth/tokens
  • Token widerrufen DELETE /_app/api/v1/auth/tokens/:tokenId

Authentifiziere dich mit einem persönlichen Zugriffstoken (PAT) als Authorization: Bearer ${FREMFORGE_PAT}. Um ein neues PAT auszustellen, brauchst du eine aktive Anmeldesitzung in der Verwaltungsoberfläche; der Scope des ausgestellten Tokens kann deine Rolle nicht übersteigen.

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

Die vollständige OpenAPI-Spezifikation findest du in der Referenz der öffentlichen REST-API.

Die oben genannten Bereiche des persönlichen Kontos (SSH-Schlüssel, GPG-Schlüssel, 2FA-Registrierung, Kontolöschung) stehen bewusst nicht in der öffentlichen REST-API zur Verfügung: Es sind Aktionen mit persönlichen Zugangsdaten, die aus Sicherheitsgründen eine angemeldete Browsersitzung voraussetzen.

Dein fremforge-Konto löschen (DSGVO-Recht auf Löschung)

Nach Art. 17 DSGVO hast du das Recht, deine personenbezogenen Daten löschen zu lassen, mit eng begrenzten Ausnahmen für gesetzliche Aufbewahrungspflichten. fremverk ApS unterstützt dieses Recht als Verantwortlicher für deine Kontodaten.

Was du selbst löschen kannst

Benutzereinstellungen → Sicherheit und Anmeldung → Konto löschen. Die Löschung in Eigenregie:

  1. Entfernt dich aus jeder Organisation, deren Mitglied du gerade bist. Die Nutzerzahl jeder betroffenen Organisation sinkt zum nächsten Abrechnungszeitraum.
  2. Sperrt deinen Benutzernamen dauerhaft, sodass er nicht erneut registriert werden kann (das verhindert, dass sich jemand gegenüber alten Commits und Audit-Log-Einträgen als du ausgibt).
  3. Löscht deine persönlichen Kontodaten endgültig: Profil, SSH-Schlüssel, GPG-Schlüssel, PATs, 2FA-Secret, Hashes der Wiederherstellungscodes, Benachrichtigungseinstellungen. Innerhalb von 30 Tagen; die Bereinigung der Backups folgt innerhalb weiterer 30 Tage gemäß § 9 des Auftragsverarbeitungsvertrags.
  4. Erhält deine bisherigen Beiträge: die Zuordnung als Commit-Autor, die Urheberschaft von Issues und PRs, Kommentare und Audit-Log-Einträge, die dich nennen. Sie zu entfernen würde jede Organisation beschädigen, die sich auf diese Datensätze als Nachweis dafür stützt, wer was getan hat. In der laufenden Oberfläche erscheint dein Benutzername als <deleted-account>, während die zugrunde liegende Nutzer-ID (eine stabile Ganzzahl) Audit- und Git-Historie intakt hält.

Was über den Support läuft

Zwei Fälle erfordern eine Anfrage an compliance@frem.sh:

  • Du bist einziger Owner einer Organisation. Die Löschung in Eigenregie ist gesperrt. Benenne entweder unter Organisationsverwaltung → Mitglieder einen weiteren Owner und lösche dann dein Konto, oder bitte compliance@frem.sh schriftlich, Organisation und Konto gemeinsam zu löschen.
  • Du möchtest, dass bisherige Beiträge aktiv umgeschrieben werden. Standardmäßig bleibt die Zuordnung unter einem gesperrten Benutzernamen erhalten. Hast du eine dokumentierte Rechtsgrundlage für eine weitergehende Löschung (zum Beispiel eine rechtskräftige Namensänderung, die durch Gerichtsunterlagen belegt ist), schreib an compliance@frem.sh und nenne die Grundlage. Jede Anfrage wird einzeln anhand der Einschränkungen aus Art. 17 Abs. 3 DSGVO geprüft.

Was wir auf Anfrage nicht löschen

Nach Art. 17 Abs. 3 DSGVO darf Folgendes nach der Kontolöschung aufbewahrt werden:

  • Abrechnungs- und Rechnungsunterlagen von Organisationen, mit denen du verbunden warst, aufbewahrt für 5 Jahre nach dänischem Buchführungsrecht (Bogføringsloven).
  • Audit-Log-Einträge zu Sicherheit und Missbrauch, soweit die Aufbewahrung zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zur Erfüllung einer rechtlichen Verpflichtung erforderlich ist (z. B. Meldungen von Missbrauch nach Art. 16 DSA, aufbewahrt für 5 Jahre gemäß § 6 des Datenschutzhinweises).
  • Aggregierte, anonymisierte Betriebskennzahlen, die dich nicht identifizieren können und nicht unter den Begriff der personenbezogenen Daten der DSGVO fallen.

Bestätigung vor der Löschung

Die Kontolöschung ist destruktiv und unumkehrbar. Der Ablauf in Eigenregie verlangt eine erneute Authentifizierung (lokales Passwort oder ein Step-up beim IdP, wenn du nur SSO nutzt) und eine Bestätigung durch Eintippen deines Benutzernamens, dasselbe Forgejo-eigene Muster wie beim Löschen eines Repositorys. Beim Absenden wird eine Bestätigungs-E-Mail verschickt und eine weitere, wenn das Zeitfenster für die Bereinigung der Backups abgelaufen ist.

Reaktivierung

Ist die Löschung abgeschlossen, lässt sich das Konto nicht wieder aktivieren. Der Benutzername bleibt für die gelöschte Nutzer-ID reserviert, um die bisherige Zuordnung zu schützen; du kannst denselben Benutzernamen also nicht bei einer neuen Registrierung wieder verwenden. Möchtest du fremforge erneut nutzen, registriere dich mit einer neuen E-Mail-Adresse und einem anderen Benutzernamen.

Querverweise