V prostředí systému Control Web je pro ochranu
běžících aplikačních programů proti neautorizovaným zásahům
nepovolaných osob k dispozici systém přístupových práv uživatelů.
Tento systém nejen zabrání osobě bez příslušného oprávnění zastavit
aplikační program, ale prakticky každá programová komponenta může mít
omezen přístup jen na určitou skupinu uživatelů, která je oprávněna
s patřičnou komponentou manipulovat. V praxi to tedy znamená, že
neoprávněný uživatel nedokáže např. pohnout knoflíkem nebo stisknout
tlačítko.
V OS Windows je samozřejmě možno určitými prostředky ukončit
jakoukoli aplikaci, tedy i takovou která na zasílané zprávy s povelem
k ukončení nereaguje. Takovému násilnému ukončení aplikačního
programu ani systém přístupových práv uživatelů dost dobře nedovede
zabránit. Stejně tak není možno zabránit zastavení programu prostým
vypnutím počítače.
Každý aplikační program v prostředí systému Control Web není takto vždy automaticky chráněn. Nutnost přihlašování
uživatele by pro řadu aplikací, které žádnou ochranu nepotřebují,
pouze zbytečně komplikovala práci. Systém přístupových práv uživatelů
je v případě potřeby nutno v rámci aplikačního programu aktivovat. To
můžeme učinit v grafickém vývojovém prostředí v záložce Datové
inspektory. Ve stromu vybereme v položce Nastavení
aplikace větev Zabezpečení aplikace a zde nastavíme
požadované hodnoty u nabízených parametrů. Ve zdrojovém textu se
nastavení projeví v sekci settings v podsekci security.
Definice parametrů zabezpečení aplikace
Parametry sekce security. Parametr | Význam |
---|
security_mode | Nastavení parametru určuje intenzitu bezpečnostních
opatření, a tím i odolnost vůči napadení aplikace disabled
- žádné zabezpečení aplikace basic - základní
zabezpečení aplikace, kompatibilní s předchozími
verzemi advanced - nabízí řadu výkonných
bezpečnostních mechanismů, kdy o míře jejich použití rozhoduje
autor aplikace strong - automaticky nastaví
nejbezpečnější řešení, které ani autorovi aplikačního programu
neumožní cokoliv zanedbat | login_window_visible | Parametr určuje, zda bude přihlašovací okno viditelné.
Přihlašovací okne lze zobrazit stiskem kombice kláves
<Alt>+<Ctrl>+<Space> | receivers | Seznam přístrojů, které budou aktivovány při každém
přihlášení i odhlášení uživatele. | stop_access | Úrovně oprávnění uživatelů pro zastavení
aplikace. | activity_log | Parametr určuje, kam budou ukládány záznamy o aktivitě
uživatelů database - záznamy budou ukládány
do databázové tabulky file - záznamy budou
ukládány do textového souboru ve formátu CSV | database | Identifikátor databáze, odkazující se na definici
databáze v sekci database, kam budou ukládány
záznamy o aktivitě uživatelů. | history | Časové omezení historie uchovávaných záznamů v databázi
nebo souboru. | users_id | Identifikátor databáze uživatelů. Pokud chcete, aby
aplikace běžící na stejném PC sdílely uživatele, pak je třeba v
aplikacích nastavit stejný identifikátor.
| password_complexity | Požadavek na složitost hesla. Pokud je parametr nastaven
na hodnotu true, je vyžadováno, aby heslo splňovalo
alespoň tři požadavky z následujícího seznamu požadavků:
alespoň jedno malé písmeno
alespoň jedno velké písmeno
alespoň jednu číslici
alespoň jeden speciální znak
| password_expiration | Počet dnů platnosti hesla. Po uplynutí definované doby
bude uživatel vyzván k zadání nového hesla. | min_password_length | Minimální délka hesla (počet znaků) běžného
uživatele. | min_root_password_length | Minimální délka hesla (počet znaků) správce. | password_recycling | Počet po sobě následujících hesel, kdy se hesla nesmí
opakovat. | password_redefinition_period | Doba (v sekundách), po kterou nelze změnit
heslo. | web_2fa | Pokud je parametr nastaven na hodnotu true,
bude vyžadována dvoufázová autentifikace uživatele při
přihlašování z webových stránek. | number_of_login_attepmts | Počet neúspěšných pokusů o přihlášení, po kterých bude
úcet zablokován na dobu určenou parametrem account_blocking_period | account_blocking_period | Doba zablokování uživatelského účtu po vyčerpání počtu
povolených pokusů o přihlášení. | idle_logout_timeout | Doba automatického odhlášení přihlášeného uživatele při
jeho nečinnosti. |
Přístupová práva
Systém definice přístupových práv uživatelů je různý pro
základní a pokročilé zabezpečení. U základního (basic) se užívají
pro definici přístupu úrovně definované číslicemi (UID) a u
pokročilého zabezpečení se přístupy definují pomocí uživatelských
rolí.
V systému vždy existuje alespoň jeden uživatel s funkcí správce
systému. Přihlašovací jméno tohoto uživatele je root.
Upozornění: U nově nainstalovaného systému Control Web uživatel root nemá přiděleno žádné
heslo. Je tedy nanejvýš žádoucí, aby se správce systému co
nejdříve přihlásil pod tímto jménem a definoval heslo správce na
daném počítači.
Základní zabezpečení - basic
Každý autorizovaný uživatel má správcem systému přiděleno
určité číslo (UID — User Identifier).
Tato čísla mohou být v rozsahu od nuly do více než čtyř
miliard. Mezi jednotlivými UID čísly není obecně žádný vztah,
je to prosté nahrazení potencionálně dlouhého jména jediným
číslem.
Význam UID je jiný — tato čísla se
rovněž vyskytují v aplikaci jako hodnoty parametrů přístrojů
definujících přístupová práva. Při tvorbě aplikace samozřejmě
netušíme, kteří konkrétní uživatelé budou s aplikací pracovat.
S pomocí zvolených UID ale můžeme definovat strukturu přístupu
uživatelů. Je pak na správci konkrétní instalace aplikace, aby
definoval konkrétní uživatele a jim odpovídající UID. UID je
tak spojovací článek mezi aplikací, která pracuje pouze
s číselnými identifikátory, a během aplikace na určitém
počítači, na kterém jsou definováni skuteční uživatelé.
Jak bude vysvětleno později, lze přístupová práva
přidělovat nejen po jednotlivých číslech, ale i po intervalech
(např. přístup mají všichni uživatelé s UID 100 až 199, není
nutno vyjmenovávat všech 100 uživatelů). Přidělení čísel
z určitého intervalu skupině uživatelů, jež mají mít stejná
práva, tak může být velmi výhodné. Samozřejmě více uživatelů
může mít přiděleno jediné číslo UID. Z hlediska systému pak
ale práva těchto uživatelů nelze rozlišit.
Výjimečné postavení má UID nula. Uživatel s touto
identifikací má automaticky právo provádět jakékoliv akce a má
přístup ke všem částem systému. UID nula náleží zabudovanému
správci systému, mohou ji však mít i další uživatelé. Ti pak
mají práva shodná se správcem, nemusí ale znát heslo
skutečného správce a do systému se nepřihlašují pod jménem
root, ale pod svým jménem.
Pokročilé zabezpečení - advanced a strong
Narozdíl od základního zabezpečení jsou uživatelská
oprávnění v pokročilém režimu definována pomocí uživatelských
rolí.
Uživatelské role
Uživatelské role umožňují komfortnější správu
uživatelských oprávnění. V rámci definice role lze
nastavovat kromě přístupové úrovně i další oprávnění a
možnosti. Role je v systému identifikována svým jedinečným
jménem, kterým je přiřazována uživatelům a přístrojům.
Role se definují v rámci aplikace v Datových
inspektorech.

Definice uživatelských rolí v Datovém
inspektoru
Parametry sekce roles. Parametr | Význam |
---|
name | Jedinečné jméno role. Toto jméno se používá pro
identifikaci role a přiřazuje se jednotlivým uživatelům
a přístrojům. | level | Přístupová úroveň role. | access | Definice přístupu application
- uživatelé s touto přiřazenou rolí se smí přihlásit z
aplikace web - uživatelé s touto
přiřazenou rolí se smí přihlásit přes webové
rozhraní Upozornění: V režimu zabezpečení strong
smí být přístup pouze výhradní - buď z aplikace nebo
přes web. | permissions | Seznam povolených oprávnění role stop_application
- uživatelé s touto přiřazenou rolí smí zastavit
aplikaci view_login_log - uživatelé s
touto přiřazenou rolí smí prohlížet záznamy o aktivitě
uživatelů debug - uživatelé s touto
přiřazenou rolí smí používat ladicí okno
aplikace | options | Seznam možností role idle_logout_disabled
- uživatelé s touto přiřazenou rolí nebudou automaticky
odhlašováni při své nečinnosti. Platí pouze pro přístup
z aplikace. | status | Parametr určuje stav role enabled
- role je povolena disabled - role je
zakázána. Uživatelé s touto přiřazenou rolí se nebudou
moci přihlásit. |
Přístupová práva virtuálních přístrojů
Každý viditelný virtuální přístroj umožňuje definovat
přístupová práva parametrem access.Tento parametr
obsahuje v hranatých závorkách výčet UID, kteří mají ke
konkrétnímu přístroji přístup nebo výčet uživatelských rolí s
povoleným přístupem. Parametr access tak může
vypadat např. následovně:
access = [ 1..5, 8, 10..20 ], Dispečer, Operátor;
Přístupová práva virtuálních přístrojů -
basic
Pro security_mode = basic je přístup k
přístroji definován výčtem UID.
access = [ 1..5, 8, 10..20 ];
Tento zápis povoluje přístup všem uživatelům s UID 1 až
5, 8 a 10 až 20. Uživatel s UID 0 (root a
případně další uživatelé) mají přístup samozřejmě také
zajištěn.
V Inspektoru přístrojů je parametr access
v tabulce popisující vzhled přístroje (sekce
gui). Aby nebylo nutno ručně zadávat intervaly,
pomocné okno usnadňuje editaci:

Editace přístupových práv v inspektoru
přístrojů pro mód basic
Přístupová práva virtuálních přístrojů - advanced a
strong
Pro security_mode = advanced a security_mode = strong
je přístup k přístroji definován výčtem uživatelských
rolí.
access = Dispečer, Operátor;
Tento zápis povoluje přístup všem uživatelům
s přiřazenou rolí Dispečer nebo Operátor a samozřejmě s
rolí root.
I inspektoru přístrojů je parametr access
v tabulce popisující vzhled přístroje (sekce
gui). Aby nebylo nutné ručně zadávat výčet
rolí, pomocné okno usnadňuje editaci:

Editace přístupových práv v inspektoru
přístrojů pro mód advanced a strong
Přístupová práva u přístroje httpd
Velmi často jsou v roli klienta systému Control Web používány standardní WWW prohlížeče. Samostatnou
otázkou je proto ochrana aplikačního programu před
neautorizovaným přístupem v sítích Internetu a intranetu. HTML
dokumenty pro internetové prohlížeče jsou dynamicky generovány
virtuálním přístrojem httpd, který je
standardní součástí systému Control Web.
Vzhledem k tomu, že HTML rozhraní aplikačního programu může
být zcela odlišné od samotné aplikace, je nutno hlídat přístup
k jednotlivým stránkám a k internetovému serveru jako
celku.
Je-li v aplikaci systém kontroly přístupových práv
aktivován, pak také při přístupu prostřednictvím standardního
WWW prohlížeče přes HTTP nebo HTTPS protokol je vyžadováno
zadání jména a hesla uživatele. Není-li systém kontroly
přístupu v aplikaci použit, pro přístup k HTML rozhraní stačí
znalost IP adresy nebo doménového jména.
Přístroj httpd dovoluje definovat přístup
k jednotlivým URL. Pokud zadaná URL nemá definována přístupová
práva, zkontroluje se zda-li existují práva pro adresář,
v němž se URL nachází. Pokud ani práva pro adresář nejsou
definována, mohou se uplatnit práva definována pro celý
přístroj. Podrobněji je systém práv a přihlašování popsán
v dokumentaci k přístroji httpd.
V případě využití HTML rozhraní systému Control Web je zde ještě jeden velmi podstatný prvek
bezpečnosti. Přístroj httpd umožňuje přístup
jen k těm datům a komponentám aplikačního programu, které ve
svém návrhu zpřístupní autor aplikace. Ani autorizovanému
uživateli tedy není žádným způsobem umožněn přístup k těm
datům aplikace, o jejichž nepřístupnosti rozhodl autor
aplikace.
Jméno uživatele i jeho heslo je při přihlašování
v prostředí WWW prohlížeče přenášeno standardními prostředky
protokolu HTTP. Údaje tedy nejsou při přenosu zašifrovány. To
je nutno brát v úvahu zejména při připojení přes veřejný
Internet. Vyšší bezpečnost je vhodné zajistit dalšími
prostředky pro hlídání přístupu v Internetu a intranetových
sítích, jako je např. oddělení přes firewall. Prakticky
naprostou jistotu bezpečnosti i při propojení kritických
aplikací přes veřejný internet poskytuje zapnutí šifrovaného
přenosu HTTPS .
Pokud je v aplikaci zapnut globální Systém
přístupových práv uživatelů, lze nastavením parametru
access (buď pro celý přístroj nebo pro adresáře
(folders) / soubory (files)) zapnout
také přihlašování do aplikace přes webové rozhraní. Některé
parametry z globální sekce security pak ovlivňují
chování i samotného httpd přístroje. Jedná se
především o parametry pro složitost či expiraci hesla,
odhášení při nečinnosti, blokování uživatelů, atd.
Přihlášení do aplikace
Pokud není uživatel již přihlášen a přistoupí na URL,
která přihlášení vyžaduje, je přesměrován na stránku
Přihlášení uživatele. Zde stačí zadat své
uživatelské jméno a heslo. Teprve po úspěšném přihlášení
přístroj vyhodnocuje, zda má uživatel dostatečnou úroveň
pro přístup na danou URL.

Přihlašovací stránka do aplikace
Upozornění: Pokud je použito základní zabezpečení aplikace
(security_mode = basic), může se přes web
přihlásit každý definovaný uživatel. V pokročilém
zabezpečení je toto dovolenou pouze uživateli, jehož role
obsahuje definici přístupu web.
Údaje o přihlášení jsou následně uloženy v
prohlížeči pomocí cookies. Zneplatnit přihlášení lze
následujícími způsoby:
Zavřením okna s prohlížečem, popř. vymazáním
údajů o prohlížení.
Kliknutím na tlačítko Odhlásit v menu,
které se otevře po kliknutí na uživatelské jméno v liště
přihlášeného uživatele. Platí pouze, pokud aplikace byla
vygenerována průvodcem pro tvorbu WWW podoby aplikace a
byla zapnuta volba Generovat lištu přihlášeného
uživatele. 
Lišta přihlášeného uživatele vygenerovaná
průvodcem
Přistoupením na adresu
<adresa_serveru>/session/logout.
Automatickým odhlášením přihlášeného uživatele
při jeho nečinnosti. Platí pouze, pokud aplikace byla
vygenerována průvodcem pro tvorbu WWW podoby aplikace,
používá se rozšířené zabezpečení aplikace a je nastaven
parametr idle_logout_timeout v sekci security.
Zastavením běžící aplikace s přístrojem
httpd. Tímto dojde k odhlášení všech
uživatelů.
Změna hesla
Pokud uživateli vypršelo heslo (časovou expirací, popř.
vynucením od správce systému) nebo si ho sám chce změnit,
lze v prohlížeči navštívit stránku Změna
hesla.

Stránka s formulářem pro změnu hesla
Stránku pro změnu hesla lze navštívit těmito
způsoby:
Kliknutím na tlačítko Změna hesla v
menu, které se otevře po kliknutí na uživatelské jméno v
liště přihlášeného uživatele. Platí pouze, pokud
aplikace byla vygenerována průvodcem pro tvorbu WWW
podoby aplikace a byla zapnuta volba Generovat
lištu přihlášeného uživatele. 
Lišta přihlášeného uživatele vygenerovaná
průvodcem
Přistoupením na adresu
<adresa_serveru>/session/change-pw.
Seznam interních URL
Pokud je zapnuto v přístroji přihlašování do
aplikace přes webové rozhraní, vyhradí si httpd přistroj
virtuální adresář /session, který slouží k
obsluze přihlašovacího systému. Je proto doporučeno
nevyvářet tuto cestu ani fyzicky v kořenovém adresáři,
ani dynamicky pomocí sekcí pages, files
a folders. /session/login | Stránka pro přihlášení uživatele. | /session/logout | Virtuální stránka pro odhlášení uživatele,
přesměrovává zpátky na
/session/login. | /session/change-pw | Stránka pro změnu hesla přihlášeného
uživatele. |
Přihlášení do aplikace
Do aplikace se uživatelé přihlašují v okně Přihlášení
uživatele, které lze vyvolat kliknutím na toto okno v liště nebo
současným stisknutím kláves
<Alt>+<Ctrl>+<Space>.
Uživatel se přihlašuje pomocí svého uživatelského jména a
hesla. Po úspěšném přihlášení je zobrazeno jméno uživatele a jeho
avatar (obrázek), je-li zadán, tlačítko pro odhlášení a tlačítko
pro změnu hesla (pokud je změna hesla povolena).

Okno pro přihlášení uživatele v módu basic

Okno pro přihlášení uživatele v módu advanced a
strong
Definice uživatelů
To, jestli je systém přístupových práv aktivní či nikoliv, je
vždy dáno právě spuštěnou aplikací.
Definice uživatelů - basic
Seznam autorizovaných uživatelů spolu s jejich přístupovými
právy není svázán s jednotlivými aplikacemi, ale
s počítačem — přesněji řečeno
s instalací systému Control Web. Není-li však
v aplikaci systém přístupových práv aktivován, není seznam
uživatelů nijak využíván, a aplikační program může ovládat
každý bez jakéhokoliv omezení.
Jednotlivé uživatele a jejich přístupová práva je oprávněn
zadávat pouze správce systému.
Správce systému může přidávat nebo odstraňovat jednotlivé
uživatele a stanovovat jim úrovně přístupových práv,
nastavovat a měnit jejich hesla a nastavovat jednotlivým
uživatelům právo ke změně svého hesla. To můžete učinit dvěma
způsoby:
Ve vývojové verzi můžete pomocí menu Nástroje /
Průvodce právy uživatelů aplikace... spustit
Průvodce přístupovými právy uživatelů. Zde můžete
mimo jiných nastavení také editovat seznam uživatelů a
jejich přístupových práv. Přístup k tomuto seznamu je zde
také možný jen po ověření hesla správce
systému. 
Editace seznamu uživatelů v průvodci
Za běhu jakékoliv aplikace s aktivovaným systémem
kontroly přístupových práv se přihlásíte jako správce
systému. Poté můžete stiskem tlačítka Uživatelé
vyvolat dialogové okno se seznamem autorizovaných
uživatelů. 
Editace seznamu autorizovaných uživatelů za
běhu aplikačního programu
Správce systému může při editaci seznamu uživatelů
povolit nebo zakázat jednotlivým uživatelům měnit své heslo.
Toto nastavení se provádí změnou hodnoty ve sloupci Změna hesla.
Sloupec Heslo obsahuje heslo uživatele.
Kliknutím na tlačítko se šipkou v buňce s heslem lze otevřít
dialogové okno pro zadání nového hesla. 
Okno pro nastavení hesla správcem
systému
Editor seznamu uživatelů je v obou případech stejný a má
podobu snadno ovladatelné a přehledné tabulky.
Tip: Editor umožňuje dovezení nebo vyvezení seznamu
uživatelů prostřednictvím souboru. Veškerá data o uživatelích
tak můžete uložit na přenosné médium a snadno přenést např. na
všechny počítače distribuovaného systému. Do souboru je
uloženo i heslo správce systému — při
dovozu dat ze souboru je přeneseno i heslo správce. Máte-li
tedy na přenosném médiu uložena data z doby, ze které si již
své heslo správce nepamatujete, raději tato data do systému
nepřenášejte. Data jsou při vývozu šifrována a tak nemusíte
mít příliš obav z úniku citlivých dat ani při případné ztrátě
přenosného média.

Jednotliví uživatelé si mohou měnit svá hesla jen
za běhu aplikačního programu a pokud to mají
povoleno
Data o uživatelích jsou uložena v registru systému Windows.
I zde jsou samozřejmě zašifrována. Nikdy se proto nepokoušejte
tato data modifikovat přímo prostřednictvím editoru
registru.
Definice uživatelů - advanced a strong
V režimu advanced a strong je
seznam uživatelů spolu s přiřazenými přístupovými rolemi
uložen v registru systému a je identifikován řetězcem zadaným
u parametru user_id. Výhodou, oproti režimu
basic je, že každá aplikace běžící na PC může mít
vlastní množinu uživatelů nebo je mohou aplikace se stejným
user_id sdílet.
Jednotlivé uživatele, jejich uživatelské role a další
možnosti je oprávněn zadávat pouze správce systému, resp.
uživatel s přiřazenou rolí root.
Správce systému může přidávat nebo odstraňovat jednotlivé
uživatele, přidělovat jim uživatelské role, nastavovat a měnit
jejich hesla, odblokovat je v případě jejich zablokování a
nastavovat jim další nabízené možnosti.
Za běhu jakékoliv aplikace s aktivovaným systémem kontroly
přístupových práv se přihlásíte jako správce systému. Poté
můžete stiskem tlačítka Uživatelé vyvolat dialogové
okno se seznamem autorizovaných uživatelů.

Editace seznamu uživatelů za běhu aplikačního
programu v pokročilém režimu

Okno pro nastavení hesla správcem systému

Seznam nabízených možností uživatelského
účtu
Tip: Editor umožňuje export a import seznamu uživatelů
prostřednictvím souboru. Veškerá data o uživatelích tak můžete
uložit do šifrovaného souboru a snadno přenést na jiný
počítače nebo do jiné databáze uživatelů.
Upozornění: Do souboru je při exportu uživatelů uloženo
i heslo správce systému. Při importu dat ze souboru je tedy
přeneseno i heslo správce. Po úspěšném importu uživatelů je
vyžadováno nové přihlášení!

Jednotliví uživatelé si mohou měnit svá hesla za
běhu aplikačního programu a pokud to mají povoleno
Data o uživatelích jsou uložena v registru systému Windows.
I zde jsou samozřejmě zašifrována. Nikdy se proto nepokoušejte
tato data modifikovat přímo prostřednictvím editoru
registru.
Zastavení aplikace
Zastavení aplikace je nepochybně dosti zásadním zásahem do běhu
programu. Proto je při aktivovaném systému přístupových práv
umožněno zastavit aplikaci pouze uživatelům s právy správce
systému, tedy uživateli s přiděleným UID nula nebo s UID
definovaným u parametru stop_access v režimu basic
nebo v pokročilých režimech rolí root nebo pokud je v
definici role povolena volba stop_application .
Nástroje a položky menu sloužící k zastavení aplikace jsou
zneplatněny, pokud není přihlášen uživatel s odpovídajícím
oprávněním.

Bez příslušných práv aplikaci nelze zastavit
Systémová nativní procedura StopApplication()
Existuje ještě jedna možnost zastavení aplikačního programu
(samozřejmě mimo chyby za běhu aplikace, např. dělíte-li
v aplikačním programu nulou, bude tento rovněž zastaven bez
ohledu na úroveň práv právě přihlášeného uživatele). Touto
možností je systémová nativní procedura StopApplication().
Zavoláním této procedury může aplikační program zastavit sám
sebe kdykoliv, a to nezávisle na tom, jaký uživatel je zrovna
do systému přihlášen. Nechcete-li tuto možnost připustit,
musíte volat proceduru StopApplication()
podmíněně. Jméno a úroveň práv aktuálně přihlášeného uživatele
jsou trvale k dispozici v systémových proměnných. Rozhodnutí,
zda zastavení aplikace povolit je už v tomto případě pouze na
vás.
Umístění dat o uživatelích a jejich přenos mezi různými
počítači
Jak již bylo uvedeno v sekci Definice uživatelů, veškerá data
o uživatelích jsou uložena v registru systému Windows. Aby se
nikdo nepovolaný nemohl dozvědět cizí hesla, je záznam v registru
zašifrován.
Veškerá tato data mohou být rovněž uložena do souboru a v této
podobě přenášena mezi jednotlivými počítači. Do souboru je rovněž
uloženo i heslo správce systému, které je při dovozu ze souboru
rovněž přeneseno na cílový počítač. Rozšíření celého systému
uživatelských práv na více počítačů je tak velmi snadné a
rychlé — samozřejmě jen pro správce systému.
Pro nepovolanou osobu jsou nástroje pro vývoz i dovoz dat
nepřístupné.
Události šířené při přihlášení uživatele
Řídí-li se aplikační program informací o aktuálním uživateli,
může si jméno uživatele a jeho úroveň, roli a i nastavený režim
yabeypečení aplikace přečíst ze systémových proměnných user_name
a user_level a pomocí OCL procedur přístroje
zabudovaného přístroje system.. Není však jasné,
kdy by tato informace měla být čtena. Periodické čtení a testování
dat v systémových proměnných nebo volání OCL procedur by bylo
velmi neefektivní. Proto může být v nastavení parametrů login
definován seznam přístrojů, které budou aktivovány při každém
přihlášení i odhlášení uživatele. Seznam přístrojů je stejně jako
všude jinde uvozen klíčovým slovem receivers. Další
možností je zachytávat aktivitu přihlášování nebo odhlašování
uživatelů pomocí přístroje system_event a jeho
událostních procedur OnLogin( Level : longcard; UserName : string ),
OnLogout() a OnIvalidLogin().
settings
...
security
login_system_enabled = basic;
receivers = vitrual_instrument_1, vitrual_instrument_2;
end_security;
...
end_settings;
Takto mohou být snadno evidovány všechny změny uživatelů včetně
nepodařených pokusů o přihlášení. Seznam aktivovaných přístrojů
můžete vytvářet a upravovat v oblasti datových inspektorů
integrovaného vývojového prostředí.
Možnost zachytávání udalostí souvisejicích s
přihlašováním přístrojem system_event
Události týkající se přihlašování (i neúspěšných) a
odhlašování jednotlivých operátorů lze zachytávat v
událostních procedurách OnLogin( Level : longcard; UserName : string ),
OnInvalidLogin() a OnLogout()
virtuálního přístroje system_event. V těchto
procedurách pak lze tyto události zpracovávat uživatelským
skriptem.
Možnost archivace událostí systému kontroly přístupových
práv virtuálním přístrojem journal
Archivaci veškerých přihlašování (i neúspěšných) a
odhlašování jednotlivých operátorů přináší virtuální přístroj
journal. Tento přístroj je určen pro sledování
vybrané sady dat a archivaci veškerých změn. Zde postačí pouze
zapnout volbu Registrovat u parametru (vodorovné
záložky) register_login nebo uvést příznak
register_login;
do zdrojového textu přístroje. O další vazby či šíření
událostí mezi takovýmto přístrojem journal a
systémem kontroly přístupových práv se již nemusíte starat.
Přístroj journal totiž dokáže zpracovávat
vnitřní systémové události šířené systémem kontroly
přístupových práv.
Možnost přenosu informací o přihlašování uživatelů do
ovladačů
Ovladače vstupně-výstupních zařízení jsou samostatnými
komponentami systému Control Web. Jejich
funkce může být kromě zprostředkování čtení a zápisu kanálů
prakticky libovolná. Proto může být někdy užitečné, má-li také
ovladač vstupně/výstupního zařízení k dispozici aktuální
informaci o právě přihlášeném uživateli. Má-li nějaký ovladač
být informován o událostech systému kontroly přístupových
práv, musí ve své proceduře DriverProc zachycovat
zprávu cw_drv.dpfLogin:
DriverProc( cw_drv.dpfLogin, LoginLevel, AddressOfLoginNameString, 0, 0 );
Další parametry pak obsahují úroveň práv aktuálně
přihlášeného uživatele a adresu na řetězec s jeho jménem.
Není-li nikdo přihlášen, má LoginLevel hodnotu
MAX( CARDINAL ) a LoginName
obsahuje text 'none'. Podrobnější informace
o mechanizmech komunikace mezi ovladači a systémem
a o programovém rozhraní ovladačů vstupně/výstupních zařízení
naleznete v druhém dílu dokumentace v kapitole
Rozhraní ovladačů pro Control Web.
Logování aktivity uživatelů v režimu advanced a
strong
Význam hodnot ve sloupci Reason.
Zaznamenávání aktivity uživatelů do textového
souboru
Zaznamenávání aktivity uživatelů do textového souboru je
nastaveno jako výchozí. Soubory jsou zakládány při prvním
požadavku zápisu události ve dni. Soubory jsou ve formátu CSV
(oddělovač je středník) a jsou lokalizovány ve složkách podle
pravidel definovaných v sekci directories.
Textové soubory obsahují záznamy vždy za jeden den. Název
souboru je uvozen předponou cw_sec_, za kterou je
doplněno datum záznamů v souboru ve formátu yyyymmdd,
tedy např. 'cw_sec_20221209.log', je soubor se
záznamy ze dne 9. 12. 2022.
Nejmenší možná fragmentace historie souborů je v řádu
dnů.
Ukázka zápisu událostí do textového souboru v CSV
formátu
UTC; Application; UserName; Access; Reason; HostIP; Note
12:48:33.977; "security"; "", "application"; "Start the application"; "127.0.0.1"; ""
12:48:43.318; "security"; "root", "application"; "Login"; "127.0.0.1"; ""
12:49:16.042; "security"; "root", "application"; "Stop the application"; "127.0.0.1"; ""
Zaznamenávání aktivity uživatelů do databázové
tabulky
Zaznamenávání aktivity uživatelů do databázové tabulky je
volitelné a je vhodné pro pohodlné zpracování dat pomocí SQL
příkazů. Cílová databáze je určena parametrem database v sekci
security, který se odkazuje na název
předefinované databáze v sekci database. Historie
uchovávaných záznamů je určena parametrem history
v sekci security.
Při prvním požadavku na zápis události jsou v databázi
založeny tabulky cw_sec a
cw_sec_reasons.Tabulka cw_sec
obsahuje záznamy související s aktivitou uživatelů a tabulka
cw_sec_reasons je tabulka s popisy hodnot
ukládanými do sloupce REASON v tabulce
cw_sec.
Položka |
Popis |
UTC |
Čas (UTC) vytvoření události |
UTC_BIAS |
Pásmový posuní času |
DST_BIAS |
Posun letního času |
APPLICATION |
Název aplikace |
USER_NAME |
Přihlašovací jméno uživatele |
ACCESS |
Rozlišení přístupu do aplikace |
REASON |
Důvod zápisu události |
HOST_IP |
IP nebo název hostitele |
NOTE |
Poznámka - upřesnění události |
Struktura tabulky cw_sec
Hodnota |
Význam |
0 |
Spuštění aplikace |
1 |
Zastavení aplikace |
2 |
Přihlášení |
3 |
Přihlášení zakázáno |
4 |
Neznámý uživatel |
5 |
Neznámá uživatelská role |
6 |
Uživatelská role je zakázána |
7 |
Uživatelská role je povolena |
8 |
Chybné heslo |
9 |
Uživatel si změnil heslo |
10 |
Uživatel byl zablokován |
11 |
Pokus o přihlášení zablokovaného uživatele |
12 |
Odhlášení |
13 |
Odhlášení voláním systémové procedury Logout() |
14 |
Odhlášení po chybném přihlášení |
15 |
Odhlášení po importu uživatelů |
16 |
Odhlášení - zadání nového hesla |
17 |
Odhlášení při nečinnosti |
18 |
Vynucené odhlášení |
19 |
Správa uživatelů |
Význam hodnot ve sloupci REASON - obsah
tabulky cw_sec_reasons
Hodnota |
Význam |
1 |
Přístup z aplikace |
2 |
Přístup z webu |
Význam hodnot ve sloupci Access.
Příklad SQL dotazu pro zobrazení záznamů aktivity
uživatelů:
SELECT
CONVERT(DATETIME, s.UTC - 2415020.5) UTC,
s.APPLICATION,
s.USER_NAME,
CASE s.ACCESS WHEN 1 THEN 'App' WHEN 2 THEN 'Web' END ACCESS,
s.HOST_IP,
r.CZ REASON,
s.NOTE
FROM
cw_sec s INNER JOIN cw_sec_reasons r ON s.REASON = r.ID
UTC |
APPLICATION |
USER_NAME |
ACCESS |
HOST |
REASON |
NOTE |
2022-12-09 12:48:33.977 |
security |
|
App |
127.0.0.1 |
Spuštění aplikace |
|
2022-12-09 12:48:43.317 |
security |
root |
App |
127.0.0.1 |
Přihlášení |
|
2022-12-09 12:49:16.043 |
security |
root |
App |
127.0.0.1 |
Zastavení aplikace |
|
Příklad tabulky získané vykonáním dotazu
Shrnutí
Každá aplikace není automaticky chráněna — chceme-li využívat systém ochrany před
neautorizovanými zásahy, je nutno jej v dané aplikaci
aktivovat.
Systém Control Web nabízí tři módy
zabezpečení aplikace.
Nastavení security_mode = strong, splňuje
požadavky na kybernetickou odolnost, jak ji definuje směrnice „o
opatřeních k dosažení vysoké společné úrovně kybernetické
bezpečnosti v unii“, známá pod zkratkou NIS 2.
Přihlašovací okno může být skryté, tj. neviditelné na
pracovní ploše. Neviditelné (nebo jen minimalizované)
přihlašovací okno lze zobrazit současným stiskem kláves <Ctrl>+<Alt>+<Space> nebo z menu otevřeného nad ikonou systému
Control Web v liště s úlohami.
Seznam autorizovaných uživatelů je v režimu basic
společný pro danou instalaci systému Control Web na konkrétním počítači, není tedy spjat s aktuální
aplikací.
Seznam autorizovaných uživatelů v režimu advanced
nebo strong může být jedinečný pro konkrétní
aplikaci nebo může být aplikacemi sdílen.
Virtuální přístroj umožní přístup jen těm uživatelům,
jejichž přístupová práva jsou uvedena v parametru access
tohoto přístroje.
Definovaní uživatelé jsou kontrolováni i při přístupu
přes internet a intranet k vestavěnému serveru
httpd.
Zavolání systémové nativní procedury StopApplication()
zastaví aplikaci bez ohledu na přístupová práva momentálně
přihlášeného uživatele.
Můžete definovat seznam přístrojů, které budou aktivovány
při každém přihlášení i odhlášení uživatele.
Události systému kontroly přístupových práv můžete
evidovat a archivovat virtuálním přístrojem
journal.
Události systému kontroly přístupových práv jsou
prostřednictvím mechanizmu DriverProc přenášeny
i do ovladačů vstupně/výstupních zařízení.
Jste-li správcem systému, nezapomeňte své heslo!
|