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)
- Geh in der Admin Console zu Applications, dann Create App Integration. Wähl OIDC – OpenID Connect und Web Application.
- Nutz nur den Grant-Typ Authorization Code und trag die Weiterleitungs-URI als Sign-in-Redirect-URI ein.
- Weis die Personen oder Gruppen zu, die 50heads nutzen dürfen.
- Kopier Client ID und Client secret vom Reiter General.
- Die Aussteller-URL ist deine Okta-Domain, etwa
https://example.okta.com, oder ein eigener Autorisierungsserver, etwahttps://example.okta.com/oauth2/default.
Microsoft Entra ID (OpenID Connect)
- 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.
- Erstell unter Zertifikate & Geheimnisse einen geheimen Clientschlüssel und kopier seinen Wert (nicht die ID). Merk dir, wann er abläuft.
- Kopier die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant).
- Die Aussteller-URL ist
https://login.microsoftonline.com/<Mandanten-ID>/v2.0. Nutz nicht die Adressencommonoderorganizations. - 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_edovjede Anmeldung abgelehnt.
Google Workspace (OpenID Connect)
- Stell in der Google Cloud Console, in einem Projekt deiner Workspace-Organisation, den OAuth-Zustimmungsbildschirm auf Intern.
- Erstell eine OAuth-Client-ID vom Typ Webanwendung mit der Weiterleitungs-URI als autorisierter Weiterleitungs-URI.
- Kopier Client-ID und Clientschlüssel.
- 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)
- Geh in der Admin Console zu Applications, dann Create App Integration, und wähl SAML 2.0.
- 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.
- Setz Name ID format auf EmailAddress und Application username auf Email.
- Optional: Füg unter Attribute Statements
emailmit dem Wertuser.emailhinzu. - Weis die App den Personen oder Gruppen zu, die 50heads nutzen dürfen.
- Kopier auf dem Tab Sign On die Metadata URL in 50heads.
Microsoft Entra ID (SAML)
- Geh im Entra Admin Center zu Unternehmensanwendungen, dann Neue Anwendung, dann Eigene Anwendung erstellen. Wähl Nicht im Katalog enthaltene Anwendung integrieren.
- 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.
- 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. - Lass unter SAML-Zertifikate die Signaturoption auf SAML-Assertion signieren und den Algorithmus auf SHA-256. Kopier die App-Verbundmetadaten-URL in 50heads.
- Weis die App unter Benutzer und Gruppen den Personen oder Gruppen zu, die 50heads nutzen dürfen.
Google Workspace (SAML)
- Geh in der Google Admin-Konsole zu Apps, dann Web- und mobile Apps, dann App hinzufügen, dann Benutzerdefinierte SAML-App hinzufügen.
- Wähl auf der Seite Details zum Google-Identitätsanbieter Metadaten herunterladen. Diese Datei gibst du 50heads.
- 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.
- Setz Format der Namens-ID auf EMAIL und Namens-ID auf Grundlegende Informationen > Primäre E-Mail-Adresse.
- Schalt die App für die Personen oder Organisationseinheiten ein, die 50heads nutzen dürfen.
- Füg in 50heads den Inhalt der Metadaten-Datei ein oder wähl die Datei aus.
In 50heads einrichten
- Ö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.
- 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.
- 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.
- 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:
- 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.
- 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.
- Mach das neue Zertifikat bei deinem Identitätsanbieter aktiv.
- 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. |