Bezpečnost

Bezpečnost a práce s uživateli patří mezi základní systémové principy platformy NET Genium. NET Genium je navrženo pro provoz podnikových aplikací, kde je nutné jednoznačně určit:

  • kdo s aplikací pracuje,
  • k jakým datům a funkcím má přístup,
  • jaké změny provedl,
  • a kdy k nim došlo.

Platforma současně reflektuje aktuální bezpečnostní standardy a doporučení, zejména metodiky organizace OWASP Foundation.

Autentizace a zabezpečení přístupu

NET Genium podporuje moderní přístupy k autentizaci uživatelů s důrazem na bezpečnost a integraci s podnikovým prostředím.

  • Podporováno je přihlášení pomocí Microsoft účtů (Azure AD / Microsoft Entra ID).
  • Lze využívat MFA (Multi-Factor Authentication), které výrazně zvyšuje bezpečnost přístupu do aplikace.
  • Autentizace může být centralizována a spravována na úrovni organizace.

Použití MFA je doporučeným standardem zejména u aplikací pracujících s citlivými nebo interními daty.

Přihlášení do portálu

Pokud uživatel zadá nesprávné heslo při přihlášení, systém počítá neplatné pokusy o přihlášení pod daným přihlašovacím jménem za poslední minutu, hodinu a den. V závislosti na počtu těchto pokusů dojde k následujícím opatřením:

  • Po 3 neplatných pokusech během jedné minuty bude přihlašování daného uživatele zablokováno na 1 minutu.
  • Po 9 neplatných pokusech během jedné hodiny bude přihlašování daného uživatele zablokováno na 1 hodinu.
  • Po 18 neplatných pokusech během 24 hodin bude přihlašování daného uživatele zablokováno na 24 hodin.
  • Úspěšné přihlášení počítadlo nenuluje. Za neplatný pokus se počítá i chybný kód druhého faktoru a chybné původní heslo ve formuláři pro změnu prošlého hesla i v dialogu „Změna hesla“. Během zablokování dialog „Změna hesla“ změnu hesla odmítne. Z plochy serveru (IP adresa „127.0.0.1“) se blokování neuplatní.
  • Období se počítají klouzavě: blokace trvá, dokud nejstarší z napočítaných pokusů z daného období nevypadne, takže bez dalších započítaných pokusů trvá nejdéle uvedenou dobu. Pokusy o přihlášení během blokace se nezapočítávají; chybný kód druhého faktoru se započítá vždy. Neplatné pokusy z plochy serveru a z IP adres vyjmutých z blokování se rovněž započítávají, a protože se blokování vztahuje k přihlašovacímu jménu, prodlužují blokaci přihlašování z ostatních adres.
  • Blokování se vztahuje k přihlašovacímu jménu, ne k IP adrese. Výjimku pro IP adresy administrátorů zapíná konfigurační soubor „DenyInvalidLogins.txt“ popsaný v příručce Nastavení NET Genia.
  • Blokování se uplatní jen na přihlášení jménem a heslem, včetně přihlášení přes webové služby knihovny „NETGeniumConnection“. Přihlášení přes Microsoft, Google, Facebook nebo Apereo, integrovaným ověřováním Windows nebo přihlašovacím ticketem ani přístup tokenem přes integrovaný MCP server a přes vlastní API zablokované přihlašovací jméno neomezí.

Odblokování účtu může provést správce systému tím, že v tabulce s neplatnými pokusy o přihlášení odstraní záznamy o neúspěšných přihlášeních daného uživatele (Nastavení/Nastavení/Neplatná přihlášení).

V případě zapomenutého hesla může uživatel resetovat své heslo kliknutím na odkaz „Zapomenuté heslo“, pokud tuto možnost povolil administrátor v nastavení (viz možnost „Povolit zasílání zapomenutých hesel na přihlašovací stránce“ v příručce Nastavení NET Genia). Na e-mailovou adresu uživatele dorazí jednorázový odkaz s platností 1 hodinu, po jehož otevření si uživatel nastaví nové heslo; není-li vyplněná adresa portálu, dorazí místo odkazu dočasné heslo se stejnou platností, kterým se uživatel přihlásí a heslo si vzápětí změní. Nepoužitý odkaz i dočasné heslo zneplatní také každé úspěšné přihlášení uživatele v prohlížeči nebo stránkou Login.aspx. O dokončené změně dostane uživatel oznámení dalším e-mailem.

Pokud není možnost resetovat heslo prostřednictvím odkazu „Zapomenuté heslo“, uživatel se pro změnu hesla obrátí na správce, který uživateli nastaví heslo nové (Nastavení/Nastavení/Uživatelé).

Uživatelé

NET Genium podporuje několik typů uživatelů, které se liší způsobem přístupu, rozsahem oprávnění a odpovědností za prováděné změny. Z hlediska platformy existují tři základní typy uživatelů:

  • Běžný uživatel – pracuje s daty a funkcemi aplikace na základě svých oprávnění.
  • Administrátor – má přístup ke všem datům a nástrojům platformy a vytváří nebo modifikuje aplikace pomocí integrovaného návrháře.
  • Anonymní uživatel – vyplňuje údaje do webových formulářů, které se pomocí iframe stávají součástí webových prezentací.

Běžní uživatelé a administrátoři pracují v prostředí NET Genia vždy pod vlastním jednoznačným uživatelským účtem. Každá jejich činnost je dohledatelná a svázaná s konkrétní identitou.

Anonymní uživatelé do aplikace nevstupují jako přihlášení uživatelé. Jejich použití je omezeno na specifické scénáře, typicky sběr dat prostřednictvím veřejných formulářů. V těchto případech se neuplatňuje uživatelská identita ani licenční omezení přihlášených uživatelů.

Licenční model a uživatelé

Licenční model NET Genia je založen na maximálním počtu současně přihlášených uživatelů do aplikace.

  • Každé přihlášení běžného uživatele nebo administrátora spotřebovává jednu uživatelskou licenci; člen skupiny „External Users“ spotřebovává externí licenci, a je-li celkem ve třech a více uživatelských skupinách (skupinu „External Users“ počítaje), spotřebovává vedle ní i uživatelskou licenci. Administrátorovi, který se v prohlížeči přihlašuje s administrátorskými právy, se přihlášení neodepře ani při vyčerpaných licencích; administrátor přihlášený bez nich, protože jeho IP adresa neodpovídá povoleným IP adresám skupiny „Administrators“, se při vyčerpaných licencích nepřihlásí.
  • Pod jedním uživatelským jménem se může uživatel do aplikace přihlásit vícekrát, přesto je čerpána pouze jedna licence.
  • Licenci drží uživatel, který se v poslední hodině přihlásil nebo otevřel či odeslal editační formulář, nahlížecí stránku, hlavní stránku nebo stránku e-learningu, a přihlášení tokenem přes integrovaný MCP server nebo přihlášení přes webové služby knihovny „NETGeniumConnection“, které v poslední hodině poslalo požadavek. Po hodině bez takové akce se do počtu přihlášených nezapočítává, takže licenci uživatele, který zavřel prohlížeč bez odhlášení, může nejpozději po hodině využít někdo jiný. Licence se ověřuje jen při přihlášení, takže uživatel, který se po více než hodině nečinnosti vrátí do relace, která ještě nevypršela, pracuje dál i tehdy, když jeho licenci mezitím využil někdo jiný.
  • Celkový počet licencí může být kdykoliv rozšířen podle potřeb organizace.
  • Anonymní uživatelé uživatelskou licenci nepotřebují.

Tento model umožňuje flexibilní provoz aplikací při zachování přehledné kontroly nad jejich využíváním.

Licenční klíč vydává společnost NetGenium a NET Genium ho čte ze souboru „Config\license.txt“. Klíč je vystavený na MAC adresu serveru, určuje počet licencí a dále může obsahovat:

  • počet externích licencí – kolik členů skupiny „External Users“ smí být přihlášeno současně; bez nich se člen této skupiny nepřihlásí,
  • datum platnosti – během posledních 14 dní před jeho uplynutím zobrazuje NET Genium v záhlaví upozornění; po uplynutí platí klíč ještě týden a záhlaví odpočítává čas do přepnutí do režimu bez licence,
  • název databáze – klíč pak platí jen nad databází tohoto názvu; název se bez ohledu na velikost písmen porovnává s hodnotou „Database“, resp. „Initial Catalog“ připojovacího řetězce, takže u MS SQL Serveru jde o název databáze a u Firebirdu o cestu k souboru databáze nebo její alias – po přesunu souboru databáze na jinou cestu klíč přestane platit,
  • povolení umělé inteligence – bez něj nelze používat integrovaný MCP server; v NET Genium Online se nevyžaduje.

Bez platného licenčního klíče běží NET Genium bez licence: v titulku okna prohlížeče se zobrazuje „NO LICENSE“, v záhlaví se zobrazuje upozornění (u klíče s prošlou platností všem uživatelům, jinak jen vestavěnému účtu „Administrator“) a nahlížecí tabulky a další prvky načítají z řádkového dotazu nejvýše 100 záznamů. Chybí-li soubor s klíčem, nelze-li klíč přečíst nebo nesouhlasí-li MAC adresa serveru, smí být navíc přihlášen jen jeden uživatel a žádný člen skupiny „External Users“; u klíče vystaveného pro jinou databázi nebo s prošlou platností zůstává počet licencí podle klíče. Důvod, proč klíč neplatí, zapíše NET Genium do logu „System“ při startu, po nahrání nebo aktivaci klíče v dialogu žádosti o licenční klíč a po vypršení platnosti klíče za běhu aplikace. V NET Genium Online se licence nevynucují.

Licenční klíč se vyžádá v dialogu „Žádost o licenční klíč“ (s platným klíčem „Žádost o nový licenční klíč“), který otevře jen vestavěný účet „Administrator“ v toolbaru v navigační oblasti v administrátorském režimu. Tlačítko „Vytvořit žádost“ připraví ke stažení e-mailovou zprávu se zašifrovanou žádostí, která obsahuje mimo jiné MAC adresu serveru a název databáze; zprávu je potřeba odeslat na adresu support@netgenium.com. Obdržený klíč se nahraje v témže dialogu jako textový soubor, jehož název začíná „license“ a končí příponou „.txt“ bez ohledu na velikost písmen (typicky „license.txt“; soubor jiného názvu, soubor, jehož obsah není čitelný licenční klíč, a klíč, který pro tento server neplatí – vystavený na jinou MAC adresu (kontroluje se, jen zná-li server svou MAC adresu) nebo pro jinou databázi, nebo s platností prošlou o více než týden –, dialog odmítne hlášením „Neplatný licenční klíč!“ a dosavadní klíč ponechá; kromě souboru jiného názvu zapíše důvod odmítnutí do logu „System“), případně se klíč zkopírovaný do souboru „Config\license.txt“ uplatní tlačítkem „Aktivovat licenční klíč“ – v obou případech platí hned, bez restartu, v procesu webové aplikace, který ho přijal; běží-li nad touž databází více procesů, ostatní ho převezmou nejpozději do hodiny při vykreslení záhlaví portálu, má-li dosavadní klíč datum platnosti, jinak až po restartu.

Práva, uživatelské skupiny a skupiny oprávnění

Přístup uživatelů k aplikacím, datům a funkcím je v NET Geniu řízen pomocí práv. Každá stavební jednotka platformy (aplikace, editační formulář, nahlížecí stránka, ovládací prvek a další objekty) umožňuje samostatné nastavení práv. Do seznamu práv se vybírají buď:

  • uživatelské skupiny,
  • nebo konkrétní uživatelské účty.

Do seznamu práv se v konfiguračních dialozích nenabízí uživatelská skupina „Administrators“, uživatelský účet „Administrator“ ani jednotlivé uživatelské účty členů skupiny „External Users“; externí uživatele lze do práv zařadit prostřednictvím uživatelské skupiny.

Protože jeden uživatel může být členem více uživatelských skupin, může být u nově zakládaných uživatelů ruční výběr těchto skupin nepřehledný nebo náchylný k chybám. Z tohoto důvodu NET Genium podporuje skupiny oprávnění. Skupina oprávnění představuje předdefinovanou sadu uživatelských skupin, která odpovídá typickému způsobu práce konkrétního uživatele v aplikaci. Ve vlastnostech uživatelského účtu je možné vybrat konkrétní skupinu oprávnění. V takovém případě dojde k přepsání uživatelských skupin uživatele právě tou sadou skupin, která je definována vybranou skupinou oprávnění. Změna skupiny oprávnění podléhá stejným kontrolám jako ruční úprava seznamu uživatelských skupin. Ve formuláři „Uživatelská skupina“, kde se upravuje seznam členů skupiny, se kontroluje jen skupina „Administrators“, jejíž členy smí měnit pouze uživatel „Administrator“, a skupina „Users“, jejíž členy smí měnit pouze uživatel s administrátorským oprávněním nebo správce uživatelských účtů; členy ostatních skupin může měnit každý, komu se seznam členů zobrazí a kdo smí záznam skupiny upravit. Seznam uživatelských skupin přiřazených uživateli lze dodatečně ručně upravovat podle konkrétních potřeb; ve formuláři uživatele se zobrazuje administrátorům, správcům uživatelských účtů a uživatelům s oprávněním ke změně členství ve skupinách. Toto oprávnění nastavuje administrátor v administrátorském režimu ikonou „Upravit...“ u seznamu uživatelských skupin ve formuláři „Uživatel“ nebo „Skupina oprávnění“, případně u seznamu uživatelů ve formuláři „Uživatelská skupina“; vybírají se do něj uživatelské skupiny nebo uživatelé a platí společně pro všechny tři formuláře.

Změna uživatelských skupin uživatele (včetně skupiny „Administrators“, a tedy i administrátorského oprávnění) se do relace, ve které je uživatel právě přihlášený ve webovém prohlížeči, nepromítne – uplatní se až po jeho novém přihlášení. Výjimkou je uložení vlastního záznamu ve formuláři „Uživatel“, po kterém se obnoví relace, ve které byl záznam uložen; ostatní relace téhož uživatele (například v jiném prohlížeči) se neobnoví. Má-li uživatel o přístup přijít okamžitě, je nutné jeho relace odhlásit v seznamu uživatelů online. Smazání uživatele ukončí i všechny jeho přihlášené relace. Běží-li nad touž databází víc procesů webové aplikace, nebo maže-li uživatele externí funkce či služba přes knihovnu „NETGeniumConnection“, zablokuje se odhlášená relace obsluhovaná jiným procesem až na hlavní nebo nahlížecí stránce nebo při otevření editačního formuláře – v konfiguračním dialogu ani při uložení formuláře ne.

Výchozí instalace NET Genia obsahuje tyto systémové uživatelské skupiny:

  • Users – běžní uživatelé
  • Administrators – administrátoři
  • External Users – externí uživatelé, kteří čerpají externí licence; skupina se nezakládá v NET Genium Online

Používání uživatelských skupin je doporučeným postupem pro dlouhodobý provoz aplikací.

Historie a audit změn

Jednou z klíčových vlastností platformy NET Genium je automatická evidence historie změn. Každá změna dat v aplikaci:

  • je přiřazena ke konkrétnímu uživateli,
  • obsahuje časovou informaci,
  • je dohledatelná zpětně.

Auditní stopa zajišťuje transparentnost práce s daty, podporuje interní kontrolní mechanismy a umožňuje zpětnou analýzu změn. Historie není určena pouze pro řešení chyb, ale je zásadním nástrojem pro odpovědné řízení podnikových aplikací.

Bezpečnostní testování a aktualizace

Bezpečnost platformy NET Genium je průběžně ověřována a zlepšována.

  • Při spuštění větších projektů jsou prováděny penetrační testy celého frameworku.
  • Identifikované nedostatky jsou řešeny formou centrálních aktualizací, které jsou distribuovány do všech instancí aplikací.
  • Pravidelně jsou vydávány bezpečnostní i funkční aktualizace frameworku.

Tento přístup zajišťuje, že všechny instalace platformy dlouhodobě odpovídají aktuálním bezpečnostním požadavkům.

Bezpečnostní standardy

Při návrhu a vývoji platformy jsou dodržovány principy a doporučení organizace OWASP Foundation (Open Worldwide Application Security Project). To zahrnuje zejména:

  • ochranu proti běžným typům útoků (např. injection, XSS, CSRF),
  • bezpečné zacházení s autentizací a session,
  • validaci a sanitizaci vstupů,
  • důraz na bezpečný návrh architektury aplikací.

Dodržování těchto zásad je klíčové pro bezpečný provoz podnikových aplikací v prostředí NET Genia.

Odpovědnost administrátora

Administrátor aplikace nese odpovědnost za správné nastavení bezpečnostních principů v konkrétním řešení. To zahrnuje zejména:

  • správu uživatelských účtů,
  • návrh a údržbu práv,
  • kontrolu přístupů k citlivým datům,
  • pravidelnou revizi nastavení,
  • využívání bezpečnostních mechanismů, jako je například MFA.

Správně navržená bezpečnostní struktura chrání nejen data, ale i samotné uživatele a organizaci jako celek.