Přeskočit na hlavní obsah

Správa relací

Životní cyklus relace​

  1. Vytvoření: Relace je vytvořena při autentizaci uživatele
  2. Aktivita: Poslední aktivita je aktualizována při obnovení/použití tokenu
  3. Expirace: Relace vyprší po 14 dnech neaktivity
  4. Odvolání: Může být odvolána uživatelem, administrátorem nebo bezpečnostními událostmi

Vlastnosti relace​

VlastnostPopis
Session IDUnikátní identifikátor (GUID)
Název zařízeníUživatelsky přívětivý popis zařízení
Typ zařízeníMobile, Desktop, Tablet, Unknown
IP adresaAktuální IP adresa připojení
Client IDAplikace, která vytvořila relaci
VytvořenoKdy byla relace vytvořena
Poslední aktivitaPoslední použití/obnovení tokenu
VypršíČas expirace relace

Automatické odvolání relace​

Relace jsou automaticky odvolány při:

UdálostPopis
Odhlášení uživateleUživatelem iniciované odhlášení
Změna heslaUživatel změnil své heslo
Reset heslaReset hesla přes e-mail
Změna e-mailuUživatel změnil e-mailovou adresu
Povolení/zakázání 2FAZměna nastavení dvoufaktorové autentizace
Akce administrátoraAdministrátor odvolal relace
Expirace relaceTimeout kvůli neaktivitě
Bezpečnostní funkce

Při citlivých změnách účtu (heslo, e-mail, 2FA) jsou všechny relace uživatele odvolány z bezpečnostních důvodů.

Implementace odhlášení​

Frontend odhlašovací flow​

  1. Zavolejte logout endpoint
  2. Vymažte lokální tokeny
  3. Přesměrujte uživatele na odhlašovací stránku
# Přesměrování uživatele na logout endpoint
curl "https://your-sso-domain.com/connect/logout?\
id_token_hint=ID_TOKEN&\
post_logout_redirect_uri=https://yourapp.com/logged-out"

Backend odhlášení (zneplatnění tokenů)​

# Zneplatnění refresh tokenu
curl -X POST https://your-sso-domain.com/connect/revoke \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "token=REFRESH_TOKEN" \
-d "token_type_hint=refresh_token" \
-d "client_id=my-app" \
-d "client_secret=my-secret"

Session API​

Pro programovou (machine-to-machine) správu relací slouží následující endpointy. Vyžadují access token získaný přes client_credentials se scope api (uživatelské tokeny je volat nemohou). {guid} je GUID uživatele, {sessionId} je GUID relace.

OperaceEndpoint
Výpis relací uživateleGET /api/sessions/user/{guid}
Odvolání všech relací uživateleDELETE /api/sessions/user/{guid}
Odvolání konkrétní relaceDELETE /api/sessions/{sessionId}

Příklad – výpis relací uživatele:

curl https://your-sso-domain.com/api/sessions/user/USER_GUID \
-H "Authorization: Bearer M2M_ACCESS_TOKEN"

Příklad – odvolání konkrétní relace:

curl -X DELETE https://your-sso-domain.com/api/sessions/SESSION_ID \
-H "Authorization: Bearer M2M_ACCESS_TOKEN"