How to: Jemanden einladen, der noch kein Konto hat
Kontext
Eine neue Kollegin braucht Zugang. Name und Adresse sind bekannt; ein Kennwort soll weder gewählt noch notiert noch verschickt werden — und die Selbstregistrierung ist auf dieser Instanz abgeschaltet.
Lösungsüberblick
Eine Einladung ist derselbe Vorgang wie eine Selbstregistrierung, nur von einem Verwalter eröffnet statt von der Person selbst. Sie legt kein Konto an: Geschrieben wird nur ein offener Vorgang, und das Konto entsteht in dem Moment, in dem die Person den Code mit einem selbst gewählten Kennwort einlöst.
Zwei Dinge folgen daraus, beide beabsichtigt:
- Eine abgeschaltete Selbstregistrierung blockiert die Einladung nicht. Dass Fremde sich nicht anmelden dürfen, ist eine Aussage über Fremde; dass Sie eine Person benennen, ist keine. Zwei Schalter, nicht einer.
- Sie erfahren das Kennwort nie. Sie geben einen Code weiter, und der berechtigt zum Setzen eines Kennworts, ohne eines zu offenbaren.
Umsetzung
Verwaltung → Einladungen und offene Vorgänge (do=admin&page=wkidentity_invites), Recht: Superuser. Anmeldename, vollständiger Name und Adresse eintragen, absenden. Der Code geht als Nachricht hinaus und wird Ihnen einmal angezeigt, damit Sie ihn weitergeben können, falls die Zustellung unzuverlässig ist.
Wenn überhaupt keine Nachricht hinausgeht, über die Kommandozeile:
php bin/plugin.php wkidentity invite mmustermann "Max Mustermann" max@example.org
Weitere Befehle desselben Werkzeugs: list, code, cancel, purge.
Die eingeladene Person öffnet den Verweis aus der Nachricht (do=wkidentity_otp&ticket=<kennung>) und gibt Anmeldenamen, Code und zweimal ein Kennwort ein. Ohne Verweis geht es ebenso: Das Ticket in der Adresse ist optional, eingelöst werden kann über den Anmeldenamen.
Anmerkungen
- Der Code wird genau einmal gezeigt. Abgelegt ist nur sein Fingerabdruck; es gibt keine Stelle, an der er ein zweites Mal zu lesen wäre. Das ist die Eigenschaft, die den Ablauf trägt, nicht ein Versäumnis.
- Das Kennwort wird vor dem Code geprüft. Wer sich beim neuen Kennwort vertippt, verbraucht dafür keinen Code. Geprüft wird serverseitig gegen
min_password_length(Vorgabe 14). - Ein Name mit offenem Vorgang bekommt keinen zweiten. Stattdessen nachschicken — der Knopf steht auf demselben Bildschirm und macht den vorherigen Code ungültig.
- Eine vertippte Adresse ist der häufigste Grund für einen nie angekommenen Code. Adresse korrigieren und neu senden behebt beides in einem Zug: neue Zustellung, und der bereits zur falschen Adresse unterwegs befindliche Code verfällt.
- Der Vorgang überlebt den Code: sieben Tage gegen dreißig Minuten in der Vorgabe, sodass sich über ein Wochenende nachschicken lässt, ohne von vorn zu beginnen.
- Der Mindestabstand für Nachschub entfällt auf dem Verwalterweg. Eine Rettung eine Minute warten zu lassen, nachdem sich der Gerettete vertippt hat, ist das Gegenteil ihres Zwecks.
- Nichts besetzt einen Namen. Wird die Einladung nie eingelöst, läuft sie ab und wird abgeräumt; der Anmeldename war nie vergeben.
- Die Einladung richtet keinen zweiten Faktor ein. Wer will, dass die Person am Ende einen trägt, braucht zusätzlich eine Pflicht — siehe How to: Einen zweiten Faktor verlangen.