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 < 755 AAA
Pro ukázku autentizace v PHP
viz reálné příklady seriálu API.
Jednoduchou HTTP autentizace lze zasílat i rovnou v URL adrese, ta může vypadat například takto: "https://jmeno:heslo@adresa_serveru:5434/c/firma/evidence". Jak URL adresu sestavit popisuje náš jiný návod.
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 raw data:
| Uživatelské jméno |
| Uživatelské heslo |
| Jednorázové heslo (pokud je vyžadováno) |
Příklad volání (raw data):
{ "username": "novak", "password": "heslo" }
Ú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\u00e1no chybn\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no \u010di 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.