Avvio rapido del provisioning in ingresso basato su API con cURL

Introduzione

cURL è uno strumento da riga di comando comune, gratuito e open source usato dagli sviluppatori di API ed è disponibile per impostazione predefinita in Windows 10/11. Questa esercitazione descrive come testare rapidamente il provisioning in ingresso basato su API con cURL.

Prerequisiti

Caricare i dati utente nell'API di provisioning in ingresso

  1. Recuperare il valore di client_id e client_secret dell'entità servizio che ha accesso all'API di provisioning in ingresso.
  2. Usare il flusso di concessione client_credentials di OAuth per ottenere un token di accesso. Sostituire le variabili [yourClientId], [yourClientSecret] e [yourTenantId] con i valori applicabili alla propria configurazione ed eseguire il comando cURL seguente. Copiare il valore del token di accesso generato.
    curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=[yourClientId]&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=[yourClientSecret]&grant_type=client_credentials" "https://login.microsoftonline.com/[yourTenantId]/oauth2/v2.0/token"
    
  3. Copiare la richiesta in blocco con lo schema utente aziendale SCIM e salvare il contenuto in un file denominato scim-bulk-upload-users.json.
  4. Sostituire la variabile [InboundProvisioningAPIEndpoint] con l'endpoint API di provisioning associato all'app di provisioning. Usare il valore [AccessToken] del passaggio precedente ed eseguire il comando cURL seguente per caricare la richiesta in blocco nell'endpoint API di provisioning.
    curl -v "[InboundProvisioningAPIEndpoint]" -d @scim-bulk-upload-users.json -H "Authorization: Bearer [AccessToken]" -H "Content-Type: application/scim+json"
    
  5. Al termine del caricamento, si riceverà il codice di risposta HTTP 202 Accettato.
  6. Il servizio di provisioning avvia immediatamente l'elaborazione del payload della richiesta in blocco ed è possibile visualizzare i dettagli del provisioning accedendo ai log di provisioning dell'app di provisioning in ingresso.

Verificare l'elaborazione del payload della richiesta in blocco

  1. Accedere all'Interfaccia di amministrazione di Microsoft Entra almeno come amministratore applicazione.

  2. Passare a Microsoft Entra ID -> Applicazioni -> Applicazioni aziendali.

  3. In tutte le applicazioni usare la casella di testo del filtro di ricerca per trovare l'applicazione di provisioning basato su API e aprirla.

  4. Aprire il riquadro Provisioning. Nella pagina di destinazione viene visualizzato lo stato dell'ultima esecuzione.

  5. Fare clic su Visualizza i log di provisioning per aprire il riquadro dei log di provisioning. In alternativa, è possibile fare clic sull'opzione di menu Monitoraggio -> Log di provisioning.

    Screenshot di Log di provisioning nel menu.

  6. Fare clic su qualsiasi record nei log di provisioning per visualizzare altri dettagli di elaborazione.

  7. Nella schermata dei dettagli del log di provisioning vengono visualizzati tutti i passaggi eseguiti per un utente specifico.

    • Nel passaggio Importa da API vedere i dettagli dei dati utente estratti dalla richiesta in blocco.
    • Nel passaggio Corrispondenza dell'utente vengono visualizzati i dettagli di qualsiasi corrispondenza utente in base all'identificatore corrispondente. Se viene trovata una corrispondenza utente, il servizio di provisioning esegue un'operazione di aggiornamento. Se non esiste alcuna corrispondenza utente, il servizio di provisioning esegue un'operazione di creazione.
    • Nel passaggio Determina se l'utente rientra nell'ambito vengono visualizzati dettagli della valutazione dei filtri di ambito. Per impostazione predefinita, vengono elaborati tutti gli utenti. Se è stato impostato un filtro di ambito, ad esempio per elaborare solo gli utenti appartenenti al reparto vendite, i dettagli di valutazione del filtro vengono visualizzati in questo passaggio.
    • Nel passaggio Effettua provisioning utenti viene richiamato il passaggio di elaborazione finale e le modifiche vengono applicate all'account utente.
    • Usare la scheda Proprietà modificate per visualizzare gli aggiornamenti degli attributi.

Appendice

Visualizzare questa sezione per informazioni sulla richiesta in blocco con lo schema utente aziendale SCIM.

Richiesta in blocco con lo schema utente aziendale SCIM

Nella richiesta in blocco illustrata di seguito viene usato lo schema utente aziendale e utente di base SCIM standard.

Testo della richiesta

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.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": "100 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"
                 }
            }
        }
    },
    {
        "method": "POST",
        "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.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": "701985",
                 "costCenter": "4130",
                 "organization": "Universal Studios",
                 "division": "Theme Park",
                 "department": "Tour Operations",
                 "manager": {
                     "value": "701984",
                     "displayName": "Barbara Jensen"
                 }
            }
        }
    }
],
    "failOnErrors": null
}

Passaggi successivi