• HTTP autentizace
  • JSON autentizace
  • SAMLv2*
  • OpenID*

* Podporováno pouze na lokální instalaci. Dostupnost omezena ABRA Flexi licencí. Konfiguruje se ve webovém rozhraní serveru na adrese /admin/auth-settings.

HTTP autentizace

Jednoduchá HTTP autentizace je původní způsob ověřování uživatelů při přihlášování do webového rozhraní ABRA Flexi WUI. Současně je to také jedna z možností autentizace uživatelů REST API. Stačí s každým HTTP požadavkem posílat autentizační hlavičku. Pokud hlavičku neuvedete, dojde k přesměrování na přihlašovací formulář, případně bude navrácen status 401 Authorization required (požadavek na HTTP autentizaci).

Volání REST API se snažíme detekovat a nadále nabízet HTTP autentizaci. Pokud by detekce selhala, či bude nutné řídit způsob autentizace, je možné využít parametr ?auth=http (viz parametry URL).

Ukázka komunikace s jednoduchou HTTP autentizací pomocí příkazu curl:

curl -L -v -u winstrom:winstrom 'https://demo.flexibee.eu:5434/c/demo/adresar.xml?detail=custom:kod&limit=1'
⋮ * Server auth using Basic with user 'winstrom' > GET /c/demo/adresar.xml?detail=custom:kod&limit=1 HTTP/1.1 > Host: demo.flexibee.eu:5434> Authorization: Basic d2luc3Ryb206d2luc3Ryb20= > User-Agent: curl/7.54.1 > Accept: */* > < HTTP/1.1 200 OK < Cache-Control: private, max-age=0, no-cache < Set-Cookie: lang=cs;Version=1 < Vary: Accept < Content-Type: application/xml < Content-Length: 150 < Via: 1.1.loadbal-fra-1.c.flexibee.eu < <?xml version="1.0" encoding="utf-8"?> <winstrom version="1.0"> <!-- Adresář --> <adresar> <!-- ID (celé číslo) - --> <id>755</id> <!-- Zkratka (řetězec) - max. délka: 20 --> <kod>AAA</kod> </adresar> </winstrom>

Pro ukázku autentizace v PHP viz reálné příklady seriálu API.

JSON autentizace (autentizační sezení)

Pokud chcete ověřit ABRA Flexi a využívat vytvořenou autentizaci i pro další volání, použijte API pro získání autentizačního tokenu:

POST /login-logout/login.json

Pozn.: Metoda poskytuje výsledek pouze ve formátu JSON, proto v dotazu specifikujte správně požadovaný formát.

Volání musí obsahovat formulářová data:

username

Uživatelské jméno

password

Uživatelské heslo

otp

Jednorázové heslo (pokud je vyžadováno)

Příklad volání:

{ "username": "novak", "password": "heslo" }

Výsledek volání
Úspěšná autentizace

Výsledkem je příznak úspěchu success=true a autentizační token authSessionId:

{ "success": true, "authSessionId": "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff" }

Neúspěšná autentizace

Neúspěšnou autentizaci signalizuje příznak success=false s upřesňujícím popisem v řetězci errors.reason:

{ "success": false, "errors": { "reason": "Bylo zadáno chybné uživatelské jméno či heslo." } }

Možnosti využití autentizačního tokenu

Získanou autentizaci lze předávat v dotazech třemi způsoby:

  • Cookie: authSessionId: 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
  • HTTP hlavička: X-authSessionId: 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
  • URL query ?authSessionId=00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff

Pozor: U varianty v URL query budou autentizační údaje logovány na ABRA Flexi serveru.

Abyste udrželi token platný, je potřeba udržovat spojení pomocí občasného zavolání GET /login-logout/session-keep-alive.js. My ji voláme každých 60 vteřin, ale mělo by stačit i jednou za 30 minut.

Pokud budete chtít využít refreshToken, tak je potřeba ho poslat jako cookie requestem GET /login-logout/check, tím získáte nové authSessionId.

Pomocí API lze také provádět odhlášování uživatelů.

Umístění přihlašovacího formuláře na své stránky

Pokud potřebujete umístit přihlašování na své stránky, inspirujte se tímto HTML:

<form action="https>://demo.flexibee.eu:5434/login-logout/login.html" method="POST"> Jméno: <input type="text" name="username" value=""/><br/> Heslo: <input type="password" name="password"/><br/> <input type="submit" name="submit" value="Přihlásit"/> </form>

Je také možné přidat parametru returnUrl a určit adresu na kterou má být uživatel přesměrován. Pokud používáte OTP, je nutné přidat ještě parametr otp. Při použití SSO (OpenID nebo SAMLv2) nelze tuto metodu použít.

Našli jste odpověď?