SCIM2Client - 범위 지정됨
SCIM2Client API는 SCIM(System for Cross-domain Identity Management) 공급자(서버 역할)를 호출하여 SP(서비스 공급자)에서 데이터를 생성, 업데이트 또는 삭제하는 메서드를 제공합니다.
SCIM은 클라이언트 및 서버 역할을 정의하는 REST 및 JSON 기반 프로토콜입니다. 클라이언트는 일반적으로 사용자 ID의 강력한 디렉터리를 포함하는 IDP Okta(ID 공급자)입니다. SP는 일반적으로 SaaS 해당 ID의 정보 하위 집합을 필요로 하는 애플리케이션(예: or Slack)Box입니다. 생성, 업데이트 및 삭제를 포함하여 IDP에서 ID가 변경되면 SCIM 프로토콜에 따라 SP에 자동으로 동기화됩니다.
다음 이미지는 서비스 제공자 데이터를 조작하기 위한 일반적인 API 호출 플로우를 보여줍니다.
이 API는 sn_auth 네임스페이스에서 실행되며, API에 액세스하려면 SCIM v2 - ServiceNow Cross-domain Identity Management Client(com.snc.integration.scim2.client) 플러그인을 설치해야 합니다.
SCIM 클라이언트 로그[sys_scim_client_logs] 테이블에서 각 SCIM 메서드 호출의 결과를 찾을 수 있습니다.
SCIM에 대한 자세한 내용은 SCIM(System for Cross-domain Identity Management)을 참조하십시오.
SCIM2Client - executeDelete(문자열 공급자, 문자열 resourceName, 문자열 providerResourceId)
외부 서비스 제공자 시스템에서 지정된 자원을 삭제합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 제공자 | 문자열 | 필수 구성된 SCIM 서비스 제공자의 이름입니다. 서비스 제공자 이름은 SCIM 제공자 [sys_scim_provider] 테이블의 이름 필드에 정의됩니다. |
| resourceName | 문자열 | 필수 자원 유형의 이름(예: 사용자 또는 그룹)입니다. 테이블: SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블의 resource_name 필드 |
| 공급자ResourceId | 문자열 | 필수 외부 서비스 제공자 시스템에서 연결된 자원의 고유 식별자입니다. |
| 유형 | 설명 |
|---|---|
| 메시지 | 가 status SUCCESS인 경우 엔드포인트는 REST SCIM API에 정의된 대로 응답 본문을 반환합니다. 데이터 유형: 문자열 |
| 상태 | 요청의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
다음 예는 SNOW 공급자 시스템에서 사용자 자원을 삭제하는 방법을 보여줍니다.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.executeDelete('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
출력:
// 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(문자열 공급자, 문자열 resourceName, 문자열 queryParams)
전달된 기준과 일치하는 지정된 외부 제공자 시스템에서 모든 자원을 반환합니다.
이 정보는 해당 SCIM 서비스 제공자 API를 호출하는 데 사용됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 제공자 | 문자열 | 필수 구성된 SCIM 서비스 제공자의 이름입니다. 서비스 제공자 이름은 SCIM 제공자 [sys_scim_provider] 테이블의 이름 필드에 정의됩니다. |
| resourceName | 문자열 | 필수 자원 유형의 이름(예: 사용자 또는 그룹)입니다. 테이블: SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블의 resource_name 필드 |
| queryParams | 문자열 | 필수 외부 SCIM 서비스 제공자 엔드포인트에 전달되는 SCIM 준수 쿼리 매개변수입니다. 사용 가능한 쿼리 매개변수 및 관련 형식에 대한 자세한 내용은 Internet Engineering Task Force 문서의 다음 섹션을 참조하십시오. 도메인 간 ID 관리를 위한 시스템: 프로토콜 |
| 유형 | 설명 |
|---|---|
| 메시지 | 가 status SUCCESS인 경우 엔드포인트는 REST SCIM API에 정의된 대로 응답 본문을 반환합니다. 데이터 유형: 문자열 |
| 상태 | 요청의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
다음 예제에서는 회사 이메일에 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);
응답:
//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(문자열 제공자, 문자열 resourceName, 문자열 providerResourceId, 맵<문자열, 문자열> queryParams)
지정된 고유 자원 ID를 사용하여 외부 제공자 시스템에서 자원을 반환합니다.
이 정보는 해당 SCIM 서비스 제공자 API를 호출하는 데 사용됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 제공자 | 문자열 | 필수 구성된 SCIM 서비스 제공자의 이름입니다. 서비스 제공자 이름은 SCIM 제공자 [sys_scim_provider] 테이블의 이름 필드에 정의됩니다. |
| 공급자ResourceId | 문자열 | 필수 외부 서비스 제공자 시스템에서 연결된 자원의 고유 식별자입니다. |
| queryParams | 문자열 | 필수 외부 SCIM 서비스 제공자 엔드포인트에 전달되는 SCIM 준수 쿼리 매개변수입니다. 사용 가능한 쿼리 매개변수 및 관련 형식에 대한 자세한 내용은 Internet Engineering Task Force 문서의 다음 섹션을 참조하십시오. 도메인 간 ID 관리를 위한 시스템: 프로토콜 |
| 유형 | 설명 |
|---|---|
| 메시지 | 가 status SUCCESS인 경우 엔드포인트는 REST SCIM API에 정의된 대로 응답 본문을 반환합니다. 데이터 유형: 문자열 |
| 상태 | 요청의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
이 예제에서는 외부 공급자 시스템 "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);
출력:
// 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 - 프로비저닝(문자열 공급자, 문자열 resourceName, 문자열 resourceId)
지정된 sys_id에 대한 외부 서비스 제공자 시스템에서 자원을 작성하거나 업데이트합니다.
예를 들어, 인스턴스에서 사용자를 ServiceNow 생성하거나 업데이트하는 경우 이 메서드를 사용하여 외부 서비스 제공자 시스템에서 동일한 자원을 생성하거나 업데이트할 수 있습니다. SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping ] 테이블에 매핑된 필드만 해당 자원에서 생성하거나 업데이트할 수 있습니다.
제공자 리소스 매핑에 대한 자세한 내용은 SCIM 제공자 리소스 매핑 생성을 참조하십시오.
| 이름 | 유형 | 설명 |
|---|---|---|
| 제공자 | 문자열 | 필수 구성된 SCIM 서비스 제공자의 이름입니다. 서비스 제공자 이름은 SCIM 제공자 [sys_scim_provider] 테이블의 이름 필드에 정의됩니다. |
| resourceName | 문자열 | 필수 자원 유형의 이름(예: 사용자 또는 그룹)입니다. 테이블: SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블의 resource_name 필드 |
| resourceId | 문자열 | 필수 인스턴스(클라이언트)에 ServiceNow 저장된 자원의 Sys_id입니다. 테이블: SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블의 primary_table 필드 |
| 유형 | 설명 |
|---|---|
| 메시지 | 가 status SUCCESS인 경우 엔드포인트는 REST SCIM API에 정의된 대로 응답 본문을 반환합니다. 데이터 유형: 문자열 |
| 상태 | 요청의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
다음 예제에서는 Snow Provider에서 사용자를 프로비저닝하는 방법을 보여줍니다.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.provision('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
출력:
// 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(문자열 공급자, 문자열 resourceName, 문자열 resourceId)
지정된 sys_id에 대한 외부 서비스 제공자 시스템에 새 자원을 작성합니다.
예를 들어, 인스턴스에서 새 사용자를 ServiceNow 생성하는 경우 이 메서드를 사용하여 외부 서비스 제공자 시스템에서 동일한 자원을 생성할 수 있습니다. SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블에 매핑된 필드만 해당 외부 서비스 제공자 시스템에서 생성할 수 있습니다. 자원이 외부 서비스 제공자 시스템에 이미 있는 경우 오류 응답이 반환됩니다.
제공자 리소스 매핑에 대한 자세한 내용은 SCIM 제공자 리소스 매핑 생성을 참조하십시오.
| 이름 | 유형 | 설명 |
|---|---|---|
| 제공자 | 문자열 | 필수 구성된 SCIM 서비스 제공자의 이름입니다. 서비스 제공자 이름은 SCIM 제공자 [sys_scim_provider] 테이블의 이름 필드에 정의됩니다. |
| resourceName | 문자열 | 필수 자원 유형의 이름(예: 사용자 또는 그룹)입니다. 테이블: SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블의 resource_name 필드 |
| resourceId | 문자열 | 필수 인스턴스(클라이언트)에 ServiceNow 저장된 자원의 Sys_id입니다. 테이블: SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블의 primary_table 필드 |
| 유형 | 설명 |
|---|---|
| 메시지 | 가 status SUCCESS인 경우 엔드포인트는 REST SCIM API에 정의된 대로 응답 본문을 반환합니다. 데이터 유형: 문자열 |
| 상태 | 요청의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
다음 예시에서는 외부 서비스 제공자인 SNOW Provider에서 새 사용자를 생성하는 방법을 보여줍니다.
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.provisionNew('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
출력:
// 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"
}