HTTP autentifikácia
JSON autentifikácia
SAMLv2*
OpenID*
* Podporované iba pri lokálnej inštalácii. Dostupnosť je obmedzená licenciou ABRA Flexi. Konfiguruje sa vo webovom rozhraní servera na adrese /admin/auth-settings.
HTTP autentifikácia
Jednoduchá HTTP autentifikácia je pôvodný spôsob overovania používateľov pri prihlasovaní do webového rozhrania ABRA Flexi WUI. Zároveň je to jedna z možností autentifikácie používateľov REST API. Stačí s každou HTTP požiadavkou posielať autentifikačnú hlavičku. Ak hlavičku neuvediete, dôjde k presmerovaniu na prihlasovací formulár, prípadne bude vrátený status 401 Authorization required (požiadavka na HTTP autentifikáciu).
Volania REST API sa snažíme detekovať a naďalej ponúkať HTTP autentifikáciu. Ak by detekcia zlyhala alebo bude potrebné riadiť spôsob autentifikácie, je možné využiť parameter ?auth=http (viď parametre URL).
Ukážka komunikácie s jednoduchou HTTP autentifikáciou pomocou prí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
Pre ukážku autentifikácie v PHP viď reálne príklady seriálu API.
Jednoduchú HTTP autentifikáciu možno zasielať aj priamo v URL adrese, ktorá môže vyzerať napríklad takto: "https://meno:heslo@adresa_servera:5434/c/firma/evidencia". Ako URL adresu zostaviť popisuje náš ďalší návod.
JSON autentifikácia (autentifikačná relácia)
Ak chcete overiť ABRA Flexi a využívať vytvorenú autentifikáciu aj pre ďalšie volania, použite API na získanie autentifikačného tokenu:
POST /login-logout/login.json
Pozn.: Metóda poskytuje výsledok iba vo formáte JSON, preto v dotaze správne špecifikujte požadovaný formát.
Volanie musí obsahovať raw data:
| Používateľské meno |
| Používateľské heslo |
| Jednorazové heslo (ak je vyžadované) |
Príklad volania (raw data):
{ "username": "novak", "password": "heslo"}
Úspešná autentifikácia
Výsledkom je príznak úspechu success=true a autentifikačný token authSessionId:
{ "success": true, "authSessionId": "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff"}Neúspešná autentifikácia
Neúspešnú autentifikáciu signalizuje príznak success=false s upresňujúcim popisom v reťazci errors.reason:
{ "success": false, "errors": { "reason": "Bylo zad\u00e1no chybn\u00e9 u\u017eivatelsk\u00e9 jm\u00e9no \u010di heslo." }}Možnosti využitia autentifikačného tokenu
Získanú autentifikáciu možno odovzdávať v dotazoch troma spôsobmi:
Cookie:
authSessionId: 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeffHTTP hlavička:
X-authSessionId: 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeffURL query
?authSessionId=00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff
Upozornenie: Pri variante v URL query budú autentifikačné údaje logované na serveri ABRA Flexi.
Aby ste udržali token platný, je potrebné udržiavať spojenie pomocou občasného volania GET /login-logout/session-keep-alive.js. My ho voláme každých 60 sekúnd, ale malo by stačiť aj raz za 30 minút.
Ak budete chcieť využiť refreshToken, je potrebné ho odoslať ako cookie requestom GET /login-logout/check, čím získate nové authSessionId.
Pomocou API je možné taktiež vykonávať odhlasovanie používateľov.
Umiestnenie prihlasovacieho formulára na svoje stránky
Ak potrebujete umiestniť prihlasovanie na svoje stránky, inšpirujte sa 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 tiež možné pridať parameter returnUrl a určiť adresu, na ktorú má byť používateľ presmerovaný. Ak používate OTP, je potrebné pridať ešte parameter otp. Pri použití SSO (OpenID alebo SAMLv2) nie je možné túto metódu použiť.
