Přihlášení a informace o uživateli - ceskaexpedice/kramerius GitHub Wiki
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
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
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
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
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