• 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.

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:

<?xml version="1.0"?>
<form action="https&gt;://demo.flexibee.eu:5434/login-logout/login.html" method="POST"> Jm&#xE9;no: <input type="text" name="username" value=""/><br/> Heslo: <input type="password" name="password"/><br/> <input type="submit" name="submit" value="P&#x159;ihl&#xE1;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ěď?