Référence d’API utilisateur SCIM¶
Vous pouvez utiliser l’API utilisateur SCIM pour accéder, créer et modifier les données de l’utilisateur.
En-têtes HTTP¶
L’API SCIM Snowflake utilise des jetons porteurs pour l’authentification HTTP.
Chaque requête HTTP à l’API SCIM Snowflake autorise les en-têtes HTTP suivants :
| En-tête | Valeur | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
Attributs utilisateur¶
Vous pouvez spécifier les attributs de l’utilisateur dans le corps des requêtes d’API sous forme de paires clé-valeur au format JSON. Ces paires contiennent des informations sur l’utilisateur, telles que son nom d’affichage ou son adresse e-mail. Les fournisseurs d’identité peuvent spécifier leurs propres noms de clés pour chaque attribut. Par exemple, les fournisseurs d’identité peuvent utiliser la clé lastName, au lieu de familyName, pour représenter le nom de famille de l’utilisateur. Snowflake ne prend pas en charge les attributs utilisateur à valeurs multiples.
Important
Dans le tableau ci-dessous, les attributs userName et loginName font tous deux référence à l’attribut userName. Snowflake permet de spécifier des valeurs différentes pour les attributs userName et loginName.
Snowflake prend en charge les attributs suivants pour la gestion du cycle de vie des utilisateurs :
| Attribut utilisateur SCIM | Attribut utilisateur Snowflake | Type | Description | 
|---|---|---|---|
| 
 | 
 | string | Identificateur unique et immuable (GUID) de l’utilisateur dans Snowflake. Snowflake ne renvoie pas cette valeur dans la sortie DESCRIBE USER ou SHOW USERS. Pour les requêtes sur des points de terminaison qui requièrent cet attribut, tels que  | 
| 
 | 
 | string | Identificateur utilisé pour se connecter à Snowflake. Pour plus d’informations sur ces attributs, voir CREATE USER. | 
| 
 | 
 | string | Prénom de l’utilisateur. | 
| 
 | 
 | string | Nom de famille de l’utilisateur. | 
| 
 | 
 | string | Adresse e-mail de l’utilisateur. | 
| 
 | 
 | string | Texte affiché dans l’interface utilisateur lorsqu’il fait référence à l’utilisateur. | 
| 
 | N/A | string | Identificateur unique défini par le client de provisionnement (par exemple, Azure, Okta). | 
| 
 | 
 | string | Mot de passe de l’utilisateur. Cette valeur n’est pas renvoyée dans la réponse JSON. Si la propriété  | 
| 
 | 
 | booléen | Désactive l’utilisateur lorsqu’il est défini sur  | 
| 
 | N/A | string | Liste des groupes auxquels l’utilisateur appartient. Le groupe  Les groupes d’utilisateurs sont immuables et leur appartenance doit être mise à jour à l’aide d’API de groupes SCIM. | 
| 
 | 
 | string | Heure d’ajout de l’utilisateur à Snowflake. | 
| 
 | 
 | string | Heure de la dernière modification de l’utilisateur dans Snowflake. | 
| 
 | N/A | string | Type de ressource pour l’utilisateur. Vous devez utiliser  | 
| 
 | N/A | string | Un tableau de chaînes séparées par des virgules spécifiant les URIs d’espaces de noms. Snowflake prend en charge les valeurs suivantes : 
 | 
Attributs personnalisés¶
Vous pouvez définir des attributs personnalisés qui ne sont pas définis par RFC 7643, comme defaultRole.
Vous pouvez utiliser les espaces de noms suivants pour définir des attributs personnalisés lors des requêtes POST, PUT et PATCH :
- urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
- Cet espace de noms faisait partie de l’implémentation d’origine de SCIM dans Snowflake. Vous ne pouvez utiliser cet espace de noms que pour définir des attributs personnalisés dans des intégrations de sécurité SCIM Okta. - Vous ne pouvez pas utiliser cet espace de noms pour définir des attributs personnalisés dans des intégrations de sécurité SCIM Microsoft Azure ou des intégrations SCIM personnalisées. 
- urn:ietf:params:scim:schemas:extension:2.0:User
- Vous pouvez utiliser cet espace de noms pour définir des attributs personnalisés pour toutes les intégrations SCIM. Vous devez utiliser cet espace de noms pour définir des attributs personnalisés dans des intégrations de sécurité SCIM Microsoft Azure ou des intégrations de sécurité SCIM personnalisées. 
Snowflake prend en charge les attributs personnalisés suivants :
| Attribut utilisateur personnalisé SCIM | Attribut utilisateur Snowflake | Type | Description | 
|---|---|---|---|
| 
 | 
 | string | L’entrepôt virtuel qui est actif par défaut pour la session de l’utilisateur lors de la connexion. | 
| 
 | 
 | string | Rôle primaire qui est actif par défaut pour la session de l’utilisateur lors de la connexion. | 
| 
 | 
 | string | Liste des rôles secondaires qui sont actifs pour la session de l’utilisateur lors de la connexion. Vous pouvez définir cet attribut sur  | 
| 
 | 
 | string | Le type d’utilisateur. Par défaut :  | 
Notes sur l’utilisation de l’attribut TYPE¶
Cette liste décrit les effets de la définition de l’attribut TYPE dans les requêtes SCIM suivantes :
- Si vous envoyez une requête - POSTpour créer un utilisateur et si l’attribut- typen’est pas spécifié ou- NULL, la propriété- TYPEest définie sur- PERSON.
- Si vous envoyez une requête - PATCHavec une opération de remplacement qui spécifie l’attribut- typecomme- NULL, la propriété- TYPEne change pas.
- Si vous envoyez une requête - PUTavec une opération de remplacement et si l’attribut- typen’est pas spécifié ou- NULL, la propriété- TYPEest définie sur- PERSON.
- Si vous envoyez une requête - PATCHavec une opération de suppression qui désactive l’attribut- type, la propriété- TYPEne change pas.
Vérifier si un utilisateur existe¶
- Méthode et point de terminaison:
- GET /scim/v2/Users?filter=userName eq "{{user_name}}"
- Description:
- Renvoie des informations sur un utilisateur associé au paramètre de requête - userName.- Renvoie le code de statut de la réponse HTTP - 200si la requête HTTP a abouti.
Obtenir des informations sur un utilisateur¶
- Méthode et point de terminaison:
- GET /scim/v2/Users/{{user_id}}
- Description:
- Renvoie des informations sur un utilisateur associé au paramètre de chemin - user_id.- Renvoie le code de statut de la réponse HTTP - 200si la requête HTTP a abouti.
Créer un utilisateur¶
- Méthode et point de terminaison:
- POST /scim/v2/Users
- Description:
- Crée un utilisateur dans Snowflake. - Renvoie le code de statut de la réponse HTTP - 201si la requête HTTP a abouti.- Si l’utilisateur existe déjà ou si la requête HTTP a échoué pour une autre raison, Snowflake renvoie le code de statut de réponse HTTP - 409.
- Exemples:
- Créer un utilisateur avec - userNameet- loginNamemappés à la même valeur :- { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:2.0:User" ], "userName": "test_user_1", "password": "test", "name": { "givenName": "test", "familyName": "user" }, "emails": [ {"value": "test.user@snowflake.com"} ], "displayName": "test user", "active": true } - Créer un utilisateur avec - userNameet- loginNamemappés à des valeurs différentes.- Note - Si vous utilisez Okta comme fournisseur d’identité, suivez cette procédure. - { "active": true, "displayName": "test user", "emails": [ {"value": "test.user@snowflake.com"} ], "name": { "familyName": "test_last_name", "givenName": "test_first_name" }, "password": "test_password", "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ], "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "snowflakeUserName": "USER5" }, "userName": "USER5" } 
Remplacer les attributs de l’utilisateur¶
- Méthode et point de terminaison:
- PATCH /scim/v2/Users/{{id}}
- Description:
- Remplace les attributs de l’utilisateur associé au paramètre de chemin - id.- Vous devez définir - opsur- replacepour effectuer cette requête HTTP.- activeaccepte les valeurs suivantes :- false: désactive l’utilisateur.
- true: active l’utilisateur.
 - Renvoie le code de statut de la réponse HTTP - 200si la requête HTTP a été exécutée avec succès.- En cas d’échec, renvoie le code de réponse HTTP - 204.
- Exemples:
- Désactivez un utilisateur et mettez à jour son - givenNamesur- deactivated_user:- { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ {"op": "replace", "value": { "active": false }} {"op": "replace", "value": { "givenName": "deactivated_user" }} ], } - Mettez à jour un utilisateur avec - userNameet- loginNamemappés à la même valeur :- { "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"], "Operations": [ {"op": "replace", "value": { "active": false }} ] } - Mettre à jour un utilisateur avec - userNameet- loginNamemappés à des valeurs différentes.- Si Okta est votre fournisseur d’identité, suivez cette procédure. - { "Operations": [ { "op": "replace", "path": "userName", "value": "test_updated_name" }, { "op": "replace", "path": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.snowflakeUserName", "value": "USER5" } ], "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"] } 
Mettre à jour un utilisateur.¶
- Méthode et point de terminaison:
- PUT /scim/v2/Users/{{id}}
- Description:
- Met à jour les attributs de l’utilisateur associé au paramètre de chemin - id.- En cas d’échec, renvoie le code de réponse HTTP - 400. La requête HTTP n’aboutit pas si elle tente de modifier des attributs immuables ou si les attributs modifiés n’existent pas dans Snowflake.
- Exemples:
- Mettez à jour un utilisateur et ses attributs - "defaultRole",- "defaultSecondaryRoles", et- "defaultWarehouse".- Pour spécifier les attributs - "defaultRole",- "defaultSecondaryRoles", et- "defaultWarehouse", vous devez utiliser l’un des schémas- extension. L’attribut- defaultSecondaryRolesn’accepte que la valeur- "ALL".- Note - La méthode PUT est plus coûteuse que la méthode PATCH. Utilisez plutôt l’opération PATCH. - { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ], "userName": "test_user_1", "password": "test", "name": { "givenName": "test", "familyName": "user" }, "emails": [{ "primary": true, "value": "test.user@snowflake.com", "type": "work" } ], "displayName": "test user", "active": true, "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "defaultRole" : "test_role", "defaultSecondaryRoles" : "ALL", "defaultWarehouse" : "test_warehouse" } } 
Supprimer un utilisateur¶
- Méthode et point de terminaison:
- DELETE /scim/v2/Users/{{id}}
- Description:
- Supprime l’utilisateur associé au paramètre de chemin - id.