API 기반 프로비전을 확장하여 사용자 지정 특성 동기화
기본적으로 API 기반 프로비전 앱은 표준 SCIM 코어 사용자 및 엔터프라이즈 사용자 스키마의 일부인 처리 특성을 지원합니다. 기록 시스템에는 API 기반 프로비전의 일부로 포함할 수 있는 사용자 지정 특성이 있을 수 있습니다. 이 고급 자습서에서는 API 기반 프로비전 앱을 확장하여 추가 사용자 지정 특성을 처리하는 방법을 설명합니다.
참고 항목
이 고급 시나리오를 시도하기 전에 다음 API 클라이언트 Graph Explorer cURL 중 하나를 사용하여 기본 제공 프로비전 앱 구성이 예상대로 작동하는지 확인하는 것이 좋습니다.
예제 시나리오
API 기반 프로비전 앱을 구성했습니다. 프로비전 중인 앱은 표준 SCIM 코어 사용자 및 엔터프라이즈 사용자 스키마의 일부인 특성을 성공적으로 사용하고 Microsoft Entra ID에서 사용자를 프로비전하고 있습니다. 이제 HR 시스템에서 인바운드 프로비전 API 엔드포인트로 두 개의 사용자 지정 특성 HireDate
및 JobCode
를 보내려고 합니다. 이 두 가지 사용자 지정 특성을 Microsoft Entra 특성 employeeHireDate
및 jobTitle
에 매핑하려고 합니다.
1단계 - 프로비전 앱 스키마 확장
이 단계에서는 표준 SCIM 스키마의 일부가 아닌 두 가지 특성 "HireDate" 및 "JobCode"를 프로비전 앱에 추가하고 이를 프로비전 데이터 흐름에서 사용합니다.
- 최소한 응용 프로그램 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
- ID>애플리케이션>엔터프라이즈 애플리케이션으로 이동합니다.
- API 기반 프로비전 앱을 엽니다.
- 프로비전 블레이드를 엽니다.
- 프로비전 편집 단추를 클릭합니다.
- 매핑 섹션을 확장하고 특성 매핑 링크를 클릭합니다.
- 특성 매핑 페이지를 아래로 스크롤합니다. 고급 옵션 표시를 선택하고 API 특성 목록 편집 링크를 클릭합니다.
- 특성 목록 편집 페이지 끝까지 아래로 스크롤합니다.
- SCIM 스키마 확장으로 목록에 다음 두 특성을 추가합니다. 자체 SCIM 스키마 네임스페이스를 사용할 수 있습니다.
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
- 변경 내용을 저장합니다.
참고 항목
프로비전 앱에 몇 가지 특성만 더 추가하려면 Microsoft Entra 관리 센터를 사용하여 스키마를 확장합니다. 더 많은 사용자 지정 특성(20개 이상의 특성)을 추가하려면 위의 수동 프로세스를 자동화하는 UpdateSchema
CSV2SCIM PowerShell 스크립트 모드를 사용하는 것이 좋습니다.
2단계 - 사용자 지정 특성 매핑
이제 프로비전 앱 특성 매핑에 이러한 확장을 추가해 보겠습니다.
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
특성을employeeHireDate
에 매핑합니다. 확인을 클릭합니다.
다음으로,
title
에 대한 기존 매핑을 선택하고 이를 클릭하여 매핑을 편집합니다.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)"로 설정됩니다.특성 매핑을 저장합니다.
3단계 - 사용자 지정 특성이 포함된 대량 요청 업로드
- API 클라이언트(Graph Explorer/cURL)를 엽니다.
- 사용자 지정 특성이 포함된 대량 요청을 복사하여 붙여넣습니다.
- 프로비전 API 엔드포인트 URL로 대량 요청을 보냅니다.
- 잠시 후 프로비전 로그를 확인하여 특성 변경을 확인할 수 있습니다.
- 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
}