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:UserCet 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:UserVous 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’attributtypen’est pas spécifié ouNULL, la propriétéTYPEest définie surPERSON.Si vous envoyez une requête
PATCHavec une opération de remplacement qui spécifie l’attributtypecommeNULL, la propriétéTYPEne change pas.Si vous envoyez une requête
PUTavec une opération de remplacement et si l’attributtypen’est pas spécifié ouNULL, la propriétéTYPEest définie surPERSON.Si vous envoyez une requête
PATCHavec une opération de suppression qui désactive l’attributtype, 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
userNameetloginNamemappé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
userNameetloginNamemappé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
opsurreplacepour 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
givenNamesurdeactivated_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
userNameetloginNamemappé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
userNameetloginNamemappé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émasextension. L’attributdefaultSecondaryRolesn’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.