Přeskočit na hlavní obsah
Autentizace

ABRA Flexi podporuje několik způsobů autentizace

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než rokem
  • 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:

username

Uživatelské jméno

password

Uživatelské heslo

otp

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.

Dostali jste odpověď na svou otázku?