SCIM2Client – Umfang
Die SCIM2Client Die API stellt Methoden bereit, die den SCIM-Anbieter (System for Domain Identity Management) (Serverrolle) aufrufen, um Daten in einem Service Provider (SP) zu erstellen, zu aktualisieren oder zu löschen.
SCIM ist ein REST- und JSON-basiertes Protokoll, das eine Client- und Serverrolle definiert. Ein Client ist normalerweise ein Identitätsanbieter (Identity Provider, IDP), z. B. Okta, Das ein robustes Verzeichnis von Anwenderidentitäten enthält. Ein SP ist normalerweise ein SaaS Anwendung, z. B. Box Oder Slack, Der eine Teilmenge von Informationen aus diesen Identitäten benötigt. Wenn Änderungen an Identitäten im IDP vorgenommen werden, einschließlich Erstellen, Aktualisieren und Löschen, werden sie gemäß dem SCIM-Protokoll automatisch mit dem SP synchronisiert.
Die folgende Abbildung zeigt typische API-Aufruf-Flows zum Bearbeiten von Service Provider-Daten.
Diese API wird in ausgeführt sn_auth Namespace und erfordert die Installation des Plugins SCIM v2 – ServiceNow Cross-Domain Identity Management Client (com.snc.integration.scim2.client), um auf die API zuzugreifen.
Sie können die Ergebnisse jedes SCIM-Methodenaufrufs in der Tabelle „SCIM-Clientprotokolle“ [sys_scim_Client_logs] suchen.
Weitere Informationen zu SCIM finden Sie unter System für domänenübergreifendes Identitätsmanagement (SCIM) .
SCIM2Client – executeDelete (Zeichenfolgenanbieter, Zeichenfolge ResourceName, Zeichenfolge providerResourceId)
Löscht eine angegebene Ressource aus einem externen Service Provider-System.
| Name | Typ | Beschreibung |
|---|---|---|
| Anbieter | Zeichenfolge | Erforderlich. Name des konfigurierten SCIM-Service Providers. Der Name des Service Providers wird im Namensfeld der Tabelle „SCIM-Anbieter“ [sys_scim_Provider] definiert. |
| resourceName | Zeichenfolge | Erforderlich. Name des Ressourcentyps, z. B. Anwender oder Gruppe. Tabelle: Im Feld resource_Name der Tabelle „SCIM-Provider-Ressourcenzuordnung“ [sys_scim_Provider_resource_Mapping]. |
| ProviderResourceId | Zeichenfolge | Erforderlich. Eindeutiger Bezeichner der zugeordneten Ressource im externen Service Provider-System. |
| Typ | Beschreibung |
|---|---|
| Nachricht | Wenn statusIst ERFOLG, gibt der Endpunkt den Antworttext zurück, wie vom REST definiert SCIM API. Datentyp: Zeichenfolge |
| status | Status der Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
Das folgende Beispiel zeigt, wie eine Anwenderressource im SNOW Provider-System gelöscht wird.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.executeDelete('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
Ausgabe:
// 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 (Zeichenfolgenanbieter, Zeichenfolge ResourceName, Zeichenfolge queryParams)
Gibt alle Ressourcen aus einem angegebenen externen Anbietersystem zurück, die den übergebenen Kriterien entsprechen.
Diese Informationen werden verwendet, um die entsprechende SCIM-Service Provider-API aufzurufen.
| Name | Typ | Beschreibung |
|---|---|---|
| Anbieter | Zeichenfolge | Erforderlich. Name des konfigurierten SCIM-Service Providers. Der Name des Service Providers wird im Namensfeld der Tabelle „SCIM-Anbieter“ [sys_scim_Provider] definiert. |
| resourceName | Zeichenfolge | Erforderlich. Name des Ressourcentyps, z. B. Anwender oder Gruppe. Tabelle: Im Feld resource_Name der Tabelle „SCIM-Provider-Ressourcenzuordnung“ [sys_scim_Provider_resource_Mapping]. |
| queryParams | Zeichenfolge | Erforderlich. SCIM-konforme Abfrageparameter, die an den externen SCIM-Service Provider-Endpunkt übergeben werden. Weitere Informationen zu den verfügbaren Abfrageparametern und dem zugehörigen Format finden Sie in den folgenden Abschnitten im Internet Engineering Task Force-Dokument: System für domänenübergreifendes Identitätsmanagement: Protokoll |
| Typ | Beschreibung |
|---|---|
| Nachricht | Wenn statusIst ERFOLG, gibt der Endpunkt den Antworttext zurück, wie vom REST definiert SCIM API. Datentyp: Zeichenfolge |
| status | Status der Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
Das folgende Beispiel zeigt, wie alle verfügbaren Anwender vom Schneetest-Service Provider abgerufen werden, dessen Arbeits-E-Mail lucius.bagnoli enthält.
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);
Antwort:
//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 (Zeichenfolgenanbieter, Zeichenfolge ResourceName, Zeichenfolge providerResourceId, <String, String> zuordnen QueryParams)
Gibt eine Ressource aus dem externen Anbietersystem mit der angegebenen eindeutigen Ressourcen-ID zurück.
Diese Informationen werden verwendet, um die entsprechende SCIM-Service Provider-API aufzurufen.
| Name | Typ | Beschreibung |
|---|---|---|
| Anbieter | Zeichenfolge | Erforderlich. Name des konfigurierten SCIM-Service Providers. Der Name des Service Providers wird im Namensfeld der Tabelle „SCIM-Anbieter“ [sys_scim_Provider] definiert. |
| ProviderResourceId | Zeichenfolge | Erforderlich. Eindeutiger Bezeichner der zugeordneten Ressource im externen Service Provider-System. |
| queryParams | Zeichenfolge | Erforderlich. SCIM-konforme Abfrageparameter, die an den externen SCIM-Service Provider-Endpunkt übergeben werden. Weitere Informationen zu den verfügbaren Abfrageparametern und dem zugehörigen Format finden Sie in den folgenden Abschnitten im Internet Engineering Task Force-Dokument: System für domänenübergreifendes Identitätsmanagement: Protokoll |
| Typ | Beschreibung |
|---|---|
| Nachricht | Wenn statusIst ERFOLG, gibt der Endpunkt den Antworttext zurück, wie vom REST definiert SCIM API. Datentyp: Zeichenfolge |
| status | Status der Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
Dieses Beispiel zeigt, wie die angegebene Ressource vom externen Anbietersystem „Schneetest“ abgerufen wird.
var scimClient = new sn_auth.SCIM2Client();
var queryParams = {};
var response = scimClient.executeGetById('snow test','User', 'f282abf03710200044e0bfc8bcbe5d12', queryParams);
gs.info('response for simple getById: ' + response);
Ausgabe:
// 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 – Bereitstellung (Zeichenfolgenanbieter, Zeichenfolge ResourceName, Zeichenfolge resourceId)
Erstellt oder aktualisiert eine Ressource in einem externen Service Provider-System für eine angegebene sys_ID
Beispiel: Wenn Sie einen Anwender in erstellen oder aktualisieren ServiceNow Instanz können Sie diese Methode verwenden, um dieselbe Ressource in einem externen Service Provider-System zu erstellen oder zu aktualisieren. Nur die Felder, die in der Tabelle „SCIM-Provider-Ressourcenzuordnung“ [sys_scim_Provider_resource_Mapping ] zugeordnet sind, können in der entsprechenden Ressource erstellt oder aktualisiert werden.
Weitere Informationen zur Zuordnung von Anbieterressourcen finden Sie unter Erstellen Sie eine SCIM-Provider-Ressourcenzuordnung .
| Name | Typ | Beschreibung |
|---|---|---|
| Anbieter | Zeichenfolge | Erforderlich. Name des konfigurierten SCIM-Service Providers. Der Name des Service Providers wird im Namensfeld der Tabelle „SCIM-Anbieter“ [sys_scim_Provider] definiert. |
| resourceName | Zeichenfolge | Erforderlich. Name des Ressourcentyps, z. B. Anwender oder Gruppe. Tabelle: Im Feld resource_Name der Tabelle „SCIM-Provider-Ressourcenzuordnung“ [sys_scim_Provider_resource_Mapping]. |
| resourceId | Zeichenfolge | Erforderlich. SYS_ID der in gespeicherten Ressource ServiceNow Instanz (der Client). Tabelle: Im Feld „primary_table“ der Tabelle „SCIM-Provider-Ressourcenzuordnung“ [sys_scim_Provider_resource_Mapping]. |
| Typ | Beschreibung |
|---|---|
| Nachricht | Wenn statusIst ERFOLG, gibt der Endpunkt den Antworttext zurück, wie vom REST definiert SCIM API. Datentyp: Zeichenfolge |
| status | Status der Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
Das folgende Beispiel zeigt, wie Sie einen Anwender auf dem Snow Provider bereitstellen.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.provision('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
Ausgabe:
// 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 (Zeichenfolgenanbieter, Zeichenfolge ResourceName, Zeichenfolge resourceId)
Erstellt eine neue Ressource in einem externen Service Provider-System für eine angegebene sys_ID
Beispiel: Wenn Sie einen neuen Anwender in einem erstellen ServiceNow Instanz können Sie diese Methode verwenden, um dieselbe Ressource in einem externen Service Provider-System zu erstellen. Nur die Felder, die in der Tabelle „SCIM-Provider-Ressourcenzuordnung“ [sys_scim_Provider_resource_Mapping] zugeordnet sind, können im entsprechenden externen Service Provider-System erstellt werden. Wenn die Ressource bereits im externen Service Provider-System vorhanden ist, wird eine Fehlerantwort zurückgegeben.
Weitere Informationen zur Zuordnung von Anbieterressourcen finden Sie unter Erstellen Sie eine SCIM-Provider-Ressourcenzuordnung .
| Name | Typ | Beschreibung |
|---|---|---|
| Anbieter | Zeichenfolge | Erforderlich. Name des konfigurierten SCIM-Service Providers. Der Name des Service Providers wird im Namensfeld der Tabelle „SCIM-Anbieter“ [sys_scim_Provider] definiert. |
| resourceName | Zeichenfolge | Erforderlich. Name des Ressourcentyps, z. B. Anwender oder Gruppe. Tabelle: Im Feld resource_Name der Tabelle „SCIM-Provider-Ressourcenzuordnung“ [sys_scim_Provider_resource_Mapping]. |
| resourceId | Zeichenfolge | Erforderlich. SYS_ID der in gespeicherten Ressource ServiceNow Instanz (der Client). Tabelle: Im Feld „primary_table“ der Tabelle „SCIM-Provider-Ressourcenzuordnung“ [sys_scim_Provider_resource_Mapping]. |
| Typ | Beschreibung |
|---|---|
| Nachricht | Wenn statusIst ERFOLG, gibt der Endpunkt den Antworttext zurück, wie vom REST definiert SCIM API. Datentyp: Zeichenfolge |
| status | Status der Anforderung. Mögliche Werte:
Datentyp: Zeichenfolge |
Das folgende Beispiel zeigt, wie Sie einen neuen Anwender im externen Service Provider SNOW Provider erstellen.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.provisionNew('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
Ausgabe:
// 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"
}