Seriál Lotus Notes: ACL (2.)

V minulém díle seriálu o administraci Lotus Notes byla popsána první část ACL – Access Control List, neboli řízení přístupu k databázím. V této části se budeme věnovat zbývajícím nastavením v dialogovém okně ACL.

Sekce Roles

Role umožňují provázat ACL s prvky návrhu nebo se sadou dokumentů v databázi. Sekce (záložka) Roles v dialogovém okně ACL slouží právě pro vytváření rolí.

Lotus Notes - ACL 2
 

Role v ACL jako taková je pouze pojmenování, název, řetězec znaků. Abyste role aktivovali, musíte je provázat na dvou místech: v ACL a v návrhu databáze.
V ACL to uděláte jednoduše – role vytvořené v sekci Roles se ihned objeví v pravém dolním rohu sekce Basics. Zde můžete prostým zaškrtnutím checkboxů přidělovat role jednotlivým subjektům (jednotlivcům, serverům či skupinám). Defaultně není role přidělena žádnému subjektu, i administrátorům musí být nastavena explicitně.

Lotus Notes - ACL 2
 

V návrhu databáze potom naprogramujete to hlavní, tedy jak se mají role chovat a co znamená mít konkrétní roli. Vývojáři mají různé možnosti, jak role při programování aplikací využít:

  • Pole čtenáři a autoři (readers/authors fields): ve formuláři je pole typu čtenáři nebo autoři, které je již předvyplněno hodnotou – jménem jedné nebo několika rolí. Až bude pomocí tohoto formuláře vytvořen a uložen dokument, přístup k němu se bude řídit podle těchto rolí.
    Příklad: Ve formuláři „Faktura“ vytvoříte pole typu čtenáři a naplníte jej rolí [fakturant], dále vytvoříte pole typu autoři a naplníte jej rolí [hlavniucetni]. Vytvoříte ještě třetí pole typu autoři, do kterého se automaticky uloží jméno uživatele, který dokument faktury založí. V ACL potom uživatelům v účetním oddělení dáte přístup Author a roli [fakturant], vedoucímu účetního oddělení navíc ještě roli [hlavniucetni]. Výsledkem bude to, že všichni účetní budou moci vidět všechny faktury a každý bude moci editovat tu, kterou vytvořil sám, přičemž vedoucí oddělení bude moci editovat všechny faktury.
  • Tlačítka a akce: pokud nechcete, aby některé ovládací prvky viděli všichni uživatelé, skryjte je pomocí rolí. Do vlastnosti příslušného tlačítka, akce či sekce dokumentu vyplňte položku „Hide when“ zjišťující, zda uživatel má či nemá příslušnou roli.
    Příklad: V databázi Fakturace je pohled „Všechny faktury“ s tlačítkem „Vytvořit novou fakturu“. Ve vlastnostech tlačítka nastavíte „skryj, když uživatel nemá roli [fakturant]”.

Sekce Logs

ACL je záležitost bezpečnostní, proto se každá jeho změna zaznamenává. V třetí záložce Logs tak můžete vidět všechny zásahy do přístupových práv dané databáze. Jsou tam zaneseny jak tvorby nových položek (added), tak změny nastavení (updated) i smazání položek (deleted).

Lotus Notes - ACL 2
 

V případě problémů lze jednoduše dohledat, kdo je zodpovědný za špatně nastavenou položku v ACL.

Sekce Advanced

Poslední záložka v ACL dialogu skrývá nastavení, která jsou oproti těm na první záložce o něco více systémovější. Mění se méně častěji než přiřazení práv na záložce první.

Lotus Notes - ACL 2
 

Administrační server

Každá databáze by měla mít jeden administrační server, tedy server, který se tzv. o ni stará. Zároveň to musí to být takový server, na němž se nachází alespoň jedna replika databáze. Pojem administrační server je propojen s Administračním procesem, což je jedna z úloh serveru Domino, která má na starosti automatizované změny v databázích. Stará se například o přejmenování uživatelů: pokud se uživatelka vdá, stačí pouze na jednom místě napsat její nové příjmení a Administrační proces sám projde příslušné záznamy, databáze, ACL a podobně a změní její příjmení automaticky na všech místech.
Tyto příkazy automatické změny se šíří napříč doménou přes všechny servery Domino, proto je nutno zajistit, aby se o každou databázi staral nějaký server. Z toho také vyplývá, že dvě repliky jedné databáze umístěné na dvou různých serverech musí mít stejný Administrační server. Kdyby se totiž o každou „staral“ jiný server, došlo by k dvojímu přejmenování a při první vzájemné replikaci by se objevily replikační konflikty.
V záložce Advanced se nastavuje jméno administračního serveru. Vybraný server se objeví v první záložce jako Manager a v ikoně bude mít symbol klíčku.

Lotus Notes - ACL 2
 

V řádku pod jménem serveru nazvaném Action lze nastavit, co všechno může administrační server v databázi měnit – týká se to zmíněného automatického přejmenování polí, například změny příjmení. Na výběr jsou tři možnosti:

  • Do not modify Names fields. Administrační server nebude měnit žádná políčka. Změna příjmení uživatelky se tedy do této databáze nepromítne.
  • Modify all Reades and Authors fields. Administrační server bude měnit hodnoty pouze v polích typu čtenáři a autoři. Jedná se o systémová pole, pomocí kterých se nastavuje přístup k dokumentu.
  • Modify all Names fields. Administrační server bude měnit hodnoty v polích čtenáři a autoři a navíc i v ostatních polích typu Names.

Příklad: V databázi Fakturace máte formulář Faktura s polem typu autor, kde je uveden uživatel, který dokument založil a má právo jej editovat. Pokud by uživatel změnil jméno, právo přístupu by ztratil. Nastavíte tedy v ACL příslušný administrační server a vyberete mu Modify all Reades and Authors fields. Faktura je však úřední dokument a jestliže je na ní jméno fakturantky viditelně uvedeno a použito i na tištěné verzi, nesmí se v průběhu let měnit. Ošetříte to tak, že přidáte do formuláře další pole typu Names, do kterého formulář automaticky překopíruje jméno uživatele, který dokument založil. Toto pole, jež bude možné vidět na obrazovce a bude vytištěno, se nebude v průběhu času měnit. Administrační server tak bude měnit pouze skryté pole typu autoři (kvůli konzistentnímu přístupu i po přejmenování uživatele), ale statické pole se jménem fakturantky zůstane od vytvoření dokumentu neměnné.

„Zamknutí ACL“

Nastavení Enforce a consitent Access Control List across all replicas nazývají administrátoři zkráceně „zamknutí ACL“ nebo „vynucení konzistentního ACL“. ACL z principu umožňuje mít na různých replikách jedné databáze různé ACL – v určitých situacích to může být výhodné.
Pokud však správce databáze nechce, aby mu někdo jiný (třeba lokální administrátoři na jiných pobočkách, kam se databáze replikuje) ACL měnil, zaškrtne tento checkbox. Při replikaci se potom zkontroluje, zda ACL je na obou stranách stejné. Pokud ne, replikace se přeruší a do logu se zapíše, že někdo manipuloval s ACL databází na vzdáleném serveru.

K databázi se dá přistupovat jak z „tlustého“ klienta Lotus Notes, tak z „tenkého“ klienta – internetového prohlížeče. ACL nastavuje práva pro oba tyto přístupy současně. Protože je ale přístup přes web obecně méně bezpečný (nepoužívá se například soubor Notes ID, pouze jméno a heslo), může správce databáze přístup z webu omezit.

Lotus Notes - ACL 2
 

Pole Maximum Internet name and password nabízí na výběr všech sedm úrovní (od No access až po Manager). Vybraná úroveň potom slouží jako maximální pro přístup z webu. Defaultně je nastaveno Editor, což je univerzální volba.

Poslední tlačítko v této sekci – Look Up User Types for ‘Unspecified’ Users – zkontroluje entity v první záložce a k těm, které mají typ Unspecified, nastaví správný typ podle Domino Directory (uživatel, server, skupina).

Zjištění vlastní úrovně přístupu

V minulém díle byl popsán způsob jak zjistit ACL pro určitou skupinu či konkrétního uživatele pomocí tlačítka Effective Access na první záložce dialogu ACL. Chcete-li zjistit aktuální úroveň přístupu pro sebe, můžete tak udělat jednodušeji a rychleji.
Vpravo dole na stavovém řádku je ikona reprezentující vaši úroveň přístupu k databázi (klíč pro Manager, brýle pro Reader apod.). Pokud na ni kliknete, otevře se okno, kde jsou vaše práva rozepsána podrobněji. V horní části je seznam všech možných entit, jichž „jste členem“ – jsou to buď skupiny nebo hvězdičkové výrazy (*/Firma), které vyhovují vašemu jménu. Symboly pro potvrzení, tzv. „fajfky“, jsou uvedeny u těch, které vám „přinesly“ výslednou úroveň přístupu. Ta je napsána slovně hned pod tímto rámečkem.

Lotus Notes - ACL 2
 

Navíc se v seznamu objeví i role (na konci v hranatých závorkách), které jsou vám v databázi přiřazeny. Avšak pozor – role u sebe nemají „fajfky“. Pokud je role uvedena v seznamu, máte ji. Pokud uvedena není, tak ji nemáte.

Hromadná změna ACL

Dosud jste k ACL databázi přistupovali vždy přímo přes menu Files – Application – Access Control. Tím lze nastavit práva k jedné vybrané databázi. Potřebujete-li však udělat hromadné změny, například do všech databází v adresáři Fakturace přidat skupinu Ucetni jako Author, můžete k tomu využít Administračního klienta.
V záložce Files, kde je seznam všech databází na vybraném serveru, vyberte jednu nebo více databází a v pravém sloupci se seznamem akcí klikněte na Database – Manage ACL. Otevře se dialog podobný tomu, se kterým jste dosud pracovali. Dole uprostřed je možnost přepnout se na ACL jednotlivých databází (View/Edit single ACL).
Všechny práce, které provedete v dialogu Manage Multiple ACLs, se přenesou do ACL všech vybraných databází. Na záložce Advanced můžete přidávat či ubírat práva uživatelům a skupinám, vytvářet role i nastavovat administrační záležitosti.

Závěr

Tím končí druhá část povídání o ACL. Byly probrány zbývající položky dialogu ACL, hromadná správa ACL a způsob zjištění aktuálního ACL.

Předchozí: Lotus News Praha Q4/2009
Následující: Lotus Sametime 8.5