Diagnostika
Za vsak simptom en vnos. Okolje je povsod ta namestitev DokuWiki z nameščenim paketom wkidentity, razen kjer je navedeno drugače. Kratica 2FA pomeni drugi dejavnik avtentikacije.
Vsaka koda je zavrnjena
Okolje: račun z vpisanim dejavnikom, Microsoft Authenticator ali Google Authenticator.
Vzrok: Vrednost digits ali period odstopa od 6 oziroma 30. Obe aplikaciji teh parametrov ne bereta in vedno računata s šestimi števkami in tridesetimi sekundami, zato ustvarjata druge kode, kot jih pričakuje strežnik. Drugi možni vzrok je ura, ki odstopa bolj, kot dopušča window.
Rešitev: Vrnite digits na 6 in period na 30 ali preidite na aplikacijo, ki oba parametra bere. Pri odstopanju ure zvišajte window (dovoljeno od 0 do 10). Najprej z do=wkidentity_debug preverite, ali se izračuna sploh ujemata.
Koliko računov je prizadetih, je že diagnoza. Če gre za posamezen račun, je skoraj vedno kriva ura na njegovi napravi – to uporabnik odpravi sam; napotite ga na Izgubljena aplikacija za preverjanje ali pokvarjen telefon, odsek »Koda iz aplikacije je zavrnjena«. Stran je berljiva brez prijave in jo je zato mogoče poslati tudi nekomu, ki prav zdaj ne more noter. Če so hkrati prizadeti vsi vpisani računi, je kriva strežniška ura – edina, ki si jo delijo vsi, in edini primer, ko napačen čas naenkrat zapre ven celoten obseg.
Zahteva ob prijavi je vklopljena, a nikogar ne ustavi
Okolje: enforce_login je nastavljen na 1, prijave pa tečejo z golim geslom.
Vzrok: Nastavitev deluje samo pri računih, ki dejavnik že imajo vpisan. Računa, ki dejavnika nikoli ni vpisal, ne zadeva. Tako je zasnovana namenoma, sicer bi vklop čez noč zaprl ven vse obstoječe uporabnike.
Rešitev: Za račune brez dejavnika je zahteva ob prijavi napačno orodje. Nastavite pravilnik, glejte Kako: zahtevati drugi dejavnik.
Račun ima oznako »Dejavnik priporočen«, pa vseeno pride povsod
Okolje: Skrbništvo → MFA, površina Uporabniki, v stolpcu Dejavnik priporočen je kljukica; uporabnik vidi opozorilni pas, nikjer pa ni zavrnjen.
Vzrok: Ta stolpec poganja izključno opozorilni pas na vseh straneh. Zasnovan je kot opozorilo in ničesar ne zaklene.
Rešitev: Za posamezen račun poleg tega označite Aplikacija za preverjanje obvezna in izberite Shrani: stolpec zapiše vnos obsega vrste user. Za skupino dodajte vnos vrste group v conf/wkidentity-policy.json; tega skrbniški zaslon ne zapiše.
Pravilnik za imenski prostor ne deluje
Okolje: predpona imenskega prostora je vpisana na površini Imenski prostori, dostop pa je kljub temu dovoljen.
Vzrok: Zajeta je vpisana oznaka in vse, kar se začne z njo in dvopičjem. Prazna vrstica ne pomeni celotnega wikija, predpona brez ustreznega imenskega prostora pa ne zajame ničesar.
Rešitev: Primerjajte predpono z dejanskim ID-jem strani. Če naj obveznost velja ne glede na imenski prostor, jo vežite na skupino ali račun; oba se preverita pri vsaki pravici.
Povabila ni mogoče oddati
Okolje: Skrbništvo → Povabila in odprti postopki, obrazec je izpolnjen, oddaja pa je zavrnjena.
Vzrok: Preverjanje pred pošiljanjem zahtevo zavrne in pri prizadetem polju izpiše razlog: prijavno ime je prazno ali vsebuje nedovoljene znake, ime je prazno, naslov ni veljaven, ime skupine zaledje za prijavo ne sprejme – ali pa je prijavno ime že zasedeno oziroma zanj že teče odprt postopek.
Rešitev: Napako odpravite pri navedenem polju in znova preverite; zapisano ni bilo nič. Če je ime zasedeno, postopka ne potrebujete: račun obstaja, potrebna je ponastavitev. Če teče odprt postopek, uporabite tega – pošljite kodo znova ali popravite naslov; oboje razveljavi prejšnjo kodo.
Dejavnik se sredi dela zahteva znova
Okolje: prijavljen račun z vpisanim dejavnikom, dostop do vsebine z obveznostjo.
Vzrok: Potrditev seje zapade po assurance_ttl sekundah (privzeto 3600) in seja pade nazaj med navadne prijavljene. Sama prijava ostane, izgubi se le potrditev dejavnika.
Rešitev: Če je razmik prekratek, zvišajte assurance_ttl. Vrednost je omejena namenoma: včerajšnja potrditev naj danes ne velja tiho naprej.
Uporabnik je izgubil napravo z aplikacijo za preverjanje
Okolje: račun z vpisanim drugim dejavnikom. Telefon je izgubljen, ukraden, pokvarjen, ponastavljen ali je bila aplikacija za preverjanje izbrisana – štirje povodi, ena ugotovitev: do skrivnega ključa ni več dostopa. Odprte seje ni nikjer, sicer to ne bi bil primer za skrbništvo.
Vzrok: Skrivni ključ je izključno v aplikaciji in šifriran na strežniku; nikjer ga ni mogoče poiskati in nikjer ni prikazan. Nadomestnih kod, ki bi jih hranil uporabnik, v tem paketu ni – primer se namenoma zapre prek skrbništva in ne s kodami, ki bi jih moral nekdo shraniti.
Rešitev: Najprej ugotovite istovetnost zunaj tega wikija, po poti, ki ni odvisna ne od izgubljene naprave ne od nabiralnika: povratni klic na že znano številko, osebni obisk, potrditev nadrejenega. Prošnja po e-pošti ni dokaz – napadalec, ki je prevzel nabiralnik, napiše enako e-pošto. Klik je lahki del, varovalo je preverjanje.
Zatem, s pravico superuser:
- Odprite
do=admin, postavka MFA (večkratno preverjanje pristnosti) – ali neposrednodo=admin&page=wkidentity. - Na desni izberite Uporabniki.
- V izbirnem stolpcu označite vrstico računa; polje Iskanje uporabnikov skrajša dolge sezname.
- Kliknite Ponastavi drugi dejavnik.
- Vprašanje Ponastaviti drugi dejavnik? potrdite z Da, ponastavi.
Kaj ponastavitev natanko naredi: odstrani vse vpisane dejavnike tega računa – aplikacijo za preverjanje in kodo po e-pošti skupaj, ne posamično – skupaj z morebitno odprto kodo po e-pošti. Geslo, račun, skupine in pravice ostanejo nedotaknjeni, tekoče seje se ne končajo. Ponastavitev zato ne nadomešča zamenjave gesla, kadar velja, da je bil račun prevzet.
Zatem: račun ni več vpisan, zahteva ob prijavi pa velja izključno za vpisane račune – naslednja prijava torej teče z golim geslom. Novega vpisa pri tem nič ne izsili; dejavnik znova nastavi uporabnik sam, glejte naslednji vnos.
Uporabnika napotite na Izgubljena aplikacija za preverjanje ali pokvarjen telefon. Ta stran je berljiva brez prijave in jo je zato mogoče poslati tudi nekomu, ki prav zdaj ne more noter.
Po ponastavitvi ostane obvezno območje zaprto
Okolje: drugi dejavnik je bil ponastavljen, prijava spet teče z golim geslom, območje z obveznim dejavnikom pa še naprej odgovarja z zavrnitvijo.
Vzrok: To je obveznost pri delu in ne ostanek ponastavitve. Obveznost imenskega prostora, skupine ali računa zahteva vpisan in v tej seji potrjen dejavnik. Ponastavljen račun ga nima, zato je zavrnjen – z razlogom »ni vpisa« in povezavo na profil.
Rešitev: Uporabnik dejavnik znova nastavi: do=profile, odsek Dvostopenjsko preverjanje (TOTP), gumb Nastavi dvostopenjsko preverjanje, poskeniranje kode QR, vnos kode, Potrdi in vklopi. Povezava na strani z zavrnitvijo vodi neposredno tja.
Do takrat je območje za ta račun upravičeno zaprto. Obveznost, ki bi po ponastavitvi začasno mirovala, bi pomenila, da jo ponastavitev razveljavi.
Zadnji skrbnik je izgubil svojo napravo
Okolje: račun s pravico superuser je vpisan, njegove naprave ni več, drugega računa s to pravico ni. Skrbniški zaslon, ki bi ponastavitev opravil, je s tem nedosegljiv.
Vzrok: Skrbniška pot predpostavlja prijavo, ki se ustavi prav ob dejavniku, ki naj bi bil ponastavljen. To ni napaka, ampak posledica namestitve z natanko enim skrbnikom.
Rešitev: Prek ukazne vrstice, z dostopom do strežnika. Najprej poglejte, nato ponastavite:
php bin/plugin.php wkidentity factors <prijavno-ime> php bin/plugin.php wkidentity reset-factor <prijavno-ime>
reset-factor odstrani vse dejavnike računa in s tem ustreza natanko gumbu na skrbniškem zaslonu. Geslo ostane nedotaknjeno – če je izgubljeno tudi to, je druga polovica php bin/plugin.php wkidentity code <prijavno-ime>, postopka pa nimata drug z drugim nič. Drugi klic na že ponastavljenem računu stvarno sporoči, da ni bilo česa storiti.
Uporabnik s tem dostopom ima tako ali tako že vse datoteke wikija – pot ne podeli pravic, ki jih prej ne bi bilo. Česar ne zmore, je preverjanje istovetnosti. Ukazna vrstica ne vpraša, kdo je prosil; to mora biti razjasnjeno prej, in sicer stran od izgubljene naprave in stran od nabiralnika računa. Ukaz to ob izvedbi še enkrat pove sam.
data/meta/wkidentity/<prijavno-ime>.secret. To še vedno deluje – tipkarska napaka v poti pa se pri tem ne loči od nameravanega dejanja, zato ima ukaz prednost.
Preventiva, in ta je prava rešitev: drugi račun s pravico superuser, še preden se vklopi zahteva ob prijavi. To je razlika med obnovitvijo prek wikija in obnovitvijo prek datotečnega sistema. Kot takojšen zasilni ukrep je mogoče v upravitelju nastavitev postaviti enforce_login na 0: prijava za vse pade na eno stopnjo, ne da bi se izgubil kateri koli vpis – brez izgube in kadar koli povratno, dokler velja, pa zniža zaščito celotnega wikija.
Sorodne teme
- Izgubljena aplikacija za preverjanje ali pokvarjen telefon – navodila za prizadete, berljiva brez prijave