Udostępnij za pośrednictwem


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.

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji.
  2. Przejdź do aplikacji dla przedsiębiorstw usługi Identity>Applications>.
  3. Otwórz aplikację aprowizacji opartą na interfejsie API.
  4. Otwórz blok Aprowizowanie.
  5. Kliknij przycisk Edytuj aprowizację.
  6. Rozwiń sekcję Mapowania i kliknij link mapowania atrybutów.
    Zrzut ekranu przedstawiający edytowanie mapowania atrybutów.
  7. Przewiń w dół stronę Mapowania atrybutów . Wybierz pozycję Pokaż opcje zaawansowane i kliknij link Edytuj atrybuty dla interfejsu API . Zrzut ekranu przedstawiający edytowanie listy atrybutów interfejsu API.
  8. Przewiń w dół do końca strony Edytowanie listy atrybutów.
  9. 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
    Zrzut ekranu przedstawiający dodawanie atrybutów niestandardowych.
  10. 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.

  1. Kliknij link Dodaj nowe mapowanie na stronie Mapowanie atrybutów. Zrzut ekranu przedstawiający dodawanie nowego mapowania.

  2. Zamapuj atrybut na urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate employeeHireDate. Kliknij przycisk OK.
    Zrzut ekranu przedstawiający mapowanie dat zatrudnienia.

  3. Następnie wybierz istniejące mapowanie i title kliknij go, aby edytować mapowanie.

  4. 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ęść atrybutu jobTitle Microsoft Entra.

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

    Zrzut ekranu przedstawiający mapowanie tytułu zadania.

    Jeśli to mapowanie title wyrażeń ma wartość "Tour Lead" i JobCodema wartość "TL-1001", atrybut jobTitle Microsoft Entra zostanie ustawiony na "Tour Lead (TL-1001)".

  5. Zapisz mapowania atrybutów.

Krok 3. Przekazywanie żądania zbiorczego za pomocą atrybutów niestandardowych

  1. Otwórz klienta interfejsu API (Eksplorator programu Graph / cURL).
  2. Skopiuj żądanie zbiorcze za pomocą atrybutów niestandardowych.
  3. Wyślij żądanie zbiorcze do adresu URL punktu końcowego interfejsu API aprowizacji.
    Zrzut ekranu przedstawiający żądanie przekazywania zbiorczego.
  4. Po pewnym czasie możesz sprawdzić dzienniki aprowizacji, aby zweryfikować zmianę atrybutu.
    Zrzut ekranu przedstawiający dzienniki aprowizacji.
  5. Możesz również zweryfikować zmianę w profilu użytkownika Firmy Microsoft Entra. Wartość elementu Employee hire date odzwierciedla strefę czasową dzierżawy.
    Zrzut ekranu przedstawiający profil użytkownika.

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
}

Następne kroki