SCIM2Client - Dans le champ d’application
L’API SCIM2Client fournit des méthodes qui appellent le fournisseur SCIM (System for Cross-domain Identity Management) (rôle serveur) pour créer, mettre à jour ou supprimer des données dans un fournisseur de service (SP).
SCIM est un protocole basé sur REST et JSON qui définit un rôle client et serveur. Un client est généralement un fournisseur d’identité (IdP), tel que Okta, qui contient un répertoire robuste d’identités d’utilisateurs. Un SP est généralement une SaaS application, telle que Box OR Slack, qui a besoin d’un sous-ensemble d’informations provenant de ces identités. Lorsque des changements sont apportés aux identités dans l’IDP, y compris la création, la mise à jour et la suppression, ils sont automatiquement synchronisés avec le SP conformément au protocole SCIM.
L’image suivante illustre les flux d’appels d’API classiques pour la manipulation des données des fournisseurs de services.
Cette API s’exécute dans l’espace de noms sn_auth et nécessite l’installation du module d’extension SCIM v2 - Client de gestion des identités interdomaines ServiceNow (com.snc.integration.scim2.client) pour accéder à l’API.
Vous pouvez localiser les résultats de chaque appel de méthode SCIM dans la table Journaux clients SCIM [sys_scim_client_logs].
Pour plus d’informations sur SCIM, voir Système de gestion des identités interdomaines (SCIM).
SCIM2Client : executeDelete (fournisseur de chaîne, chaîne resourceName, chaîne providerResourceId)
Supprime une ressource spécifiée du système d’un fournisseur de service externe.
| Nom | Type | Description |
|---|---|---|
| fournisseur | Chaîne | Requis. Nom du fournisseur de service SCIM configuré. Le nom du fournisseur de service est défini dans le champ Nom de la table Fournisseur SCIM [sys_scim_provider]. |
| resourceName | Chaîne | Requis. Nom du type de ressource, par exemple Utilisateur ou Groupe. Table : dans le champ resource_name de la table Mappage des ressources de fournisseur SCIM [sys_scim_provider_resource_mapping]. |
| providerResourceId | Chaîne | Requis. Identificateur unique de la ressource associée sur le système du fournisseur de service externe. |
| Type | Description |
|---|---|
| message | Si la status valeur est RÉUSSI, le point de terminaison renvoie le corps de la réponse tel que défini par l’API SCIM REST. Type de données : chaîne |
| état | État de la demande. Valeurs possibles :
Type de données : chaîne |
L’exemple suivant montre comment supprimer une ressource utilisateur dans le système SNOW Provider.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.executeDelete('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
Sortie :
// Example of a successful response
{
"status":"SUCCESS",
"message":null
}
// Example of a failed response
{
"status":"FAILURE",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:api:messages:2.0:Error\"
],
\"status\":\"404\",
\"detail\":\"Invalid user id 3985e598876989103fa711f83cbb35ae1\"
}"
}
SCIM2Client : executeGet (fournisseur de chaînes, chaîne resourceName, chaîne queryParams)
Renvoie toutes les ressources d’un système de fournisseur externe spécifié qui correspondent aux critères réussis.
Ces informations sont utilisées pour appeler l’API du fournisseur de service SCIM correspondant.
| Nom | Type | Description |
|---|---|---|
| fournisseur | Chaîne | Requis. Nom du fournisseur de service SCIM configuré. Le nom du fournisseur de service est défini dans le champ Nom de la table Fournisseur SCIM [sys_scim_provider]. |
| resourceName | Chaîne | Requis. Nom du type de ressource, par exemple Utilisateur ou Groupe. Table : dans le champ resource_name de la table Mappage des ressources de fournisseur SCIM [sys_scim_provider_resource_mapping]. |
| queryParams | Chaîne | Requis. Paramètres de requête conformes SCIM transmis au point de terminaison externe du fournisseur de service SCIM. Pour plus d’informations sur les paramètres de requête disponibles et leur format associé, reportez-vous aux sections suivantes du document de l’Internet Engineering Task Force : Système de gestion des identités inter-domaines : Protocole |
| Type | Description |
|---|---|
| message | Si la status valeur est RÉUSSI, le point de terminaison renvoie le corps de la réponse tel que défini par l’API SCIM REST. Type de données : chaîne |
| état | État de la demande. Valeurs possibles :
Type de données : chaîne |
L’exemple suivant montre comment récupérer tous les utilisateurs disponibles à partir du fournisseur de services de test de neige dont l’e-mail professionnel contient lucius.bagnoli.
var scimClient = new sn_auth.SCIM2Client();
var queryParams = {};
queryParams['filter'] = 'emails[type eq \"work\" and value co \"lucius.bagnoli\"]';
var response = scimClient.executeGet('SCIM Provider Demo','User', queryParams);
gs.info('response for get with filter: ' + response);
Réponse :
//Example of a successful response
{
"status":"SUCCESS",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:api:messages:2.0:ListResponse\"
],
\"totalResults\":647,
\"Resources\":[
{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"005d500b536073005e0addeeff7b12f4\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2019-04-05T21:09:12Z\",
\"lastModified\":\"2021-10-10T19:38:36Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/005d500b536073005e0addeeff7b12f4\"
},
\"userName\":\"survey.user\",
\"name\":{
\"familyName\":\"user\",
\"givenName\":\"survey\"
},
\"displayName\":\"survey user\",
\"active\":true,
\"emails\":[
{
\"value\":\"survey.user@email.com\",
\"type\":\"work\"
}
]
},
{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"02826bf03710200044e0bfc8bcbe5d3f\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2012-02-18T03:04:49Z\",
\"lastModified\":\"2021-10-10T19:38:36Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/02826bf03710200044e0bfc8bcbe5d3f\"
},
\"userName\":\"lucius.bagnoli\",
\"name\":{
\"familyName\":\"Bagnoli\",
\"givenName\":\"Lucius\"
},
\"displayName\":\"Lucius Bagnoli\",
\"active\":true,
\"emails\":[
{
\"value\":\"lucius.bagnoli@example.com\",
\"type\":\"work\"
}
],
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\":{
\"gender\":\"Male\",
\"costCenter\":{
\"value\":\"91e8bbf43710200044e0bfc8bcbe5daa\",
\"name\":\"Customer Support\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/CostCenters/91e8bbf43710200044e0bfc8bcbe5daa\"
},
\"company\":{
\"value\":\"81fd65ecac1d55eb42a426568fc87a63\",
\"name\":\"ACME Japan\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Companies/81fd65ecac1d55eb42a426568fc87a63\"
},
\"department\":{
\"value\":\"5d7f17f03710200044e0bfc8bcbe5d43\",
\"name\":\"Customer Support\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Departments/5d7f17f03710200044e0bfc8bcbe5d43\"
},
\"manager\":{
\"value\":\"02826bf03710200044e0bfc8bcbe5d88\",
\"displayName\":\"Billie Cowley\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Users/02826bf03710200044e0bfc8bcbe5d88\"
},
\"location\":{
\"value\":\"0002c0a93790200044e0bfc8bcbe5df5\",
\"name\":\"2-10-1 Yurakucho, Chiyoda-ku, Tokyo\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Locations/0002c0a93790200044e0bfc8bcbe5df5\"
}
}
}
],
\"startIndex\":1,
\"itemsPerPage\":2}"}
// Example of a failure response
{
"status":"FAILURE",
"message":"SCIM Provider rest message is not configured properly"
}
SCIM2Client : executeGetById (fournisseur de chaîne, chaîne resourceName, chaîne providerResourceId, map<string, string> queryParams)
Renvoie une ressource du système fournisseur externe avec l’ID de ressource unique spécifié.
Ces informations sont utilisées pour appeler l’API du fournisseur de service SCIM correspondant.
| Nom | Type | Description |
|---|---|---|
| fournisseur | Chaîne | Requis. Nom du fournisseur de service SCIM configuré. Le nom du fournisseur de service est défini dans le champ Nom de la table Fournisseur SCIM [sys_scim_provider]. |
| providerResourceId | Chaîne | Requis. Identificateur unique de la ressource associée sur le système du fournisseur de service externe. |
| queryParams | Chaîne | Requis. Paramètres de requête conformes SCIM transmis au point de terminaison externe du fournisseur de service SCIM. Pour plus d’informations sur les paramètres de requête disponibles et leur format associé, reportez-vous aux sections suivantes du document de l’Internet Engineering Task Force : Système de gestion des identités inter-domaines : Protocole |
| Type | Description |
|---|---|
| message | Si la status valeur est RÉUSSI, le point de terminaison renvoie le corps de la réponse tel que défini par l’API SCIM REST. Type de données : chaîne |
| état | État de la demande. Valeurs possibles :
Type de données : chaîne |
Cet exemple montre comment obtenir la ressource spécifiée à partir du système fournisseur externe « snow test ».
var scimClient = new sn_auth.SCIM2Client();
var queryParams = {};
var response = scimClient.executeGetById('snow test','User', 'f282abf03710200044e0bfc8bcbe5d12', queryParams);
gs.info('response for simple getById: ' + response);
Sortie :
// Example of a successful response
{
"status":"SUCCESS",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"f282abf03710200044e0bfc8bcbe5d12\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2012-02-18T03:04:53Z\",
\"lastModified\":\"2021-10-10T19:38:37Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/f282abf03710200044e0bfc8bcbe5d12\"
},
\"userName\":\"tia.neumaier\",
\"name\":{
\"givenName\":\"Tia\"
},
\"displayName\":\"Tia Neumaier\",
\"active\":true,
\"emails\":[
{
\"value\":\"tia.neumaier@example.com\",
\"type\":\"work\"
}
],
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\":{
\"costCenter\":{
\"value\":\"7fb1cc99c0a80a6d30c04574d14c0acf\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/CostCenters/7fb1cc99c0a80a6d30c04574d14c0acf\"
},
\"company\":{
\"value\":\"227cdfb03710200044e0bfc8bcbe5d6b\",
\"name\":\"ACME South America\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Companies/227cdfb03710200044e0bfc8bcbe5d6b\"
},
\"department\":{
\"value\":\"221db0edc611228401760aec06c9d929\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Departments/221db0edc611228401760aec06c9d929\"
},
\"location\":{
\"value\":\"25b4c23b0a0a0bb30054836629537509\",
\"name\":\"Carretera Cancun-Chetumal KM 22, Cancun\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Locations/25b4c23b0a0a0bb30054836629537509\"
}
}
}"
}
// Example of a failed response
{
"status":"FAILURE",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:api:messages:2.0:Error\"
],
\"status\":\"404\",
\"detail\":\"User not found f282abf03710200044e0bfc8bcbe5d121\"
}"
}
SCIM2Client : mise en service (fournisseur de chaînes, chaîne resourceName, chaîne resourceId)
Crée ou met à jour une ressource dans un système de fournisseur de service externe pour un sys_id spécifié.
Par exemple, si vous créez ou mettez à jour un utilisateur dans une ServiceNow instance, vous pouvez utiliser cette méthode pour créer ou mettre à jour la même ressource sur un système de fournisseur de service externe. Seuls les champs mappés dans la table Mappage des ressources de fournisseur SCIM [sys_scim_provider_resource_mapping ] peuvent être créés ou mis à jour dans la ressource correspondante.
Pour plus d’informations sur le mappage des ressources de fournisseur, consultez Créer un mappage des ressources de fournisseur SCIM.
| Nom | Type | Description |
|---|---|---|
| fournisseur | Chaîne | Requis. Nom du fournisseur de service SCIM configuré. Le nom du fournisseur de service est défini dans le champ Nom de la table Fournisseur SCIM [sys_scim_provider]. |
| resourceName | Chaîne | Requis. Nom du type de ressource, par exemple Utilisateur ou Groupe. Table : dans le champ resource_name de la table Mappage des ressources de fournisseur SCIM [sys_scim_provider_resource_mapping]. |
| resourceId | Chaîne | Requis. Sys_id de la ressource enregistrée dans l’instance ServiceNow (le client). Table : dans le champ primary_table de la table Mappage des ressources de fournisseur SCIM [sys_scim_provider_resource_mapping]. |
| Type | Description |
|---|---|
| message | Si la status valeur est RÉUSSI, le point de terminaison renvoie le corps de la réponse tel que défini par l’API SCIM REST. Type de données : chaîne |
| état | État de la demande. Valeurs possibles :
Type de données : chaîne |
L’exemple suivant montre comment mettre en service un utilisateur sur le fournisseur Snow.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.provision('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
Sortie :
// Example of successful response
{
"status":"SUCCESS",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"f282abf03710200044e0bfc8bcbe5d12\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2012-02-18T03:04:53Z\",
\"lastModified\":\"2021-10-10T19:38:37Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/f282abf03710200044e0bfc8bcbe5d12\"
},
\"userName\":\"tia.neumaier\",
\"name\":{
\"familyName\":\"Neumaier\",
\"givenName\":\"Tia\"
},
\"displayName\":\"Tia Neumaier\",
\"active\":true,
\"emails\":[
{
\"value\":\"tia.neumaier@example.com\",
\"type\":\"work\"
}
],
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\":{
\"gender\":\"Female\",
\"costCenter\":{
\"value\":\"7fb1cc99c0a80a6d30c04574d14c0acf\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/CostCenters/7fb1cc99c0a80a6d30c04574d14c0acf\"
},
\"company\":{
\"value\":\"227cdfb03710200044e0bfc8bcbe5d6b\",
\"name\":\"ACME South America\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Companies/227cdfb03710200044e0bfc8bcbe5d6b\"
},
\"department\":{
\"value\":\"221db0edc611228401760aec06c9d929\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Departments/221db0edc611228401760aec06c9d929\"
},
\"location\":{
\"value\":\"25b4c23b0a0a0bb30054836629537509\",
\"name\":\"Carretera Cancun-Chetumal KM 22, Cancun\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Locations/25b4c23b0a0a0bb30054836629537509\"
}
}
}"
}
// Example of failure response
{
"status":"FAILURE",
"message":"SCIM client attribute or provider resource mapping is not configured properly ,
No provider resource mapping id found for provider name: SNOW Provider and resource name: User"
}
SCIM2Client : provisionNew (fournisseur de chaînes, chaîne resourceName, chaîne resourceId)
Crée une nouvelle ressource dans un système de fournisseur de service externe pour une sys_id spécifiée.
Par exemple, si vous créez un nouvel utilisateur dans une ServiceNow instance, vous pouvez utiliser cette méthode pour créer la même ressource sur un système de fournisseur de service externe. Seuls les champs mappés dans la table Mappage des ressources de fournisseur SCIM [sys_scim_provider_resource_mapping] peuvent être créés dans le système du fournisseur de service externe correspondant. Si la ressource est déjà présente dans le système du fournisseur de service externe, une réponse d’erreur est renvoyée.
Pour plus d’informations sur le mappage des ressources de fournisseur, consultez Créer un mappage des ressources de fournisseur SCIM.
| Nom | Type | Description |
|---|---|---|
| fournisseur | Chaîne | Requis. Nom du fournisseur de service SCIM configuré. Le nom du fournisseur de service est défini dans le champ Nom de la table Fournisseur SCIM [sys_scim_provider]. |
| resourceName | Chaîne | Requis. Nom du type de ressource, par exemple Utilisateur ou Groupe. Table : dans le champ resource_name de la table Mappage des ressources de fournisseur SCIM [sys_scim_provider_resource_mapping]. |
| resourceId | Chaîne | Requis. Sys_id de la ressource enregistrée dans l’instance ServiceNow (le client). Table : dans le champ primary_table de la table Mappage des ressources de fournisseur SCIM [sys_scim_provider_resource_mapping]. |
| Type | Description |
|---|---|
| message | Si la status valeur est RÉUSSI, le point de terminaison renvoie le corps de la réponse tel que défini par l’API SCIM REST. Type de données : chaîne |
| état | État de la demande. Valeurs possibles :
Type de données : chaîne |
L’exemple suivant montre comment créer un nouvel utilisateur dans le fournisseur de service externe SNOW Provider.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.provisionNew('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
Sortie :
// Example of successful response
{
"status":"SUCCESS",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"f282abf03710200044e0bfc8bcbe5d12\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2012-02-18T03:04:53Z\",
\"lastModified\":\"2021-10-10T19:38:37Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/f282abf03710200044e0bfc8bcbe5d12\"
},
\"userName\":\"tia.neumaier\",
\"name\":{
\"familyName\":\"Neumaier\",
\"givenName\":\"Tia\"
},
\"displayName\":\"Tia Neumaier\",
\"active\":true,
\"emails\":[
{
\"value\":\"tia.neumaier@example.com\",
\"type\":\"work\"
}
],
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\":{
\"gender\":\"Female\",
\"costCenter\":{
\"value\":\"7fb1cc99c0a80a6d30c04574d14c0acf\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/CostCenters/7fb1cc99c0a80a6d30c04574d14c0acf\"
},
\"company\":{
\"value\":\"227cdfb03710200044e0bfc8bcbe5d6b\",
\"name\":\"ACME South America\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Companies/227cdfb03710200044e0bfc8bcbe5d6b\"
},
\"department\":{
\"value\":\"221db0edc611228401760aec06c9d929\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Departments/221db0edc611228401760aec06c9d929\"
},
\"location\":{
\"value\":\"25b4c23b0a0a0bb30054836629537509\",
\"name\":\"Carretera Cancun-Chetumal KM 22, Cancun\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Locations/25b4c23b0a0a0bb30054836629537509\"
}
}
}"
}
// Example of failure response
{
"status":"FAILURE",
"message":"SCIM client attribute or provider resource mapping is not configured properly ,
No provider resource mapping id found for provider name: SNOW Provider and resource name: User"
}