Kako: pripraviti in povabiti novega uporabnika
Kontekst
Nova sodelavka potrebuje račun. Ime in naslov poznate, prav tako skupine, v katere sodi, in da naj uporablja aplikacijo za preverjanje. Gesla nočete niti izbrati niti zapisati niti poslati – samoregistracija je na tej namestitvi izklopljena. Vse naj se določi enkrat, z natanko enim sporočilom, ne da bi se po vnovčenju vračali v dva druga zaslona.
Pregled rešitve
Povabilo je isti postopek kot samoregistracija, le da ga odpre skrbništvo in ne oseba sama – in nosi to, s čimer naj bo račun ustvarjen: njegove skupine in obveznost drugega dejavnika. Računa ne ustvari: zapiše se samo odprt postopek, račun pa nastane – v teh skupinah, pod to obveznostjo – takrat, ko oseba vnovči kodo z geslom, ki si ga izbere sama.
Iz tega sledijo tri stvari, vse namerne:
- Izklopljena samoregistracija povabila ne ustavi. Da se tujci ne smejo registrirati, pove nekaj o tujcih. Vi pa nekoga poimenujete, kar ni isto. Gre za dve ločeni stikali.
- Gesla ne izveste. Predate kodo, ta pa dovoli, da geslo nastavite, in nobenega ne izda.
- Nevnovčeno povabilo ne pusti ničesar za sabo. Skupine in obveznost so zapisane na postopku, ne v uporabniškem imeniku in ne v pravilniku. Če povabilo prekličete ali pustite, da poteče, s tem umaknete tudi oboje.
Postopek
Odprite Skrbništvo → Povabila in odprti postopki (do=admin&page=wkidentity_invites); potrebujete skrbniške pravice (superuser). V ukazni vrstici izberite Novo povabilo:
- Identiteta – prijavno ime, polno ime, e-poštni naslov.
- Dostop – za vsak projekt izberite vlogo: brez, Bralec, Sodelavec ali Vzdrževalec; pod vsakim projektom je njegov imenski prostor. Skrbnik pod Splošne vloge da poln dostop do celotnega wikija. Skupino, ki še ne obstaja, vpišite v Dodatne skupine, ločeno z vejico. Privzete skupine
userni, ker jo dobi vsak račun. Kaj sme vloga, določa upravljanje dostopa, do katerega vodi povezava. - Drugi dejavnik – vnaprej sta izbrani vrsta Authenticator app in obveznost Required (v slovenskem vmesniku sta ta napisa zaenkrat angleška). Račun tako ne vidi nobene vsebine, dokler aplikacija za preverjanje ni nastavljena in v seji dokazana; stran profila za nastavitev ostane dosegljiva, povabilo pa osebi ta korak navede.
- Razlog (v vmesniku Reason) – zabeleži se v dnevnik računa, ko je povabilo uporabljeno.
- Preveri povabilo. Zdaj tečejo iste preverbe kot ob pošiljanju, ne da bi se kaj zapisalo; zavrnitev vas vrne v obrazec s stavkom ob zadevnem polju. Če gre vse skozi, stran pokaže, kaj bo zapisano: očiščene vrednosti, skupine, kje ACL za te skupine spremeni svoj odgovor (združeno po stopnjah: urejanje, branje, brez dostopa), stran po prijavi, obveznost, roke – in da gre natanko eno e-sporočilo na natanko en naslov.
- Povabi – ali Nazaj.
Koda odide v sporočilu, hkrati pa se vam pokaže enkrat, da jo lahko predate sami, če dostava ni zanesljiva. Postopek se pojavi na seznamu spodaj, s svojimi skupinami in obveznostjo.
Kadar sporočila sploh ne gredo ven, uporabite ukazno vrstico:
php bin/plugin.php wkidentity invite mmustermann "Max Mustermann" max@example.org --groups=uredniki --mfa
Orodje izpiše očiščene skupine, ki jih bo račun dobil, in obveznost, nato kodo. Isto orodje pozna še ukaze list, code, cancel in purge.
Kaj stori povabljena oseba: odpre povezavo iz sporočila (do=wkidentity_otp&ticket=<oznaka>) – ali brez povezave prek prijavnega imena – vnese kodo, prijavno ime in dvakrat geslo, se prijavi in, če je zahtevano, v profilu nastavi aplikacijo za preverjanje. Potem ni več kaj storiti, tudi za skrbništvo ne.
Opombe
- Kodo vidite samo enkrat. Shranjen je le njen prstni odtis, zato je nikjer ni mogoče prebrati znova. Prav to nosi celoten postopek.
- Privzeta skupina se doda, ne zahteva. Vsak ACL te namestitve daje osnovno pravico skupini
@user; račun brez nje bi se lahko prijavil in ne bi prebral ničesar. Zato ni ponujena in je ob vnovčenju vedno zraven. - »Obvezno« zaklene vsebino, ne prijave. Obveznost se uveljavi pri preverjanju pravic. Oseba se torej lahko prijavi, odpre svoj profil in nastavi dejavnik; vsaka druga stran navede razlog zavrnitve in kaže na profil. Nastavitev sama šteje kot dokaz seje – naslednja stran ne zahteva druge kode.
- Kje račun pristane po prijavi, izhaja iz njegovih skupin. Ta wiki ne pozna domačega prostora za posamezen račun: pravila za preusmeritev v vmesniku (
wkfluentui, nastavitevrouting_rules) izberejo stran po skupini, ACL pa odloči, kaj sme račun tam brati. Stran za preverjanje pokaže oboje za izbrane skupine, da je posledica vidna pred pošiljanjem. Če jo želite spremeniti, spremenite pravila ali skupine, ne računa. - Geslo se preveri pred kodo. Tipkarska napaka v novem geslu zato ne porabi kode. Dolžino preveri strežnik po nastavitvi
min_password_length(privzeto 14). - Ime z odprtim postopkom ne dobi drugega. Pošljite kodo znova; gumb je na istem zaslonu in prejšnjo kodo razveljavi.
- Zatipkan naslov je najpogostejši razlog, da koda ne prispe. Ukaz Popravi naslov in pošlji znova uredi oboje hkrati: pošlje novo kodo in razveljavi tisto, ki je že na poti k napačnemu naslovu.
- Postopek živi dlje kot koda: privzeto sedem dni proti tridesetim minutam. Zato lahko kodo pošljete znova tudi čez vikend, ne da bi začeli znova.
- Najkrajši razmik med pošiljanji za skrbnika ne velja. Nesmiselno bi bilo, da reševanje čaka minuto zato, ker se je rešeni zatipkal.
- Nevnovčeno povabilo ne zasede imena. Zapade in se pospravi, prijavno ime pa ostane prosto.
- Obveznost pozneje umaknete v Skrbništvo → MFA (večkratno preverjanje pristnosti), površina Uporabniki, stolpec Aplikacija za preverjanje obvezna – na istem mestu, kjer je vidna za vsak drug račun.