Zde zjistíte, jak můžete ve webových procesech chránit své zdroje (data + obchodní logiku) před škodlivými přístupy a před neoprávněnými uživateli… jedním kliknutím.
V režimu vývoje nastavte vlastnost Omezit přístup ve výchozím nastavení na hodnotu FALSE a soustřeďte se na organizaci kódu, datový model, architekturu stránek Qodly, testy … bez jakýchkoli omezení pro používání dat nebo volání funkcí.
Až budete připraveni implementovat uživatelské profily, stačí nastavit vlastnost Restrict access by default na TRUE, abyste zajistili, že nikdo nebude mít přístup k vašim datům a obchodní logice, aniž by byl výslovně autorizován.
Připomínka
Od verze 4D 20 poskytuje 4D výkonný a plně přizpůsobitelný systém ochrany zdrojů (data + obchodní logika) před neautorizovanými uživateli.
Tento systém nabízí přizpůsobitelnou úroveň granularity a spoléhá na přítomnost oprávnění v relaci. Privilegia musí být nastavena v souboru roles.json a musí být autorizována ke spuštění některých akcí (Read (Číst), Create (Vytvořit), …) na některých zdrojích (datové třídy, atributy, funkce).
Privilegia se uplatňují na webových procesech využívajících škálovatelné webové relace, např: REST požadavky, vzdálená datová úložiště, aplikace Qodly.
Když je uživateli povolen vstup do aplikace, musí implementace ověřování vložit do relace příslušná oprávnění.
Když pak aplikace obdrží webový požadavek, provede se kontrola ohledně přítomnosti oprávnění v relaci. Lze provádět pouze autorizované akce.
Pokud akce na prostředku není povolena, je vyvolána chyba oprávnění.
vlastnost omezit přístup ve výchozím nastavení
S 4D21 je v souboru roles.json k dispozici nová boolean vlastnost: restrictedByDefault.
Umožňuje nastavit výchozí chování týkající se webových přístupů k níže uvedeným zdrojům:
- datové úložiště
- datové třídy
- atribut
- funkce třídy datového modelu
- singleton funkce
To má vliv pouze na prostředky, u kterých nebyla nastavena žádná oprávnění.
Pokud je FALSE: prostředky jsou standardně přístupné.
Pokud nenastavíte žádná oprávnění, jsou všechny vaše zdroje přístupné, pokud jde o jakoukoli akci Vytvořit, Číst, Aktualizovat…
Pokud nastavíte oprávnění, zůstanou všechny vaše prostředky, kterých se oprávnění netýkají, přístupné.
Pokud TRUE: přístup ke zdrojům je ve výchozím nastavení omezen.
Pokud nenastavíte žádná oprávnění, nebude přístupné nic z vašich zdrojů.
Pokud nastavíte oprávnění, všechny vaše prostředky, které nejsou zapojeny do oprávnění, zůstanou nepřístupné.
Rozhraní Qodly Role a oprávnění
Možná jste již použili rozhraní Qodly studio Role a oprávnění. Nabízí uživatelsky přívětivé uživatelské rozhraní pro nastavení oprávnění pro vaši aplikaci. Toto uživatelské rozhraní nyní nabízí aktualizaci vlastnosti Omezit přístup podle výchozího nastavení.

S předchozími verzemi 4D
Pokud vaše aplikace běží s předchozí verzí 4D, je to ekvivalentní tomu, že má restrictedByDefault nastavenou hodnotu FALSE. Podobnou úroveň zabezpečení získáte vytvořením oprávnění all, které vám umožní spouštět všechny akce v datovém úložišti.
A toto privilegium all nikdy neudělujte žádnému uživateli.

Spuštění nového projektu
Při vytváření nového projektu je soubor roles.json nastaven tak, jak je:

Protože je restrictedByDefault nastavena na False, pomůže to při zahájení nového vývoje. Můžete se soustředit na svůj kód, návrh formulářů, volání funkcí a přístup k datům, aniž by vám v tom někdo bránil.
osvědčený postup
Pro optimální zabezpečení doporučujeme, abystev okamžiku, kdy jste připraveni implementovat uživatelské profily, nastavili vlastnost restrictedByDefault na True a nastavili oprávnění tak, abyste zajistili:
–vaše zdroje jsou chráněny před vnějšími škodlivými přístupy
–každý uživatel má právo provádět pouze autorizované akce na povolených datech
příklad
V níže uvedeném příkladu je datový model následující:

V souboru roles.json:

tedy:
– není možné přistupovat k datové třídě SecretInfos (Read, Create, Update, …)
– pro čtení datové třídy People je vyžadováno privilegium viewPeople, ostatní akce s datovou třídou People nejsou povoleny.
Přiložené HDI to demonstruje.
Nečekejte s nastavením oprávnění, abyste zabezpečili svou aplikaci a svá data a zároveň zpracovali přesné a vhodné profily uživatelů.
