SCIM2Client - 범위 지정됨

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기26분
  • SCIM2Client API는 SCIM(System for Cross-domain Identity Management) 공급자(서버 역할)를 호출하여 SP(서비스 공급자)에서 데이터를 생성, 업데이트 또는 삭제하는 메서드를 제공합니다.

    SCIM은 클라이언트 및 서버 역할을 정의하는 REST 및 JSON 기반 프로토콜입니다. 클라이언트는 일반적으로 강력한 사용자 ID 디렉터리를 포함하는 IDP Okta(ID 공급자)입니다. SP는 일반적으로 SaaS 해당 ID의 정보 하위 집합이 필요한 또는 Slack와 같은 Box 애플리케이션입니다. 생성, 업데이트 및 삭제를 포함하여 IDP에서 ID가 변경되면 SCIM 프로토콜에 따라 SP에 자동으로 동기화됩니다.

    다음 이미지는 서비스 제공자 데이터를 조작하기 위한 일반적인 API 호출 플로우를 보여줍니다.

    SCMI 클라이언트 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(도메인 간 ID 관리 시스템)을 참조하십시오.

    SCIM2Client - executeDelete(문자열 공급자, 문자열 resourceName, 문자열 providerResourceId)

    외부 서비스 제공자 시스템에서 지정된 자원을 삭제합니다.

    표 1. 매개변수
    이름 유형 설명
    제공자 문자열 필수 구성된 SCIM 서비스 제공자의 이름입니다. 서비스 제공자 이름은 SCIM 제공자 [sys_scim_provider] 테이블의 이름 필드에 정의됩니다.
    resourceName 문자열 필수 사용자 또는 그룹과 같은 자원 유형의 이름입니다. 이 값은 SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블의 resource_name 필드에 있습니다.
    제공자자원ID 문자열 필수 외부 서비스 제공자 시스템에 있는 관련 자원의 고유 식별자입니다.
    표 2. 반환
    유형 설명
    메시지 status 가 SUCCESS이면 엔드포인트는 REST SCIM API에 정의된 대로 응답 본문을 반환합니다.

    데이터 유형: 문자열

    상태 요청의 상태입니다.
    가능한 값:
    • 실패
    • 성공

    데이터 유형: 문자열

    다음은 SNOW Provider 시스템에서 사용자 리소스를 삭제하는 예시입니다.

    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를 호출하는 데 사용됩니다.

    표 3. 매개변수
    이름 유형 설명
    제공자 문자열 필수 구성된 SCIM 서비스 제공자의 이름입니다. 서비스 제공자 이름은 SCIM 제공자 [sys_scim_provider] 테이블의 이름 필드에 정의됩니다.
    resourceName 문자열 필수 사용자 또는 그룹과 같은 자원 유형의 이름입니다. 이 값은 SCIM 제공자 리소스 매핑 [sys_scim_provider_resource_mapping] 테이블의 resource_name 필드에 있습니다.
    queryParams 문자열 필수 외부 SCIM 서비스 제공자 엔드포인트에 전달된 SCIM 규격 쿼리 매개변수입니다.
    사용 가능한 쿼리 매개 변수 및 관련 형식에 대한 자세한 내용은 Internet Engineering Task Force 문서의 다음 섹션을 참조하십시오. 도메인 간 ID 관리 시스템: 프로토콜
    표 4. 반환
    유형 설명
    메시지 status 가 SUCCESS이면 엔드포인트는 REST SCIM API에 정의된 대로 응답 본문을 반환합니다.

    데이터 유형: 문자열

    상태 요청의 상태입니다.
    가능한 값:
    • 실패
    • 성공

    데이터 유형: 문자열

    다음 예제에서는 업무 이메일에 lucius.bagnoli가 포함된 snow 테스트 서비스 공급자로부터 사용 가능한 모든 사용자를 검색하는 방법을 보여 줍니다.

    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, Map<String, String> queryParams)

    지정된 고유 자원 ID로 외부 제공자 시스템에서 자원을 반환합니다.

    이 정보는 해당 SCIM 서비스 제공자 API를 호출하는 데 사용됩니다.

    표 5. 매개변수
    이름 유형 설명
    제공자 문자열 필수 구성된 SCIM 서비스 제공자의 이름입니다. 서비스 제공자 이름은 SCIM 제공자 [sys_scim_provider] 테이블의 이름 필드에 정의됩니다.
    제공자자원ID 문자열 필수 외부 서비스 제공자 시스템에 있는 관련 자원의 고유 식별자입니다.
    queryParams 문자열 필수 외부 SCIM 서비스 제공자 엔드포인트에 전달된 SCIM 규격 쿼리 매개변수입니다.
    사용 가능한 쿼리 매개 변수 및 관련 형식에 대한 자세한 내용은 Internet Engineering Task Force 문서의 다음 섹션을 참조하십시오. 도메인 간 ID 관리 시스템: 프로토콜
    표 6. 반환
    유형 설명
    메시지 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 공급자 리소스 매핑 만들기를 참조하세요.

    표 7. 매개변수
    이름 유형 설명
    제공자 문자열 필수 구성된 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 필드에 있습니다.
    표 8. 반환
    유형 설명
    메시지 status 가 SUCCESS이면 엔드포인트는 REST SCIM API에 정의된 대로 응답 본문을 반환합니다.

    데이터 유형: 문자열

    상태 요청의 상태입니다.
    가능한 값:
    • 실패
    • 성공

    데이터 유형: 문자열

    다음 예는 Snow 제공자에서 사용자를 프로비저닝하는 방법을 보여줍니다.

    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 공급자 리소스 매핑 만들기를 참조하세요.

    표 9. 매개변수
    이름 유형 설명
    제공자 문자열 필수 구성된 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 필드에 있습니다.
    표 10. 반환
    유형 설명
    메시지 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"
    }