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 lub Postman.

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 jako co najmniej Administracja istrator 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.
    Screenshot of edit attribute mapping.
  7. Przewiń w dół stronę Mapowania atrybutów . Wybierz pozycję Pokaż opcje zaawansowane i kliknij link Edytuj atrybuty dla interfejsu API . Screenshot of edit API attribute list.
  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
    Screenshot of adding custom attributes.
  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. Screenshot of add new mapping.

  2. Zamapuj atrybut na urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDateemployeeHireDate. Kliknij przycisk OK.
    Screenshot of hire date mapping.

  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], ")")
    

    Screenshot of job title mapping.

    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 / Postman / cURL).
  2. Skopiuj żądanie zbiorcze za pomocą atrybutów niestandardowych.
  3. Wyślij żądanie zbiorcze do adresu URL punktu końcowego interfejsu API aprowizacji.
    Screenshot of bulk upload request.
  4. Po pewnym czasie możesz sprawdzić dzienniki aprowizacji, aby zweryfikować zmianę atrybutu.
    Screenshot of provisioning logs.
  5. Możesz również zweryfikować zmianę w profilu użytkownika Firmy Microsoft Entra. Wartość elementu Employee hire date odzwierciedla strefę czasową dzierżawy.
    Screenshot of user profile.

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