Seriál Lotus Notes: ACL (1.)

V minulém díle seriálu o administraci Lotus Notes jsme se zaobírali bezpečností systému. Nyní se zaměříme na jednu její speciální část - řízení přístupu k databázím pomocí ACL.

Princip ACL

Správné nastavení ACL (Access Control List - Seznam přístupových práv) patří mezi základní znalosti každého administrátora Lotus Notes. Jedná se o činnost, kterou provozuje pravidelně - když se zakládá nová databáze, buduje nový server, vznikají nové skupiny uživatelů, nebo při bezpečnostní kontrole systému.

ACL je vedeno pro každou databázi. Z předchozích dílů víte, že jedna databáze může mít více replik, nacházejících se na různých serverech nebo stanicích uživatelů, a vzájemně se replikujících (synchronizujících). Většinou bývají práva nastavena tak, že může být udržováno stejné ACL na všech replikách jedné databáze. Taková situace je potom přehlednější a lépe se spravuje. Vyžaduje-li to ovšem situace, lze ACL nastavit tak, že je na různých replikách různé.

Při přístupu uživatele nebo serveru k databázi se kontroluje, zdali mu ACL dovolí tuto databázi otevřít, a s jakými právy.

Otevření ACL

ACL databáze můžeme otevřít několika způsoby. Pokud je databáze otevřena, vyberte z menu File - Application - Access Control. Máte-li databázi na ploše, funguje stejná volba pod pravým kontextovým tlačátkem myši.

Objeví se okno s aktuálním nastavením přístupových práv. Již nyní poznáte, jestli můžete nastavení měnit - jsou li tlačítka a přepínače zašedlé, nemáte k tomu dostatečné oprávnění.

ACL v Lotus Notes
 

Dialogové okno, kde se ACL nastavuje, se na první pohled může zdát složité a nepřehledné. Brzy se s ním ale seznámíte a zjistíte, že práce s ním je jednoduchá a efektivní.

V levé části jsou 4 záložky, pomocí kterých se přepínáte mezi jednotlivými sekcemi ACL. Těžiště ACL nicméně spočívá hned v té první záložce, Basics, kterou nyní projdeme.

Sekce Basics

Nejvetší část zabírá sekce uprostřed, s názvem Access Control List a seznamem uživatelů, serverů a skupin. Pokud na nejaké jméno kliknete, změní se zaškrtnutí políček v pravém sloupci, nadepsaném Attributes. Vyzkoušejte aspoň dvě tři položky a sledujte, jaká mají přiřazena práva.

Pravý sloupec Attributes je totiž to místo, kde nastavujete entitám (uživatelům, serverům či skupinám) práva k databázi.

I tento sloupec je dále dělen na tři části. V horní se nastavuje typ entity a zakladní úroveň přístupu. Uprostřed je 9 checkboxů (v předchozích verzích Lotus Notes se můžete setkat i s menším počtem) určených pro přesnější, jemnější škálování práv. A úplně dole je sekce Roles. Role umožňují provázat ACL s prvky návrhu nebo se sadou dokumentů v databázi. (Příklad: Můžete vytvořit databázi, ve které tlačítko "Schválit fakturu" uvidí pouze osoby, které mají v ACL roli "[fakturant]".)

Pravý sloupec Attributes je v ACL klíčový, proto si jej projdeme podrobně.

User Type

Existuje 6 druhů user type: Unspecified, Person, Server, Mixed group, Person group a Server group. Začínající administrátoři nezřídka tomuto nastavení nevěnují přílišnou pozornost a nesprávnou volbou mohou vybranou entitu nechtěně odříznout od přístupu k databázi.

ACL v Lotus Notes
 

Klíčové typy jsou Person a Server. K databázi totiž může entita přitupovat "uživatelsky", tj. z klienta Lotus Notes, nebo "serverově", tj. nízkoúrovňově, při komunikaci dvou serverů mezi sebou. Nastavujte tedy uživatelům typ Person a serverům typ Server. Když dáte uživateli typ Server, k databázi se nedostane, protože k němu bude přistupovat "uživatelským" způsobem, ale má povolen jen "serverový".

Person group a Server group jsou varianty pro skupiny. Nastavujete-li přístup pro skupinu uživatelů či skupinu serverů, vyberte jim tyto typy.

Unspecified a Mixed group jsou varianty, kdy nevíte (nebo se tím nechcete zabývat), jakého typu je daná entitia. Jako Unspecified můžete označit každou entitu a bude jí povolen přístup jak "uživatelský", tak "serverový". Mixed group popisuje skupinu, kde jsou jak uživatelé, tak servery (například skupina se všemi uživateli a servery v ogranizaci).

Access

Máme 7 základních úrovní přístupu.

ACL v Lotus Notes
 

No Access - Bez přístupu. Entita nemá přístup k databázi. Smysl to má například tehdy, pokud uživatel je členem skupiny, která má práva přístupu k databázi, ale jemu konkrétnímu je chceme odebrat.

Depositor - Přispěvovatel. Zvláštní úroveň přístupu, kdy entita má právo zapsat dokument do databáze, ale nemá právo si nic přečít. Jakási jednosměrná volební urna nebo poštovní schránka na házení dopisů. A druhý uvedený případ je právě nejčastější použití této úrovně: na každém serveru je databáze mail.box, která slouží jako fronta pro maily čekající na odeslání. Každý do ní může psát (předat mail k odeslání), ale číst v ní mohou jenom správci a server (jinak by běžní uživatelé mohli procházet a číst maily, které do fronty uložili jejich kolegové).

Reader - Čtenář. Entita může číst dokumenty, ale nemůže žádné vytvořit ani upravit.

Author - Autor. Entita má práva Čtenáře plus může vytvářet dokumenty a ty své následně upravovat, případně mazat. Tento typ přístupu by měl být pro běžné uživatele (spolu s úrovní Čtenář) nejčastěji používaný. Z toho důvodu pro něj existuje řada nuancí a možností, jak blíže specifikovat, které dokumenty může upravovat, zda může mazat apod.

Editor - Editor. Určeno pro uživatele, kteří za obsah databáze určitým způsobem odpovídají. Mají stejná práva, jako Autoři, jenom mohou navíc upravovat i mazat dokumenty, které nevytvořili.

Designer - Návrhář. Určeno pro vývojáře, programátory, designery. Mají stejná práva, jako Editoři, navíc mohou vytvářet a upravovat design databáze a některé systémové vlastnosti databáze.

Manager - Manažer. Určeno pouze pro správce systému Lotus Notes. Mají stejná práva, jako Návrháři, navíc mohou nastavovat ACL (tedy určovat přístupová práva pro ostatní), všechny systémové vlastnosti databáze a mohou také celou databázi smazat. Každá databáze musí mít aspoň jednoho Manažera, aby šlo spravovat její ACL.

Zjemnění přístupu

Patrně jste si všimnuli, že při přepínání jednotlivých úrovní přístupu vyjmenovaných výše, se mění i sloupce 9 checkboxů pod nimi. Ty jsou přímo navázany na úroveň přístupu a umožňují přidat nebo ubrat další privilegia, neboli zjemnit nastavení přístupu. Každá úroveň nabídne k zaškrtnutí jinou množinu checkboxů; je to proto, že třeba pro úroveň No Access nemohu vybrat Create document, ale pro úroveň Author už ano.

ACL v Lotus Notes
 

Popisy checkboxů, jak jdou shoda dolů:

Create documents - Entita má právo vytvářet dokumenty. Pozor, úroveň Author sama o sobě nedává hned právo tvořit dokumenty; pouze odkryje možnost zaškrtnout tento checkbox a tím toto právo přiřadit.

Delete documents - Entita může mazat dokumenty. Z bezpečnostních důvodů je to vypnuto defautlně pro všechny úrovně přístupu. Dokonci i Manager si musí explicitně zaškrtnout, že chce dokumenty mazat.

Create Private Views - Uživatel si může vytvořit vlastní pohled na data, podle svých pravidel. Pohled je uložen lokálně na počítači uživatele, v souboru desktop8.ndk.

Create personal folders/views - Uživatel si může vytvořit vlastní pohled či šložku uloženou na serverové replice databáze, kterou ostatní neuvidí. Vhodné pro případy, kdy uživatel potřebuje pohled na data, který v databázi neexistuje, vývojáři jej nevytvořili.

Create shared folders/views - Uživatel může vytvářet a upravovat sdílené pohledy a složky, i když je nevytvořil. Pozor, u neznalých uživatelů by to mohlo udělat paseku, raději vypínejte.

Create LotusScript/Java agents - Agent je skript, dávka příkazů, která se spouští automaticky v pravidelných intervalech nebo na vyžádání uživatele. Uživatel si může vytvořit například ve své poštovní databázi agenta, který všechny maily s určitým parametrem přepošle na jeho mobil jako SMS. Je nutno splnit ovšem ještě druhou část - administrátor musí tomuto uživateli dát právo spouštět agenty na serveru (nastavuje se to v Server dokumentu v names.nsf).

Read public documents - Něco mezi No Access a Reader. Uživateli dáte právo No Access a zárověň zaškrtnete tento checkbox. Výsledkem je, že bude moci číst pouze dokumenty určené pro veřejný přístup (obsahují pole $PublicAccess=1). Využívá se to hojně při zpřístupnění poštovní databáze kolegům. Nastavíte-li jim No Access + Read public documents, budou moci vidět váš kalendář a vaše úkoly (kromě položek, které jste explicitně označili jako soukromé).

Write public documents - Totéž, jako Read public documents, jenom navíc s možností veřejné dokumenty vytvářet a editovat. Příklad použití: asistentka zanáší schůzky a úkoly přímo do poštovní databáze manažera.

Replicate or copy documents - Pokud entitita toto právo nemá, může obsah databáze sice číst, nemůže si ale udělat její repliku, nemůže dokumenty kopírovat pomocí Copy-Paste a to dokonce ani části dokumentů.

Správa entit

Doposud jsme probírali to, jaká práva můžeme přidat uživateli či skupině, a co přesně znamenají. Jak ale samotné entitiy do ACL přidat či odebrat? K tomu slouží tlačítka Add, Rename, Remove.

Tlačítkem Add můžete přidat jednotlivce, server či skupinu. Platí u toho jeden trik - nově přidávaná entita dostane zpočátku stejná práva, jako má ta, která je právě vybrána. Nejjednodušší postup, pokud přidávate například dalšího uživatele do fakturační databáze, je ten, kdy si myší vyberete existujícího uživatele v ACL, který má stejná nebo velmi podobná práva, jaká má mít i nový uživatel. Potom dole zmáčknete Add a doplníte jméno nového člověka. Následně zkontrolujete v pravém sloupci, jestli je vše, jak má být a případně doladíte nastavení.

Tlačítko Remove odstraní aktuálně vybranou entitu z ACL. Nelze odstranit posledního Manažera databáze.

Tlačítko Rename slouží k přejmenování vybrané entity. Alternativně může také pomoci, pokud potřebujete překopírovat jméno entity do schránky.

Asi jste si všimnuli, že v ACL každé databáze existuje nahoře položka -Default-, kterou nelze smazat. Jedná se o výchozí nastavení přístupu k databázi v případě, že uživatel není uveden v ACL explicitně ani skrze členství v určité skupině. Pro většinu databází by mělo být Default nastaveno na No Access či Reader. Vyšší práva přidělujte potom pomocí skupin (např. All Users = Author).

Entita Default se vstahuje na ty přístupy, které jsou autentikované, tj. je známa identita přistupujícího uživatele či serveru. Mohou ovšem nastat situace, kdy tato identita známa není - například máte databázi zpřístupněnu přes webové rozhraní i pro anonymní uživatele. V takovém případě můžete využít druhé systémové entity, která se jmenuje Anonymous. Ta se aplikuje tehdy, když identita přistupujícího není známa (zpravidla se jedná právě o přístup k databázi anonymně přes webový browser). Měla by mít tedy případně ještě slabší práva, než entitia Default (u té aspoň víte, že uživatel má validní Notes ID, se kterým může přistupovat na váš server Domino - tedy nejčastěji je to firemní zaměstnanec).

Máte-li v ACL spoustu skupin a uživatelů, může se vám hodit tlačítko Effective Access. To otevře dialogové okno, kde vyberete jméno uživatele, serveru či skupiny, a Lotus Notes vám spočítají práva k databázi, které tato entita má.

ACL v Lotus Notes
 

Závěr

Tím končí první část povídání o ACL. Probrali jsme nejdůležitější část - popis a nastavení přístupových práv. V dalším díle dokončíme popis tří zbývajících záložek dialogu ACL, hromadnou správu ACL, spůsob výpočtu efektivního ACL a další.

Předchozí: Stahujeme Lotus Notes 8.5.1
Následující: Lotus Notes Traveler 8.5.1 - Příručka uživatele