Trenutno dejavna stran: start » sl » Interna dokumentacija » Razširitve DokuWikija (WvdS) » Identity » Kako: zahtevati drugi dejavnik

Kako: zahtevati drugi dejavnik

Kontekst

Večina wikija je običajna vsebina, en imenski prostor pa ne: kadrovski podatki, dostopna sredstva, gradiva sej. Drugi dejavnik avtentikacije (2FA) naj bo pogoj za dostop tja, ne da bi morala vsaka prijava v wiki skozi dodatno vprašanje.

Pregled rešitve

Gre za pravilnik, ne za zahtevo ob prijavi. Razlika odloči o izidu:

Zahteva ob prijavi Pravilnik
Nastavitev enforce_login datoteka pravilnika
Velja za vsak račun, ki dejavnik že ima vpisan, ob prijavi vsakogar, ki hoče do vsebine
Kaj se zgodi z drugimi nič; računi brez dejavnika se prijavijo kot prej dostop jim je zavrnjen
Kje se preveri pri prijavi pri pravicah

Pravilnik se ovrednoti med preverjanjem pravic, ki ga opravi DokuWiki sam. Zato drži na vsaki poti do vsebine – pri ogledu strani, zadetku iskanja, izvozu in vključitvi iz drugega paketa – in ne le tam, kjer se je kdo spomnil vgraditi zaporo.

Sama nastavitev enforce_login nikogar ne zaveže. Deluje le pri računih, ki dejavnik že imajo vpisan. Kdor ga ni nikoli vpisal, se tudi ob vklopljeni nastavitvi prijavi z golim geslom. Za sveže povabljen račun torej ne stori ničesar.
Seznam »zahtevan TOTP« v zavihku Uporabniki ne zapira dostopa. Poganja samo opozorilni pas čez stran in je tako tudi zasnovan. Če hočete račun res zavezati, potrebujete vnos obsega (spodaj), ne vnosa v ta seznam.

Izvedba

Za imenski prostor odprite Skrbništvo → Drugi dejavnik (do=admin&page=wkidentity) in zavihek Namespaces. V vsako vrstico vpišite eno predpono. Zajame oznako samo in vse pod njo; prazna vrstica ne pomeni celotnega wikija.

Za skupino ali posamezen račun teh vnosov skrbniški zaslon ne zapisuje. Vpišite jih v conf/wkidentity-policy.json pod ključ required_scopes:

{
  "required_scopes": [
    { "type": "group",     "id": "uredniki",      "requirement": "MFA_ANY" },
    { "type": "user",      "id": "mmustermann",   "requirement": "TOTP" },
    { "type": "namespace", "id": "interno:kadri", "requirement": "MFA_ANY" }
  ]
}

Dovoljene stopnje so MFA_ANY (kateri koli vpisan dejavnik), TOTP, MAIL_OTP in AUTHENTICATED. V isti datoteki stojijo tudi seznami skrbniškega zaslona; pred vsakim prepisom nastane varnostna kopija.

Kadar se ujame več vnosov, obveljajo po vrsti imenski prostor, skupine in nazadnje račun – ožji obseg prevlada. Če dva vnosa zahtevata dva različna dejavnika, obvelja ožji, nasprotje pa se zabeleži.

Zavrnjeni bralec ne obtiči. Namesto gole zavrnitve dobi enega od dveh odgovorov:

  • dejavnika nima vpisanega – povezavo na vpis v profilu;
  • dejavnik ima, a ga v tej seji ni potrdil – povezavo na ponovno potrditev, ki ga po pravilni kodi vrne na začetno stran.

Opombe

  • Najprej pustite vpisati, šele nato zahtevajte. Pravilnik nad imenskim prostorom, kjer uporabniki dejavnika še nimajo, jih takoj zapre ven. Najavite, počakajte na vpise, nato vklopite.
  • Sveže povabljen račun je izjema tega pravila. Pred vnovčenjem ne obstaja, zato se prej ne more vpisati. Če naj brez dejavnika ne pride nikamor, vežite obveznost na njegovo skupino: obseg group se preveri pri vsaki pravici, ne glede na imenski prostor. Prva stran po prijavi je tedaj zavrnitev s povezavo na vpis.
  • Potrditev zapade. Nastavitev assurance_ttl (privzeto 3600 sekund) pove, kako dolgo velja opravljena ponovna potrditev ali dejavnik, potrjen ob prijavi. Nato seja pade nazaj med navadne prijavljene; sama prijava ostane.
  • Pravilnik in zahteva ob prijavi delujeta neodvisno. Obveznost za račun ali skupino velja tudi, kadar je enforce_login izklopljen. Tako lahko dejavnik zahtevate od nekaj računov, ne da bi spremenili prijavo vsem.
  • Pustite si pot nazaj. Pravilnik, ki pokrije imenski prostor z vašimi zapiski za obnovitev, je past.
  • To ni šifriranje. Drugi dejavnik ureja dostop skozi wiki. Datotek na disku, v varnostni kopiji ali v iskalnem kazalu ne zaščiti.
  • Ne skrivajte napotka. Zavrnitev brez poti do vpisa je slepa ulica; razlog in opozorilni pas sta tam prav zato.

Sorodne teme

sl/wiki/dwe/wkidentity/howto-require-factor.txt · Zadnja sprememba: uporabnika 127.0.0.1