Co je to SCIM?
SCIM – System for Cross-domain Identity Management – je sada specifikací navržena tak, aby usnadnila správu uživatelských identit v aplikacích a službách i mezi Identity Managery.
Potřebujete předávat identity (účty, skupiny, role a práva) mezi aplikacemi? Pak hledejte SCIM protokol, který se pomalu stává standardem hlavně mezi cloud aplikacemi.
SCIM specifikace navazuje na zkušenosti s existujícími schématy a nasazením. Je kladen důraz na jednoduchost vývoje a integrace při současném použití stávajících autentizačních, autorizačních modelů. Záměrem je snížit náklady a složitost operací správy uživatelů tím, že poskytne společné uživatelské schéma a model rozšíření, vzory pro výměnu tohoto schématu pomocí standardních protokolů. Ve stručnosti: urychlete, levně a snadno přesuňte uživatele do i z aplikace.
SCIM 2 je otevřené API, založené na RESTu. Slouží pro správu identit, definováním schématu pro reprezentaci uživatelů a skupin pro všechny potřebné operace CRUD (Create, Read, Update, Delete).
Detailnější popis SCIM 2.0 s příkladem
SCIM 2.0 je postaven na objektovém modelu zdrojů “Resource”. Tento model lze dále jednoduše rozšiřovat.
SCIM nabízí prostřednictvím REST API balík operací, které umožňují práci se zdroji od jednoduchého parametru u uživatele až po podporu masivních operací.
- Create: POST https://example.com/{v}/{resource}
- Read: GET https://example.com/{v}/{resource}/{id}
- Replace: PUT https://example.com/{v}/{resource}/{id}
- Delete: DELETE https://example.com/{v}/{resource}/{id}
- Update: PATCH https://example.com/{v}/{resource}/{id}
- Search: GET https://example.com/{v}/{resource}?filter={attribute}{op}{value}&sortBy={attributeName}&sortOrder={ascending|descending}
- Bulk: POST https://example.com/{v}/Bulk
Příklad vytvoření uživatele a přiřazení práv
Příklad je postaven na CzechIdM 8.1. a vyšším. (CzechIdM download a instalační manuál) CzechIdM pracuje s rozšířeným SCIM modelem o úvazky (contract). V příkladu jednoduše předvedeme vytvoření účtu, který bude mít práva na vytváření a čtení reportů. Pro komunikaci využíváme práva uživatele admin:admin, přihlášení je předáváno Basic autentizací.
Vytvoření uživatele:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' -d '{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "userName": "novakjan" }' 'http://localhost:8080/idm/api/v1/scim/Users'
Vyhledání úvazku u uživatele:
curl -X GET --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' 'http://localhost:8080/idm/api/v1/scim/Users/novakjan/Contracts'
Vytvoření nového pracovního úvazku (Contract):
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' -d '{ "schemas": [ "urn:ietf:params:scim:schemas:CzechIdM:8.1:Contract" ], "user": "novakjan", "position": "Hlavni" }' 'http://localhost:8080/idm/api/v1/scim/Contracts'
Vytvoření a přiřazení role na úvazek:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' -d '{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "displayName": "prvniRole", "members": [{ "$ref": "/Users/novakjan/Contracts/5ea857ff-2ec1-4c29-813b-c0d37fc23065" } ] }' 'http://localhost:8080/idm/api/v1/scim/Groups'
Použité zdroje:
Další články o IdM:
- Co je to Identity Management?
- Jak naplánovat a úspěšně migrovat IdM?
- Jak se zbavit rutinních úkolů při správě IT systému automatizací Identity Managementu
- Jak vybrat IdM.
- Jak identifikovat nadřízeného z personalistiky pomocí Identity Manageru?
- Jak zabránit vendor lock-in u Identity Managementu?
- Modely spolupráce s dodavatelem IDM.