Mit Single Sign-on melden sich Personen auf den bestätigten Domains deiner Organisation mit dem Konto bei 50heads an, das sie schon bei der Arbeit nutzen. Die Anmeldeseite ihrer Firma (dein Identitätsanbieter, etwa Okta, Microsoft Entra ID oder Google Workspace) prüft, wer sie sind, und schickt sie angemeldet zu 50heads zurück. Das funktioniert mit OpenID Connect oder SAML 2.0: Du wählst das, was die App bei deinem Identitätsanbieter nutzt.

Wir schalten Single Sign-on nach und nach für Organisationen frei. Siehst du unter Einstellungen, dann Organisation keinen Bereich Single Sign-on, ist es für deine Organisation noch nicht an. Schreib uns, wenn du es möchtest.

Bevor du anfängst

  • Deine Organisation braucht mindestens eine bestätigte Domain. Nur Personen, deren E-Mail-Adresse auf einer bestätigten Domain liegt, können Single Sign-on nutzen. Siehe Deine Organisation und ihre Domains.
  • Du musst Inhaber oder Admin eines Teams der Organisation sein und auf der Website angemeldet.
  • Deine eigene E-Mail-Adresse sollte auf der bestätigten Domain liegen und ein Konto bei deinem Identitätsanbieter haben. Du brauchst es für die Testanmeldung.

OpenID Connect oder SAML

Beide erledigen dieselbe Aufgabe, und wer sich anmeldet, merkt keinen Unterschied. Nimm das, was zu deinem Identitätsanbieter passt:

  • OpenID Connect braucht eine Client-ID und ein Client-Secret von deinem Identitätsanbieter. Die meisten neueren Einrichtungen nutzen es.
  • SAML 2.0 braucht kein Secret. Du gibst deinem Identitätsanbieter drei Werte von 50heads und bekommst eine Metadaten-Datei oder -URL zurück. Nimm es, wenn dein IT-Team SAML-Apps bevorzugt oder schon andere SAML-Apps betreibt.

Wähl in Einstellungen, dann Organisation oben bei Dein Identitätsanbieter OpenID Connect oder SAML 2.0. Du kannst später wechseln. Ein Wechsel zählt als Änderung der Anbieter-Einstellungen, deshalb bleibt Single Sign-on aus, bis ein neuer Test klappt. Nach einem Wechsel bestätigen Personen, die sich vorher schon angemeldet haben, ihr Konto noch einmal mit einem 6-stelligen Code per E-Mail.

Mit OpenID Connect: was du beim Identitätsanbieter einträgst

Leg bei deinem Identitätsanbieter eine Webanwendung (manchmal Client genannt) mit diesen Einstellungen an. Die Einstellungsseite zeigt die genaue Weiterleitungs-URI zum Kopieren.

Einstellung Wert
Typ Webanwendung, OpenID Connect, Autorisierungscode
Weiterleitungs-URI https://api.50heads.com/v1/auth/sso/callback
Scopes openid email profile
PKCE S256 (50heads sendet es immer)

Kopier aus der Anwendung drei Angaben in 50heads: die Aussteller-URL (Issuer), die Client-ID und das Client-Secret.

Okta (OpenID Connect)

  1. Geh in der Admin Console zu Applications, dann Create App Integration. Wähl OIDC – OpenID Connect und Web Application.
  2. Nutz nur den Grant-Typ Authorization Code und trag die Weiterleitungs-URI als Sign-in-Redirect-URI ein.
  3. Weis die Personen oder Gruppen zu, die 50heads nutzen dürfen.
  4. Kopier Client ID und Client secret vom Reiter General.
  5. Die Aussteller-URL ist deine Okta-Domain, etwa https://example.okta.com, oder ein eigener Autorisierungsserver, etwa https://example.okta.com/oauth2/default.

Microsoft Entra ID (OpenID Connect)

  1. Geh im Entra Admin Center zu App-Registrierungen, dann Neue Registrierung. Wähl einen einzelnen Mandanten und trag die Weiterleitungs-URI mit der Plattform Web ein.
  2. Erstell unter Zertifikate & Geheimnisse einen geheimen Clientschlüssel und kopier seinen Wert (nicht die ID). Merk dir, wann er abläuft.
  3. Kopier die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant).
  4. Die Aussteller-URL ist https://login.microsoftonline.com/<Mandanten-ID>/v2.0. Nutz nicht die Adressen common oder organizations.
  5. Füg unter Tokenkonfiguration die optionalen Ansprüche email und xms_edov hinzu. Entra sagt sonst nirgends, dass eine E-Mail-Adresse bestätigt ist, deshalb wird ohne xms_edov jede Anmeldung abgelehnt.

Google Workspace (OpenID Connect)

  1. Stell in der Google Cloud Console, in einem Projekt deiner Workspace-Organisation, den OAuth-Zustimmungsbildschirm auf Intern.
  2. Erstell eine OAuth-Client-ID vom Typ Webanwendung mit der Weiterleitungs-URI als autorisierter Weiterleitungs-URI.
  3. Kopier Client-ID und Clientschlüssel.
  4. Die Aussteller-URL ist https://accounts.google.com. Nur Konten deines Workspace können sich so anmelden, nie private Gmail-Konten.

Mit SAML: was du beim Identitätsanbieter einträgst

Leg bei deinem Identitätsanbieter eine SAML-App für 50heads an. Die Einstellungsseite zeigt die genauen Werte zum Kopieren, und mit Unsere Metadaten herunterladen bekommst du sie als Metadaten-Datei.

Einstellung Wert
Single-Sign-on-URL, Antwort-URL oder Assertion-Consumer-Service-URL (ACS) https://api.50heads.com/v1/auth/sso/saml/acs
Entitäts-ID, Audience oder Bezeichner https://api.50heads.com/v1/auth/sso/saml/metadata/<Organisations-ID> (die Einstellungsseite zeigt deine)
Name-ID-Format E-Mail-Adresse
Signatur Signier die Assertion (oder die ganze Antwort) mit RSA-SHA256. SHA-1 wird abgelehnt
Signierte Anfragen Aus. 50heads signiert seine Anfragen nicht
Verschlüsselung der Assertion Aus. 50heads nimmt keine verschlüsselten Assertions an

Die Name-ID sollte die geschäftliche E-Mail-Adresse der Person sein. Schickt dein Identitätsanbieter eine andere Name-ID, schick zusätzlich ein Attribut namens email mit der Adresse.

Gib 50heads aus der App die Metadaten: eine URL (wir lesen sie beim Speichern, und nur über https) oder die Metadaten-Datei. Die Metadaten nennen deinen Identitätsanbieter, seine Anmelde-URL und sein Signaturzertifikat.

Okta (SAML)

  1. Geh in der Admin Console zu Applications, dann Create App Integration, und wähl SAML 2.0.
  2. Setz Single sign-on URL auf die ACS-URL und Audience URI (SP Entity ID) auf die Entitäts-ID. Lass Use this for Recipient URL and Destination URL angehakt.
  3. Setz Name ID format auf EmailAddress und Application username auf Email.
  4. Optional: Füg unter Attribute Statements email mit dem Wert user.email hinzu.
  5. Weis die App den Personen oder Gruppen zu, die 50heads nutzen dürfen.
  6. Kopier auf dem Tab Sign On die Metadata URL in 50heads.

Microsoft Entra ID (SAML)

  1. Geh im Entra Admin Center zu Unternehmensanwendungen, dann Neue Anwendung, dann Eigene Anwendung erstellen. Wähl Nicht im Katalog enthaltene Anwendung integrieren.
  2. Wähl unter Einmaliges Anmelden SAML. Setz in SAML-Basiskonfiguration Bezeichner (Entitäts-ID) auf die Entitäts-ID und Antwort-URL (Assertionsverbraucherdienst-URL) auf die ACS-URL. Lass Anmelde-URL und Relaystatus leer.
  3. Setz unter Attribute und Ansprüche den eindeutigen Benutzerbezeichner (Name-ID) auf die E-Mail-Adresse des Benutzers, im Format E-Mail-Adresse. Entra schickt die Adresse schon im Anspruch http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress.
  4. Lass unter SAML-Zertifikate die Signaturoption auf SAML-Assertion signieren und den Algorithmus auf SHA-256. Kopier die App-Verbundmetadaten-URL in 50heads.
  5. Weis die App unter Benutzer und Gruppen den Personen oder Gruppen zu, die 50heads nutzen dürfen.

Google Workspace (SAML)

  1. Geh in der Google Admin-Konsole zu Apps, dann Web- und mobile Apps, dann App hinzufügen, dann Benutzerdefinierte SAML-App hinzufügen.
  2. Wähl auf der Seite Details zum Google-Identitätsanbieter Metadaten herunterladen. Diese Datei gibst du 50heads.
  3. Setz ACS-URL auf die ACS-URL und Entitäts-ID auf die Entitäts-ID. Lass Signierte Antwort aus: Google signiert die Assertion, und die prüft 50heads.
  4. Setz Format der Namens-ID auf EMAIL und Namens-ID auf Grundlegende Informationen > Primäre E-Mail-Adresse.
  5. Schalt die App für die Personen oder Organisationseinheiten ein, die 50heads nutzen dürfen.
  6. Füg in 50heads den Inhalt der Metadaten-Datei ein oder wähl die Datei aus.

In 50heads einrichten

  1. Öffne Einstellungen, dann Organisation und wähl Bestätige, dass du es bist, falls danach gefragt wird. Jede Änderung braucht diese Bestätigung, sie gilt 10 Minuten.
  2. Wähl unter Single Sign-on das Protokoll. Für OpenID Connect gibst du die Aussteller-URL, die Client-ID und das Client-Secret ein. Wir speichern das Secret verschlüsselt und zeigen nur seine letzten vier Zeichen. Für SAML gibst du die Metadaten-URL ein oder fügst die Metadaten-Datei ein bzw. wählst sie aus. Wir zeigen die Entitäts-ID deines Identitätsanbieters, seine Anmelde-URL und wann sein Zertifikat abläuft.
  3. Wähl das Team, in das Personen bei ihrer ersten Anmeldung kommen, und ihre Rolle: Mitglied, Betrachter oder Admin. Nie Inhaber oder Abrechnung. Wer schon in einem Team der Organisation ist, bleibt, wo er ist.
  4. Wähl Einstellungen speichern. Wir lesen die Einstellungen deines Identitätsanbieters sofort, damit eine vertippte Aussteller-URL oder eine falsche Metadaten-Datei jetzt auffällt und nicht erst, wenn sich jemand anmelden will.

Testanmeldung

Wähl Testanmeldung starten. Du gehst zu deinem Identitätsanbieter, meldest dich als du selbst an und kommst mit dem Ergebnis auf die Einstellungsseite zurück.

  • Niemand kann Single Sign-on nutzen, bevor ein Test geklappt hat.
  • Jede Änderung an Aussteller-URL, Client-ID, Client-Secret oder daran, wie das Secret gesendet wird, braucht einen neuen Test. Bei SAML gilt das auch für eine neue Entitäts-ID des Identitätsanbieters, eine neue Anmelde-URL oder ein Zertifikat, das das aktuelle ersetzt.
  • Teste als du selbst. Ein Test, der dich selbst anmeldet, verbindet auch dein 50heads-Konto mit deiner Firmenanmeldung.

Einschalten

Sobald ein Test geklappt hat, wähl Einschalten. Personen mit einer E-Mail-Adresse auf deinen bestätigten Domains sehen dann Weiter mit der Firmenanmeldung, wenn sie auf der Anmeldeseite ihre E-Mail-Adresse eingeben. E-Mail-Codes, Apple, Google und Passkeys funktionieren weiterhin.

Bei der ersten Anmeldung auf diesem Weg:

  • Hat die Person kein 50heads-Konto, legen wir eins an und fügen sie dem gewählten Team mit der gewählten Rolle hinzu.
  • Hat sie schon ein 50heads-Konto mit dieser E-Mail-Adresse, führen wir die Konten nie allein über die E-Mail-Adresse zusammen. Wir schicken einen einmaligen 6-stelligen Code an diese Adresse. Sie gibt ihn einmal ein, danach öffnet die Firmenanmeldung ihr bestehendes Konto.

Zur Pflicht machen

Wähl Zur Pflicht machen, damit dein Identitätsanbieter für Adressen auf deinen bestätigten Domains der einzige Weg hinein ist. Vorher musst du seit der letzten Änderung selbst einen Test gemacht haben, der geklappt hat, angemeldet als du selbst. So kannst du dich nicht aussperren.

Solange Single Sign-on Pflicht ist:

  • Schicken wir keine E-Mail-Codes an Adressen auf deinen bestätigten Domains. Die Anmeldeseite schickt sie stattdessen zur Firmenanmeldung.
  • Funktioniert die Anmeldung mit Apple, Google oder Passkey für diese Adressen nicht mehr, außer für Notfall-Inhaber.
  • Werden beim Einschalten Mitglieder deiner Teams auf diesen Domains abgemeldet, die sich anders angemeldet hatten. Sie melden sich danach über deinen Identitätsanbieter an. Notfall-Inhaber bleiben angemeldet, ebenso die Sitzung, mit der du es eingeschaltet hast.
  • Sind die Anbieter-Einstellungen gesperrt, außer bei SAML-Zertifikatswechseln mit Aktuelles Zertifikat auch behalten (siehe unten). Um etwas anderes zu ändern, verlang Single Sign-on nicht mehr, ändere es und teste noch einmal.

Du kannst Single Sign-on jederzeit nicht mehr verlangen, dann funktionieren E-Mail-Codes sofort wieder. Gilt eine deiner Domains nicht mehr als bestätigt, endet die Pflicht für diese Domain sofort, damit niemand ausgesperrt wird.

SAML-Zertifikate wechseln

Dein Identitätsanbieter signiert jede SAML-Anmeldung mit einem Zertifikat, und Zertifikate laufen ab. Die Einstellungsseite zeigt, wann jedes abläuft, und warnt dich 30 Tage vorher.

So wechselst du Zertifikate, ohne dass Anmeldungen unterbrochen werden:

  1. Hol dir bei deinem Identitätsanbieter die Metadaten mit dem neuen Zertifikat. Bei den meisten Identitätsanbietern kannst du ein neues Zertifikat hinzufügen, bevor du es aktiv machst.
  2. Gib in 50heads die Metadaten-URL noch einmal ein (oder die neue Datei) und hak Aktuelles Zertifikat auch behalten an. 50heads akzeptiert dann beide, und Single Sign-on bleibt an, auch wenn es Pflicht ist.
  3. Mach das neue Zertifikat bei deinem Identitätsanbieter aktiv.
  4. Wähl in 50heads neben dem alten Zertifikat Nicht mehr akzeptieren.

50heads akzeptiert höchstens 2 Zertifikate gleichzeitig. Ein Zertifikat zu ersetzen, ohne das alte zu behalten, zählt als Änderung der Anbieter-Einstellungen: Es braucht einen neuen Test und geht nicht, solange Single Sign-on Pflicht ist.

Anmeldung über die App-Liste des Identitätsanbieters (SAML)

Mit SAML können Personen auch über die 50heads-Kachel in der App-Liste ihrer Firma starten (manchmal IdP-initiierte Anmeldung genannt). Das ist aus, bis du Anmeldung über die App-Liste des Identitätsanbieters erlauben einschaltest.

Anmeldungen, die bei deinem Identitätsanbieter beginnen, lassen sich keiner Anfrage von 50heads zuordnen, deshalb sind wir bei ihnen strenger. Jede wird nur einmal angenommen, nur innerhalb von 5 Minuten, nachdem dein Identitätsanbieter sie ausgestellt hat, und führt immer zur Startseite von 50heads, egal was die App verlangt. Lass das aus, wenn deine Leute die Kachel nicht brauchen. Anmeldungen, die auf der Anmeldeseite von 50heads beginnen, funktionieren so oder so.

Notfall-Inhaber

Notfall-Inhaber können sich mit einem Passkey anmelden, auch wenn Single Sign-on Pflicht ist. Sie sind für den Fall da, dass dein Identitätsanbieter ausfällt oder falsch eingerichtet ist.

  • Du kannst bis zu 2 haben. Sie müssen Inhaber eines Teams der Organisation sein und einen Passkey in ihrem 50heads-Konto haben.
  • Nur Inhaber können sie hinzufügen oder entfernen.
  • Jede Notfall-Anmeldung wird im Aktivitätsprotokoll festgehalten und allen Admins per E-Mail gemeldet.
  • Änderungen an Single Sign-on nach einer Notfall-Anmeldung brauchen eine neue Bestätigung mit Passkey oder Authenticator-App.

Die 50heads-App

In der App gibt man wie gewohnt die Arbeits-E-Mail-Adresse ein. Nutzt die Organisation Single Sign-on, öffnet die App die Anmeldeseite der Firma in einem sicheren Browserfenster und bringt die Person angemeldet zurück. Muss ihr Konto verbunden werden, fragt die App nach dem 6-stelligen Code aus der E-Mail.

Anmeldeprotokoll und Aktivität

Das Anmeldeprotokoll listet Anmeldungen und Tests über Single Sign-on, die fehlgeschlagen sind oder einen Code gebraucht haben, die neuesten zuerst, mit Fehlercode. Die Tokens deines Identitätsanbieters speichern wir nie. Die Aktivität hält jede Änderung fest: Einrichtung, Tests, Ein- und Ausschalten, Pflicht, verbundene Konten und Notfallzugang.

Jedes Single-Sign-on-Ereignis steht auch im Audit-Protokoll, wo Admins es filtern und exportieren können.

Fehler beheben

Anmeldeprotokoll und Testergebnis zeigen einen Code. Das bedeutet jeder.

Code Was er bedeutet Was du prüfen solltest
state_invalid Die Anmeldung hat zu lange gedauert (über 10 Minuten) oder wurde schon benutzt. Fang noch einmal an.
sso_unavailable Single Sign-on ist für die Organisation nicht an. Schalte es ein oder melde dich anders an.
idp_error Der Identitätsanbieter hat die Anmeldung abgebrochen, etwa weil die Person der Anwendung nicht zugewiesen ist. Die Zuweisungen bei deinem Identitätsanbieter.
idp_unreachable Wir konnten deinen Identitätsanbieter nicht erreichen. Seine Statusseite. Notfall-Inhaber kommen weiter hinein.
idp_timeout Dein Identitätsanbieter hat nicht innerhalb von 6 Sekunden geantwortet. Seine Statusseite, dann noch einmal versuchen.
discovery_invalid Die Einstellungen des Ausstellers ließen sich nicht lesen oder nennen einen anderen Aussteller. Die Aussteller-URL, ganz genau. Bei Entra die Mandanten-ID und /v2.0.
token_exchange_failed Dein Identitätsanbieter hat den Anmeldecode abgelehnt. Client-ID, Client-Secret (Entra: der Wert, nicht die ID), wie das Secret gesendet wird, und die Weiterleitungs-URI.
id_token_invalid Die Antwort deines Identitätsanbieters ließ sich nicht lesen. Die Einstellungen der Anwendung bei deinem Identitätsanbieter.
id_token_alg Die Antwort war auf eine Art signiert, die wir nicht annehmen. Nutz RS256, ES256 oder PS256.
id_token_signature Die Signatur der Antwort stimmte nicht. Die Signaturschlüssel, die dein Identitätsanbieter veröffentlicht.
id_token_issuer Die Antwort kam von einem anderen Aussteller. Die Aussteller-URL.
id_token_audience Die Antwort war für eine andere Anwendung bestimmt. Die Client-ID.
id_token_expired Die Antwort war zu alt. Die Uhr des Identitätsanbieters. Die Uhren dürfen bis zu 2 Minuten abweichen.
id_token_not_yet_valid Die Antwort war in die Zukunft datiert. Die Uhr des Identitätsanbieters.
id_token_nonce Die Antwort passte nicht zu dieser Anmeldung. Fang noch einmal an.
unknown_key Die Antwort war mit einem Schlüssel signiert, den dein Identitätsanbieter nicht veröffentlicht. Die Signaturschlüssel, dann noch einmal versuchen.
email_missing Dein Identitätsanbieter hat keine E-Mail-Adresse geschickt. Den Scope email und den optionalen E-Mail-Anspruch in Entra.
email_unverified Dein Identitätsanbieter hat die E-Mail-Adresse nicht bestätigt. Okta: Die E-Mail-Adresse der Person ist bestätigt. Entra: der Anspruch xms_edov.
domain_not_verified Die E-Mail-Adresse liegt nicht auf einer deiner bestätigten Domains. Bestätige die Domain oder korrigiere die E-Mail-Adresse der Person.
hd_mismatch Ein Google-Konto außerhalb deines Workspace. Nutz ein Workspace-Konto.
sso_identity_conflict Das 50heads-Konto zu dieser E-Mail-Adresse ist schon mit einer anderen Identität bei deinem Identitätsanbieter verbunden. Das Konto der Person bei deinem Identitätsanbieter.
account_unavailable Wir konnten das 50heads-Konto nicht öffnen oder anlegen. Schreib uns.

SAML hat eigene Codes:

Code Was er bedeutet Was du prüfen solltest
saml_metadata_invalid Die Metadaten ließen sich nicht lesen oder verwenden. Dass es die Metadaten einer SAML-2.0-App sind, mit einer HTTP-Redirect-Anmelde-URL und einem Signaturzertifikat, und dass signierte Anfragen aus sind.
saml_response_invalid Die Antwort deines Identitätsanbieters ließ sich nicht lesen. Die Einstellungen der App bei deinem Identitätsanbieter.
saml_status Dein Identitätsanbieter meldet, dass die Anmeldung nicht geklappt hat, etwa weil die Person der App nicht zugewiesen ist. Die Zuweisungen bei deinem Identitätsanbieter.
saml_unsigned Weder die Antwort noch ihre Assertion war signiert. Schalt das Signieren der Assertion ein.
saml_signature Die Signatur passte nicht zu dem Zertifikat, das wir haben. Das Zertifikat. Nach einem Zertifikatswechsel die neuen Metadaten hinzufügen.
saml_signature_alg Die Antwort war mit SHA-1 oder auf eine andere Art signiert, die wir nicht annehmen. Nutz RSA-SHA256.
saml_wrapping Die Antwort war so aufgebaut, dass wir sie ablehnen, etwa mit mehr als einer Assertion. Die Einstellungen deines Identitätsanbieters. Wenn das weiter passiert, schreib uns.
saml_encrypted Die Assertion war verschlüsselt. Schalt die Verschlüsselung der Assertion aus.
saml_issuer Die Antwort kam von einem anderen Identitätsanbieter. Die Metadaten.
saml_audience Die Antwort war für eine andere App bestimmt. Die Entitäts-ID (Audience) bei deinem Identitätsanbieter.
saml_recipient Die Antwort war an eine andere Antwort-URL gerichtet. Die ACS-URL bei deinem Identitätsanbieter.
saml_destination Die Antwort ging an eine andere Adresse. Die ACS-URL bei deinem Identitätsanbieter.
saml_in_response_to Die Antwort passte zu keiner Anmeldung, die bei 50heads gestartet wurde, oder diese Anmeldung hat länger als 10 Minuten gedauert. Fang auf der Anmeldeseite von 50heads noch einmal an.
saml_expired Die Antwort war zu alt. Die Uhr des Identitätsanbieters. Die Uhren dürfen höchstens 2 Minuten auseinanderliegen.
saml_not_yet_valid Die Antwort war in die Zukunft datiert. Die Uhr des Identitätsanbieters.
saml_subject Die Antwort nannte niemanden, mit dem wir etwas anfangen können. Die Name-ID: die E-Mail-Adresse der Person.
saml_replay Diese Antwort wurde schon benutzt. Fang noch einmal an.
saml_idp_initiated Jemand hat über die App-Liste gestartet, aber das ist für deine Organisation aus. Über die Anmeldeseite von 50heads starten oder die Anmeldung über die App-Liste erlauben.

Siehe auch