CodamAIDocs
Themafertig

Welche Mails es gibt

Jede Mail mit ihrem Anlass: Bestätigung, Beitrittseinladung, Einladung, bereits registriert, wartet auf Freigabe, abgelehnt, Willkommen, Passwort setzen, Freigabe für einen Benutzerwechsel.

Ausprägungen
VERIFY_EMAILMEMBERSHIP_INVITATIONINVITATIONALREADY_REGISTEREDAPPROVAL_PENDINGREJECTEDWELCOMEPASSWORD_SETUPSWITCH_CONSENT_REQUESTEDSWITCH_CONSENT_USED

Worum es geht

CIAS schickt Mails an Personen, wenn im Leben eines Kontos etwas passiert: eine Registrierung beginnt, wartet auf eine Freigabe, ist fertig, oder ein Administrator schickt einen Link zum Passwort-Setzen. Jede Mail hat einen festen Schlüssel, etwa VERIFY_EMAIL. Über diesen Schlüssel findet CIAS die Vorlage, also den Text mit Platzhaltern.

Mails, die Keycloak selbst verschickt, etwa „Passwort vergessen“, gehören nicht dazu. Die gestaltet, wer den Realm betreibt, im Keycloak-Theme.

Alle Mails auf einen Blick

SchlüsselAnlassLink in der MailBetreff (deutsche Vorlage)
VERIFY_EMAILeine Registrierung für eine neue Adresse beginntverificationUrl, bestätigt die AdresseBitte bestätigen Sie Ihre E-Mail-Adresse
MEMBERSHIP_INVITATIONein bestehendes Konto soll einem Mandanten beitretenverificationUrl, bestätigt den BeitrittSie wurden zu einem Bereich eingeladen
INVITATIONVorlage für eine Einladung, bei der die Person ihre Angaben selbst vervollständigtverificationUrlEinladung: Bitte vervollständigen Sie Ihre Angaben
ALREADY_REGISTEREDjemand registriert eine Adresse, die schon ein Konto hat, und es gibt keinen Mandanten zum BeitretenloginUrl, zur AnmeldungZu dieser Adresse besteht bereits ein Konto
APPROVAL_PENDINGdie Adresse ist bestätigt, jetzt muss ein Administrator freigebenkeinerIhre Registrierung wird geprüft
REJECTEDein Administrator hat die Registrierung abgelehntkeiner, auf Wunsch mit Begründung reasonIhre Registrierung wurde abgelehnt
WELCOMEdie Registrierung ist fertig, das Konto ist eingerichtetpasswordUrl bei neuem Konto, sonst loginUrlWillkommen
PASSWORD_SETUPein Administrator schickt einen Link zum Passwort-SetzenpasswordUrlPasswort für Ihr Konto festlegen
SWITCH_CONSENT_REQUESTEDjemand bittet darum, in deinem Namen arbeiten zu dürfenconsentUrl, falls eingestellt{Name} bittet um Zugriff auf Ihr Konto
SWITCH_CONSENT_USEDeine Freigabe für einen Benutzerwechsel wird zum ersten Mal genutztconsentUrl, falls eingestellt{Name} nutzt jetzt Ihre Freigabe

Die Mails einer Registrierung

Welche Mail wann kommt
  1. 1
    CIAS→E-Mail
    Anfrage angenommen: VERIFY_EMAIL (neue Adresse), MEMBERSHIP_INVITATION (bestehendes Konto, Mandant zum Beitreten) oder ALREADY_REGISTERED (bestehendes Konto, kein Mandant)
  2. 2
    Benutzer→CIAS
    klickt den Link
  3. 3
    CIAS
    Muss ein Administrator freigeben?
  4. 4
    CIAS→E-Mail
    ja: APPROVAL_PENDING. Später bei Ablehnung REJECTED
  5. 5
    CIAS→E-Mail
    nach der Bereitstellung: WELCOME
    Ergebnis: Konto fertig, die Person bekommt den Link zum Passwort-Setzen oder zur Anmeldung

Warum bekommt ein bestehendes Konto ohne Mandant ALREADY_REGISTERED statt einer Fehlermeldung? Die Antwort an die registrierende Seite ist in beiden Fällen gleich. So lässt sich von außen nicht herausfinden, welche Adressen schon ein Konto haben. Nur die Mail an die Adresse selbst sagt es. Siehe Die E-Mail ist das Konto.

Die Ausprägungen

Jede Mail im Detail

Wann: Selbstregistrierung, Anlage durch einen Administrator oder Einladung einer neuen Adresse.

Der Link bestätigt die Adresse. Erst danach wird das Konto freigeschaltet. Wie lange der Link gilt, legt der Ablauf fest, siehe E-Mail bestätigen.

Ergebnis: Link verificationUrl

Wann: Die Adresse hat schon ein Konto, und die Registrierung nennt einen Mandanten.

Die Person bestätigt, dass sie beitreten will. Ein neues Konto entsteht nicht.

Ergebnis: Link verificationUrl

Wann: Eine Installation will eine Einladung anders formulieren.

CIAS liefert die Vorlage mit, und Mandanten-Administratoren dürfen sie im eigenständigen CIAS bearbeiten. Eine Einladung an eine neue Adresse verschickt der Registrierungsablauf als VERIFY_EMAIL, mit dem Ablauf als Variante, siehe Wie die passende Vorlage gefunden wird.

Ergebnis: Link verificationUrl

Wann: Die Adresse hat schon ein Konto, und es gibt keinen Mandanten zum Beitreten.

Die Mail sagt, dass es das Konto schon gibt, und bietet die Anmeldung an.

Ergebnis: Link loginUrl

Wann: Der Ablauf verlangt eine Freigabe, die Adresse ist bestätigt.

Die Person weiß damit, dass sie nichts mehr tun muss. Siehe Freigabe durch einen Administrator.

Ergebnis: kein Link

Wann: Ein Administrator lehnt die Registrierung ab.

Gibt der Administrator einen Grund an, steht er in der Mail. Ohne Grund entfällt der Absatz.

Ergebnis: kein Link, optional reason

Wann: Die Bereitstellung ist fertig.

Bei einem neuen Konto enthält sie, wenn die Installation das eingerichtet hat, einen Link zum Passwort-Setzen. Sonst verweist sie auf die Anmeldung und auf „Passwort vergessen“. Scheitert nur diese Mail, ist die Registrierung trotzdem fertig.

Ergebnis: passwordUrl oder loginUrl

Wann: Ein Administrator schickt einer Person einen neuen Link zum Passwort-Setzen.

Nur wenn die Installation Passwort-Links eingerichtet hat. Siehe Passwort-Setz-Link erneut schicken.

Ergebnis: Link passwordUrl

Wann: Jemand mit der Rolle allowed-user-context-switch bittet eine Person um Freigabe.

Die Mail nennt, wer fragt, mit wessen Rechten, bis wann und warum. Ein zweiter gleicher Antrag schickt keine zweite Mail. Scheitert der Versand, bleibt der Antrag trotzdem bestehen.

Ergebnis: consentUrl, wenn die Installation eine Adresse eingestellt hat

Wann: Eine Freigabe wird zum ersten Mal für einen Wechsel genutzt.

Geht einmal je Freigabe an die Person, die sie erteilt hat. Scheitert der Versand, geht der Wechsel trotzdem durch.

Ergebnis: consentUrl, wenn eingestellt

Was in jeder Mail zur Verfügung steht

Eine Vorlage füllt Platzhalter aus einem Kontext, einer Liste von Namen und Werten. Bei Mails der Registrierung steht dort immer:

PlatzhalterInhalt
emaildie Adresse der Person
registrationIddie ID der Registrierung
verificationUrlder Bestätigungslink, leer wo es keinen gibt
loginUrldie Anmeldeseite der Anwendung, aus der die Person kam
passwordUrlder Link zum Passwort-Setzen, leer wo es keinen gibt
reasonnur bei REJECTED: der Grund, kann leer sein

Links, die es nicht gibt, sind leer, aber immer vorhanden. Eine Vorlage muss also nicht prüfen, ob ein Platzhalter existiert. Ein Registrierungs-Hook kann weitere Werte hinzufügen, etwa einen Markennamen, siehe Versand und Branding. PASSWORD_SETUP kennt nur passwordUrl und displayName.

Die beiden Mails zur Freigabe kennen requesterName und requesterEmail bzw. granteeName und granteeEmail, dazu targetRoles (true oder false), validUntil (leer heißt ohne Ende), reason, tenantKey und consentUrl.

In jeder Mail stehen außerdem application und flow: aus welchem Produkt die Person kam und über welchen Ablauf. Beide sind leer, wo der Absender nichts dazu weiß. Eine Vorlage verzweigt darauf, statt dafür eigene Vorlagen zu brauchen, siehe Wie die passende Vorlage gefunden wird.

Fallen

Weiter

Quellen im Code und in der Wissensdatenbank
  • CIAS/cias-registration – MailPurpose, RegistrationService (mailPurpose, sendMail, passwordSetupContext; initiate, verify, approve, reject, provision)
  • CIAS/cias-user – UserService (PASSWORD_SETUP, sendPasswordSetupLink), SwitchConsentService (SWITCH_CONSENT_REQUESTED, SWITCH_CONSENT_USED, context)
  • CIAS/cias-notification – FreeMarkerMailRenderer (application und flow in jedem Modell)
  • CIAS/cias-notification – api.MailKey, api.MailRequest; resources cias/mail/{KEY}/{de,en}.{subject,body}.ftl
  • CIAS/cias-notification/docs/adr – ADR-019
Suchen