Autentizace, přihlašování
Přihlašování uživatelů je realizováno přes http Basic Authentication. V dotazu je uvedena http hlavička "Authorization" s "base64" hodnotou získanou z uživ. jména a hesla. Tj.:
Authorization: Basic [base64 uživatelské jméno:heslo]
Přihlášení pro uživatele Test s heslem 123:
Authorization: Basic VGVzdDoxMjM=
Pro zakódování/dekódování řetězců lze využít různé on-line nástroje typu Base64 decoder/encoder. (Zdroj pro download si naleznete na webu.) Výchozí řetězec (login:heslo) musí být kódován v UTF-8, přestože se při práci s daty používá znaková sada Windows-1250.
Přístup k API je umožněn pouze uživatelům systému IS FLORES, kteří mají ve svém nastavení zatržený příznak Přihlášení nevizuálního uživatele API. Při přístupu k datům jsou zohledňována práva k chráněným objektům a také obecná funkcionalita ochrany dat.
Nejsou zohledňována práva k funkcím, která se týkají pouze práce s uživatelským rozhraním IS FLORES.
Kromě ochrany dat ve smyslu obecné funkcionality ochrany dat
Obecně platí:
-
K získávání informací o business objektech s vazbami na chráněné objekty (metodou GET v režimu základního dotazování i metodou POST v režimu rozšířeného dotazování) je zapotřebí právo Zobrazit ke všem chráněným objektům, které jsou na daném objektu použity.
-
K ukládání (metody POST, PUT a DELETE) je zapotřebí právo Použít ke všem chráněným objektům, na které se ukládaný business objekt odkazuje.
Obě práva tedy mají při práci v aplikaci IS FLORES i v rozhraní Web API stejný význam.
V číselníku vlastních bankovních účtů je nadefinovaný účet 98765432100/5500.
Uživatel Smith je obsazený do role, která má k tomuto účtu právo Zobrazit, ale nemá právo Použít. K datům přistupuje prostřednictvím uživatelského rozhraní aplikace IS FLORES.
- Uživatel Smith si může zobrazit fakturu vydanou, která má v položce Vlastní účet vyplněný odkaz na bankovní účet 98765432100/5500, protože k tomuto účtu má právo Zobrazit.
- Pokud je na některé faktuře vydané nastavený jiný bankovní účet, uživatel Smith ho v aplikaci IS FLORES nemůže změnit na 98765432100/5500, protože k tomuto účtu nemá právo Použít.
Uživatel Apu je obsazený do stejné role, ve vlastnostech uživatele má zatržený příznak přihlášení nevizuálního uživatele API, k datům přistupuje prostřednictvím rozhraní Web API.
- Stejně jako uživatel Smith může uživatel Apu získat (zobrazit) informace o faktuře vydané.
- Stejně jako uživatel Smith nemůže uživatel Apu na hlavičkách faktur nastavovat vazbu na účet 98765432100/5500, protože k tomuto účtu nemá právo Použít.
Při aktualizaci business objektů je zapotřebí právo Použít ke všem navázaným chráněným objektům, nejen k těm, jejichž hodnoty se mění. Pro změnu bankovního účtu na hlavičce faktury je tedy zapotřebí nejen právo Použít k příslušnému bankovnímu účtu, ale také například ke všem skladům, které jsou použity na řádcích daného dokladu.
Při práci s doklady tvořenými hlavičkou a řádky platí:
- Je uplatňována stejná logika jako při práci s doklady ve vizuálním prostředí IS FLORES - tj. pokud doklad obsahuje řádky s odkazy na chráněné objekty, ke kterým uživatel nemá přístup, doklad je možné načíst (včetně řádků), ale není možné jej uložit.
Pro bezpečnostní omezení (security podmínky) platí:
- Pro systémové položky na jednotlivých business objektech jsou brány v úvahu informace zaregistrované v DynSQL - pokud není změna v DynSQL, použije se výchozí (DynSQL)SecurityMask z číselníku. Výchozí hodnota parametru SecurityWithNull je True.
- Parametry definovatelných položek (běžných uživatelských položek i extra položek) jsou načítány zvlášť, bezpečnostní omezení jsou u nich společná pro výběr i pro ukládání.
- Na vlastněné kolekce a na odkazované business objekty nejsou bezpečnostní omezení aplikována.
- Rovněž na hierarchické business objekty nejsou bezpečnostní omezení aplikována. Přesněji nejsou aplikována na referenční položky business objektu, které ukazují na stejný typ business objektu, jako je ten, na kterém jsou definovány. Příkladem je hierarchická struktura středisek - i když je struktura definována (s využitím položky Parent_ID), bezpečnostní omezení je zapotřebí nastavit pro každý záznam (středisko) zvlášť, bez ohledu na hierarchii.