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:

  1. Specifikace SCIM
  2. Dokumentace CzechIdM SCIM modul
  3. CzechIdM GIT download
  4. CzechIdM instalační manuál

Další články o IdM:

  1. Jak naplánovat a úspěšně migrovat IdM?
  2. Jak se zbavit rutinních úkolů při správě IT systému automatizací Identity Managementu
  3. Jak vybrat IdM.
  4. Jak identifikovat nadřízeného z personalistiky pomocí Identity Manageru?
  5. Jak zabránit vendor lock-in u Identity Managementu?

About Lukáš Cirkva

CEO, Identity Management consultant with 10+ years of experience. I have also played a leadership role in the development of our company's own SW tool - CzechIdM. We also service our delivered solutions. Please see www.CzechIdM.com and linkedin for more info: www.linkedin.com/in/lukascirkva/

Leave a Reply

Your email address will not be published. Required fields are marked *