다음을 통해 공유


API 기반 프로비전을 확장하여 사용자 지정 특성 동기화

기본적으로 API 기반 프로비전 앱은 표준 SCIM 코어 사용자 및 엔터프라이즈 사용자 스키마의 일부인 처리 특성을 지원합니다. 기록 시스템에는 API 기반 프로비전의 일부로 포함할 수 있는 사용자 지정 특성이 있을 수 있습니다. 이 고급 자습서에서는 API 기반 프로비전 앱을 확장하여 추가 사용자 지정 특성을 처리하는 방법을 설명합니다.

참고 항목

이 고급 시나리오를 시도하기 전에 다음 API 클라이언트 Graph Explorer cURL 중 하나를 사용하여 기본 제공 프로비전 앱 구성이 예상대로 작동하는지 확인하는 것이 좋습니다.

예제 시나리오

API 기반 프로비전 앱을 구성했습니다. 프로비전 중인 앱은 표준 SCIM 코어 사용자 및 엔터프라이즈 사용자 스키마의 일부인 특성을 성공적으로 사용하고 Microsoft Entra ID에서 사용자를 프로비전하고 있습니다. 이제 HR 시스템에서 인바운드 프로비전 API 엔드포인트로 두 개의 사용자 지정 특성 HireDateJobCode를 보내려고 합니다. 이 두 가지 사용자 지정 특성을 Microsoft Entra 특성 employeeHireDatejobTitle에 매핑하려고 합니다.

1단계 - 프로비전 앱 스키마 확장

이 단계에서는 표준 SCIM 스키마의 일부가 아닌 두 가지 특성 "HireDate" 및 "JobCode"를 프로비전 앱에 추가하고 이를 프로비전 데이터 흐름에서 사용합니다.

  1. 최소한 응용 프로그램 관리자Microsoft Entra 관리 센터에 로그인합니다.
  2. ID>애플리케이션>엔터프라이즈 애플리케이션으로 이동합니다.
  3. API 기반 프로비전 앱을 엽니다.
  4. 프로비전 블레이드를 엽니다.
  5. 프로비전 편집 단추를 클릭합니다.
  6. 매핑 섹션을 확장하고 특성 매핑 링크를 클릭합니다.
    특성 매핑 편집 스크린샷.
  7. 특성 매핑 페이지를 아래로 스크롤합니다. 고급 옵션 표시를 선택하고 API 특성 목록 편집 링크를 클릭합니다. API 특성 목록 편집 스크린샷.
  8. 특성 목록 편집 페이지 끝까지 아래로 스크롤합니다.
  9. SCIM 스키마 확장으로 목록에 다음 두 특성을 추가합니다. 자체 SCIM 스키마 네임스페이스를 사용할 수 있습니다.
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
    urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
    사용자 지정 특성 추가 스크린샷.
  10. 변경 내용을 저장합니다.

참고 항목

프로비전 앱에 몇 가지 특성만 더 추가하려면 Microsoft Entra 관리 센터를 사용하여 스키마를 확장합니다. 더 많은 사용자 지정 특성(20개 이상의 특성)을 추가하려면 위의 수동 프로세스를 자동화하는 UpdateSchema CSV2SCIM PowerShell 스크립트 모드를 사용하는 것이 좋습니다.

2단계 - 사용자 지정 특성 매핑

이제 프로비전 앱 특성 매핑에 이러한 확장을 추가해 보겠습니다.

  1. 특성 매핑 페이지에서 새 매핑 추가 링크를 클릭합니다. 새 매핑 추가 스크린샷.

  2. urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate 특성을 employeeHireDate에 매핑합니다. 확인을 클릭합니다.
    고용 날짜 매핑 스크린샷.

  3. 다음으로, title에 대한 기존 매핑을 선택하고 이를 클릭하여 매핑을 편집합니다.

  4. jobTitle Microsoft Entra 특성의 일부로 urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode를 포함하는 식에 대한 특성 매핑을 편집합니다.

      Join("", [title], "(", [urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode], ")")
    

    직함 매핑 스크린샷.

    이 식 매핑을 사용하면 title가 "Tour Lead"이고 JobCode가 "TL-1001"인 경우 Microsoft Entra 특성 jobTitle가 "Tour Lead (TL-1001)"로 설정됩니다.

  5. 특성 매핑을 저장합니다.

3단계 - 사용자 지정 특성이 포함된 대량 요청 업로드

  1. API 클라이언트(Graph Explorer/cURL)를 엽니다.
  2. 사용자 지정 특성이 포함된 대량 요청을 복사하여 붙여넣습니다.
  3. 프로비전 API 엔드포인트 URL로 대량 요청을 보냅니다.
    대량 업로드 요청 스크린샷.
  4. 잠시 후 프로비전 로그를 확인하여 특성 변경을 확인할 수 있습니다.
    프로비전 로그 스크린샷.
  5. Microsoft Entra 사용자 프로필의 변경 내용을 확인할 수도 있습니다. Employee hire date의 값은 테넌트 표준 시간대를 반영합니다.
    사용자 프로필 스크린샷.

부록

사용자 지정 특성을 사용한 대량 요청

대량 요청에는 위 단계에서 구성된 사용자 지정 특성이 포함됩니다.

요청 본문

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "701984",
        "path": "/Users",
        "data": {
            "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:contoso:1.0:User"],
            "externalId": "701984",
            "userName": "bjensen@example.com",
            "name": {
                "formatted": "Ms. Barbara J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Barbara",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Babs Jensen",
            "nickName": "Babs",
            "emails": [
            {
              "value": "bjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "234300 Universal City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91608",
              "country": "USA",
              "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5555",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Guide",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                "employeeNumber": "701984",
                "costCenter": "4130",
                "organization": "Universal Studios",
                "division": "Theme Park",
                "department": "Tour Operations",
                "manager": {
                  "value": "89607",
                  "displayName": "John Smith"
                 }
            },
            "urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
                "HireDate": "2021-05-01T00:00:00-05:00",
                "JobCode": "TG-1001"
            }            
        }
    },
    {
        "method": "POST",
        "bulkId": "701985",
        "path": "/Users",
        "data": {
            "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:contoso:1.0:User"],
            "externalId": "701985",
            "userName": "Kjensen@example.com",
            "name": {
                "formatted": "Ms. Kathy J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Kathy",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Kathy Jensen",
            "nickName": "Kathy",
            "emails": [
            {
              "value": "kjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Oracle City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91618",
              "country": "USA",
              "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5545",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Lead",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
              "employeeNumber": "701984",
              "costCenter": "4130",
              "organization": "Universal Studios",
              "division": "Theme Park",
              "department": "Tour Operations",
              "manager": {
                "value": "701984",
                "displayName": "Barbara Jensen"
             }
            },
            "urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
                "HireDate": "2022-07-15T00:00:00-05:00",
                "JobCode": "TL-1003"
            }            
        }
    }
],
    "failOnErrors": null
}

다음 단계