Rozszerzanie aprowizacji opartej na interfejsie API w celu synchronizacji atrybutów niestandardowych
Domyślnie aplikacje aprowizacji oparte na interfejsie API obsługują atrybuty przetwarzania, które są częścią standardowego schematu użytkownika podstawowego SCIM i użytkownika przedsiębiorstwa. System rekordów może mieć atrybuty niestandardowe, które mogą być uwzględniane w ramach aprowizacji opartej na interfejsie API. W tym zaawansowanym samouczku opisano sposób rozszerzania aplikacji aprowizacji opartej na interfejsie API w celu przetwarzania dodatkowych atrybutów niestandardowych.
Uwaga
Przed wypróbowaniem tego zaawansowanego scenariusza zalecamy sprawdzenie, czy konfiguracja gotowej aplikacji aprowizacji działa zgodnie z oczekiwaniami przy użyciu jednego z następujących klientów interfejsu API Graph Explorer, cURL.
Przykładowy scenariusz
Skonfigurowano aplikację aprowizacji opartą na interfejsie API. Aplikacja aprowizacji pomyślnie korzysta z atrybutów, które są częścią standardowego schematu użytkownika podstawowego SCIM i użytkownika przedsiębiorstwa oraz aprowizacji użytkowników w usłudze Microsoft Entra ID. Teraz chcesz wysłać dwa atrybuty HireDate
niestandardowe i JobCode
z systemu HR do punktu końcowego interfejsu API aprowizacji dla ruchu przychodzącego. Te dwa atrybuty niestandardowe chcesz mapować na atrybuty employeeHireDate
entra firmy Microsoft i jobTitle
.
Krok 1. Rozszerzanie schematu aplikacji aprowizacji
W tym kroku dodamy dwa atrybuty "HireDate" i "JobCode", które nie są częścią standardowego schematu SCIM do aplikacji aprowizacji i użyjemy ich w przepływie danych aprowizacji.
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji.
- Przejdź do aplikacji dla przedsiębiorstw usługi Identity>Applications>.
- Otwórz aplikację aprowizacji opartą na interfejsie API.
- Otwórz blok Aprowizowanie.
- Kliknij przycisk Edytuj aprowizację.
- Rozwiń sekcję Mapowania i kliknij link mapowania atrybutów.
- Przewiń w dół stronę Mapowania atrybutów . Wybierz pozycję Pokaż opcje zaawansowane i kliknij link Edytuj atrybuty dla interfejsu API .
- Przewiń w dół do końca strony Edytowanie listy atrybutów.
- Dodaj następujące dwa atrybuty do listy jako rozszerzenia schematu SCIM. Możesz użyć własnej przestrzeni nazw schematu SCIM.
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
- Zapisywanie zmian
Uwaga
Jeśli chcesz dodać tylko kilka dodatkowych atrybutów do aplikacji aprowizacji, użyj centrum administracyjnego firmy Microsoft Entra, aby rozszerzyć schemat. Jeśli chcesz dodać więcej atrybutów niestandardowych (powiedzmy 20+ atrybutów), zalecamy użycie UpdateSchema
trybu skryptu programu CSV2SCIM PowerShell, który automatyzuje powyższy proces ręczny.
Krok 2. Mapuj atrybuty niestandardowe
Teraz dodajmy te rozszerzenia do mapowania atrybutów aplikacji aprowizacji.
Kliknij link Dodaj nowe mapowanie na stronie Mapowanie atrybutów.
Zamapuj atrybut na
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
employeeHireDate
. Kliknij przycisk OK.
Następnie wybierz istniejące mapowanie i
title
kliknij go, aby edytować mapowanie.Edytuj mapowanie atrybutów na wyrażenie, które będzie zawierać
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
element jako część atrybutujobTitle
Microsoft Entra.Join("", [title], "(", [urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode], ")")
Jeśli to mapowanie
title
wyrażeń ma wartość "Tour Lead" iJobCode
ma wartość "TL-1001", atrybutjobTitle
Microsoft Entra zostanie ustawiony na "Tour Lead (TL-1001)".Zapisz mapowania atrybutów.
Krok 3. Przekazywanie żądania zbiorczego za pomocą atrybutów niestandardowych
- Otwórz klienta interfejsu API (Eksplorator programu Graph / cURL).
- Skopiuj żądanie zbiorcze za pomocą atrybutów niestandardowych.
- Wyślij żądanie zbiorcze do adresu URL punktu końcowego interfejsu API aprowizacji.
- Po pewnym czasie możesz sprawdzić dzienniki aprowizacji, aby zweryfikować zmianę atrybutu.
- Możesz również zweryfikować zmianę w profilu użytkownika Firmy Microsoft Entra. Wartość elementu
Employee hire date
odzwierciedla strefę czasową dzierżawy.
Dodatek
Żądanie zbiorcze z atrybutami niestandardowymi
Żądanie zbiorcze zawiera atrybuty niestandardowe skonfigurowane w powyższych krokach.
Treść żądania
{
"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
}