Autentizace

FlexiBee podporuje několik způsobů autentizace:

  • HTTP autentizace
  • JSON autentizace
  • SAMLv2
  • OpenID
  • Google

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í FlexiBee 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 FlexiBee 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)

Výsledek volání

Úspěšná autentizace

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

{
  "success": true,
  "authSessionId": "xx…x"
}

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

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

Pozor: U varianty v URL query budou autentizační údaje logovány na FlexiBee 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.

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."
  }
}

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.