Format de l'utilisateur et du groupe

Dans le monde en évolution rapide de la gestion des identités en nuage, la spécification SCIM (System for Cross-domain Identity Management) offre un équilibre entre la simplicité des modèles d'utilisateurs et de groupes et la possibilité d'étendre le modèle en réponse aux besoins en constante évolution d'une organisation.

Format de l'utilisateur de l'annuaire Cloud

569

Cloud Directory adhère à la spécification API ouverte SCIM pour les modèles d'utilisateurs et de groupes. Prenons l'exemple d'un utilisateur. Voici un utilisateur de Cloud Directory au format JSON.

{
  "userName": "scimuser",
  "phoneNumbers": [
    {
      "type": "work",
      "value": "111-222-3333"
    }
  ],
  "addresses": [
    {
      "country": "US",
      "region": "Central",
      "formatted": "string",
      "streetAddress": "123 Beautiful Street, Austin, TX",
      "postalCode": "78758",
      "type": "work"
    }
  ],
  "name": {
    "givenName": "Scim",
    "familyName": "User",
    "formatted": "Scim User"
  },
  "urn:ietf:params:scim:schemas:extension:ibm:2.0:User": {
    "userCategory": "regular",
    "realm": "cloudIdentityRealm",
    "twoFactorAuthentication": false,
    "pwdChangedTime": "2021-01-19T05:17:15Z",
    "pwdReset": true,,
    "customAttributes": [
      {
        "values": [
          "My car 1",
          "My car 2"
        ],
        "name": "cars"
      }
    ],
  },  
  "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
    "department": "Marketing-NA",
    "employeeNumber": "12345",
    "manager": {
      "displayName": "User Manager",
      "value": "604000CKMZ",
      "$ref": "https://tenant.verify.ibm.com/v2.0/Users/604000CKMZ"
    }
  },
  "id": "603000ABCD",
  "meta": {
    "resourceType": "User",
    "lastModified": "2021-01-19T05:17:15Z",
    "location": "https://tenant.verify.ibm.com/v2.0/Users/603000ABCD",
    "created": "2021-01-19T05:17:15Z"
  },
  "externalId": "01234567",
  "active": true,
  "emails": [
    {
      "type": "work",
      "value": "[email protected]"
    }
  ],
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User",
    "urn:ietf:params:scim:schemas:extension:ibm:2.0:User"
  ]
}

Tout est une paire name: value. Il existe différents types de valeurs :

  • Chaînes
  • Valeurs booléennes
  • tableaux
  • (qui, à leur tour, contiennent davantage de paires nom-valeur).

Par exemple : userName et id sont des chaînes de caractères, tandis que meta est un dictionnaire.

Certains attributs sont obligatoires, par exemple : userName et id sont obligatoires, tandis que addresses ne l'est pas. Cloud Directory attribue le site id au moment de la création de l'utilisateur.

Schémas

Dans l'exemple ci-dessus, trois schémas sont indiqués dans l'attribut schemas.

SchémaDescription
urn:ietf:params:scim:schemas:core:2.0:UserLe schéma requis par défaut de la spécification SCIM
urn:ietf:params:scim:schemas:extension:ibm:2.0:UserUne extension du schéma du modèle SCIM.
urn:ietf:params:scim:schemas:extension:enterprise:2.0:UserUne autre extension du schéma du modèle SCIM.

Le schéma étendu urn:ietf:params:scim:schemas:extension:ibm:2.0:User énumère ces attributs parmi d'autres.

  • userCategory
  • domaine
  • twoFactorAuthentication
  • customAttributes

Le schéma étendu urn:ietf:params:scim:schemas:extension:enterprise:2.0:User dresse la liste de ces attributs.

  • department
  • gestionnaire
  • employeeNumber

Deux types

Il existe deux types d'utilisateurs de Cloud Directory.

Attributs personnalisés

Les administrateurs peuvent créer leurs propres attributs personnalisés (jusqu'à 150) qui étendent le modèle de l'utilisateur et augmentent considérablement la flexibilité w.r.t les différents types de métadonnées associées à l'enregistrement de l'utilisateur. L'exemple ci-dessus présente deux attributs personnalisés. Remarquez le site customAttributes dans la section "extended schema".

Attribut personnaliséTypeValeur
voitureà valeur uniqueChauve-souris mobile
animaux domestiquesmultiformeScooby-Doo et Buddy

Format des groupes de l'annuaire Cloud

Voici un groupe de Cloud Directory au format JSON.

{
  "displayName": "Scim Group",
  "id": "603000EFGH",
  "meta": {
    "resourceType": "Group",
    "lastModified": "2021-01-19T06:16:21Z",
    "location": "https://tenant.verify.ibm.com/v2.0/Groups/603000EFGH",
    "created": "2021-01-19T06:16:21Z"
  },
  "members": [
    {
      "type": "user",
      "value": "603000ABCD"
    },
    {
      "type": "user",
      "value": "603000ABCE"
    }
  ],
  "urn:ietf:params:scim:schemas:extension:ibm:2.0:Group": {
    "groupType": "standard",
    "totalMembers": 2
  },
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:Group",
    "urn:ietf:params:scim:schemas:extension:ibm:2.0:Group"
  ]
}

Le groupe suit le même schéma que le modèle d'utilisateur. Le groupe ci-dessus a 2 membres et est de type standard. Un groupe peut également être de type reserved.
Aucun attribut personnalisé n'est associé aux groupes.

Consultez le site Système de gestion des identités interdomaines (SCIM) pour plus d'informations sur la manière dont le SCIM est géré dans les différentes applications.

💎

Anil Levi, IBM Security