Přihlášení a informace o uživateli - ceskaexpedice/kramerius GitHub Wiki

Přihlášení uživatele

Umožnuje přihlásit klienta

 GET  ~/search/api/client/v7.0/user/auth/login

Query parametry:

Parametr Význam Povinný
redirect_uri Redirekt URI po úspěšném přihlášení
type Typ přihlášení, nyní je podporované přihlášení přes federaci(eduid), formulář(form) nebo kombinované (all). Viz Issue 1066

Dotaz:

curl --location 'https://k7.inovatika.dev/search/api/client/v7.0/user/auth/login' 

Návratové kódy: 200

Odhlášení uživatele

Umožnuje odhlásit klienta z keycloaku i z jádra Krameria

 GET  ~/search/api/client/v7.0/user/auth/logout

Parametry dotazu:

Parametr Význam
redirect_uri Redirekt URI po úspěšném odhlášení

Dotaz:

curl --location 'https://k7.inovatika.dev/search/api/client/v7.0/user/auth/logout' 

Návratové kódy: 200

Získání tokenu

Umožňuje získat access token.

 GET  ~/search/api/client/v7.0/user/auth/token

Query parametry:

Parametr Význam Povinný
code Parametr pro získání tokenu
redirect_uri Redirekt URI po úspěšném odhlášení

Návratové kódy: 200

Informace o uživateli

Poskytne informaci o uživateli přihlášeném pomocí JWT token nebo nepřihlášeném. Umožňuje získat informace o:

  • uživateli
  • rolích, které má přidělené,
  • licencích, které může využívat při získávání dokumentů
  • chráněných atributech získaných z federace
  • chráněných akcích, které může použít
 GET ~/search/api/client/v7.0/user

Query parametry:

Parametr Význam Povinný
sessionAttributes true, false, missing - parametr určuje, zda má vracet informace o tokenu a atributech uživatele

Dotaz pro nepřihlášeného uživatele:

curl --location 'https://k7.inovatika.dev/search/api/client/v7.0/user' 

Odpověď:

{
  "uid": "not_logged",
  "authenticated": false,
  "licenses": [
  ],
  "session": {

  },
  "roles": [
    "common_users"
  ]
}

Dotaz pro přihlášeného uživatele:

curl --location 'https://k7.inovatika.dev/search/api/client/v7.0/user?sessionAttributes=true' \
--header 'Authorization: Bearer abcdefghijklmn....'

Odpověď:

{
    "uid": "[email protected]",
    "authenticated": true,
    "licenses": [
        "mzk_public-muo",
        "mzk_public-contract",
        "public",
        "dnnto"
    ],
    "session": {
        "eduPersonEntitlement": "urn:mace:dir:entitlement:common-lib-terms",
        "eduPersonScopedAffiliation": "[[email protected]]",
        "token_id": "xxxxxxx",
        "displayName": "Jan Jan",
        "expiration_time": "1724159862",
        "eduPersonPrincipalName": "[email protected]",
        "eduPersonUniqueId": "[email protected]",
        "expires_in": "10801",
        "preffered_user_name": "204f1520147d1ac0de3f78b0ac6c2f19bebcca65c6146548d7aa3216106051fb._6ad3c10d03e0fee55dc0f3c69414f0a3b342fd646d",
        "email": "[email protected]",
        "authentication_time": "1724149061"
    },
    "roles": [
        "common_users",
        "default-roles-kramerius",
        "dnnt_users",
        "offline_access",
        "uma_authorization"
    ],
    "name": "Jan Jan",
    "email": "[email protected]"
}

Klíče u výstupu mají následující význam:

Klíč Typ Popis
uid String Identifikátor uživatele
authenticated Boolean Indikátor, zda je uživatel autentizován
licenses Array Pole obsahující licence připojené k uživateli
session Object Objekt obsahující informace o sezení - atributy, expirace tokenu, čas autentizace, atd..
roles Array Pole obsahující role uživatele

Návratové kódy: 200

Informace o povolených akcích

Umožňuje získat informace o akcích na které má uživatel právo.

 GET  ~/search/api/client/v7.0/user/actions
Query parametry:
Parametr Význam Povinný
pid Identifikátor objektu. V přípdadě nezadání parametru se automaticky počítá s pidem uuid:1 - celý repozitář

Příklad výstupu:

{
    "actions": [
        "a_read",
        "a_pdf_read",
        "a_delete",
        "a_process_edit",
        "a_process_read",
        "a_owner_process_edit",
        "a_index",
        "a_rebuild_processing_index",
        "a_import",
        "a_set_accessibility",
        "a_statistics",
        "a_statistics_edit",
        "a_export_replications",
        "a_import_replications",
        "a_rights_edit",
        "a_criteria_read",
        "a_collections_read",
        "a_collections_edit",
        "a_able_tobe_part_of_collections",
        "a_generate_nkplogs",
        "a_roles_edit",
        "a_admin_read"
    ]
}

Návratové kódy: 200

⚠️ **GitHub.com Fallback** ⚠️