Esercitazione: Configurare SAP Cloud Identity Services per il provisioning utenti automatico

Questa esercitazione illustra i passaggi per la configurazione del provisioning da Microsoft Entra ID a SAP Cloud Identity Services. L'obiettivo è configurare Microsoft Entra ID per effettuare automaticamente il provisioning e il deprovisioning degli utenti in SAP Cloud Identity Services, in modo che tali utenti possano eseguire l'autenticazione a SAP Cloud Identity Services e avere accesso ad altri carichi di lavoro SAP. SAP Cloud Identity Services supporta il provisioning dalla directory di identità locale ad altre applicazioni SAP come sistemi di destinazione.

Nota

Questa esercitazione descrive un connettore integrato nel servizio di provisioning utenti di Microsoft Entra. Per informazioni importanti sul funzionamento di questo servizio e sulle domande frequenti, vedere Automatizzare il provisioning e il deprovisioning degli utenti nelle applicazioni SaaS con Microsoft Entra ID. SAP Cloud Identity Services ha anche un connettore separato per leggere utenti e gruppi dall'ID Microsoft Entra. Per altre informazioni, vedere SAP Cloud Identity Services - Identity Provisioning - Microsoft Entra ID come sistema di origine.

Prerequisiti

Per lo scenario descritto in questa esercitazione si presuppone che l'utente disponga dei prerequisiti seguenti:

Nota

Questa integrazione è disponibile anche per l'uso dall'ambiente Microsoft Entra US Government Cloud. È possibile trovare questa applicazione nella raccolta di applicazioni cloud Microsoft Entra US Government e configurarla nello stesso modo dell'ambiente cloud pubblico.

Se si sta configurando il provisioning in SAP Cloud Identity Services in un ambiente di produzione, in cui si regola l'accesso ai carichi di lavoro SAP usando Microsoft Entra ID Governance, esaminare i prerequisiti prima di configurare Microsoft Entra ID per la governance delle identità prima di procedere.

Configurare SAP Cloud Identity Services per il provisioning

  1. Accedere alla console https://<tenantID>.accounts.ondemand.com/admin di SAP Cloud Identity Services Amministrazione o https://<tenantID>.trial-accounts.ondemand.com/admin a una versione di valutazione. Passare a Utenti e autorizzazioni > Amministrazione istrator.

    Screenshot della console di SAP Cloud Identity Services Amministrazione.

  2. Selezionare il pulsante +Add (Aggiungi) nel pannello sinistro per aggiungere un nuovo amministratore all'elenco. Scegliere Add System (Aggiungi sistema) e immettere il nome del sistema.

    Nota

    L'identità dell'amministratore in SAP Cloud Identity Services deve essere di tipo System. Un utente amministratore non sarà in grado di eseguire l'autenticazione all'API SAP SCIM durante il provisioning. SAP Cloud Identity Services non consente la modifica del nome di un sistema dopo la creazione.

  3. In Configura autorizzazioni attivare il pulsante Attiva/Disattiva su Gestisci utenti. Fare quindi clic su Salva per creare il sistema.

    Screenshot dell'aggiunta di SCIM di SAP Cloud Identity Services.

  4. Dopo aver creato il sistema di amministrazione, aggiungere un nuovo segreto al sistema.

  5. Copiare l'ID client e il segreto client generati da SAP. Questi valori verranno immessi rispettivamente nei campi nome utente Amministrazione e Amministrazione password. Questa operazione viene eseguita nella scheda Provisioning dell'applicazione SAP Cloud Identity Services, che verrà configurata nella sezione successiva.

  6. SAP Cloud Identity Services può avere mapping a una o più applicazioni SAP come sistemi di destinazione. Controllare se sono presenti attributi per gli utenti di cui è necessario eseguire il provisioning tramite SAP Cloud Identity Services. Questa esercitazione presuppone che SAP Cloud Identity Services e i sistemi di destinazione downstream richiedano due attributi e userNameemails[type eq "work"].value. Se i sistemi di destinazione SAP richiedono altri attributi e non fanno parte dello schema utente di Microsoft Entra ID, potrebbe essere necessario configurare gli attributi dell'estensione di sincronizzazione.

Prima di configurare Microsoft Entra ID per il provisioning utenti automatico in SAP Cloud Identity Services, è necessario aggiungere SAP Cloud Identity Services dalla raccolta di applicazioni Microsoft Entra all'elenco di applicazioni aziendali del tenant. È possibile eseguire questo passaggio nell'interfaccia di amministrazione di Microsoft Entra o tramite l'API Graph.

Se SAP Cloud Identity Services è già configurato per l'accesso Single Sign-On da Microsoft Entra e un'applicazione è già presente nell'elenco di applicazioni aziendali di Microsoft Entra, continuare con la sezione successiva.

Per aggiungere SAP Cloud Identity Services dalla raccolta di applicazioni Microsoft Entra usando l'interfaccia di amministrazione di Microsoft Entra, seguire questa procedura:

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un'applicazione cloud Amministrazione istrator.
  2. Passare a Applicazioni di identità>Applicazioni>aziendali>Nuova applicazione.
  3. Per aggiungere l'app dalla raccolta, digitare SAP Cloud Identity Services nella casella di ricerca.
  4. Selezionare SAP Cloud Identity Services nel pannello dei risultati e quindi aggiungere l'app. Attendere alcuni secondi che l'app venga aggiunta al tenant.

Configurare il provisioning utenti automatico in SAP Cloud Identity Services

Questa sezione illustra la procedura per configurare il servizio di provisioning Di Microsoft Entra per creare, aggiornare e disabilitare gli utenti in SAP Cloud Identity Services in base alle assegnazioni utente a un'applicazione in Microsoft Entra ID.

Per configurare il provisioning utenti automatico per SAP Cloud Identity Services in Microsoft Entra ID:

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un'applicazione cloud Amministrazione istrator.

  2. Passare a Applicazioni di identità>Applicazioni aziendali>

    Screenshot del pannello Applicazioni aziendali.

  3. Nell'elenco delle applicazioni selezionare l'applicazione SAP Cloud Identity Services.

    Screenshot del collegamento di SAP Cloud Identity Services nell'elenco delle applicazioni.

  4. Seleziona la scheda Proprietà.

  5. Verificare che l'opzione Assegnazione obbligatoria? sia impostata su . Se è impostata su No, tutti gli utenti nella directory, incluse le identità esterne, possono accedere all'applicazione e non è possibile esaminare l'accesso all'applicazione.

  6. Selezionare la scheda Provisioning.

    Screenshot delle opzioni di gestione con l'opzione Provisioning evidenziata.

  7. Impostare Modalità di provisioning su Automatico.

    Screenshot dell'elenco a discesa Modalità di provisioning con l'opzione Automatico evidenziata.

  8. Nella sezione Amministrazione Credentials (Credenziali) immettere https://<tenantID>.accounts.ondemand.com/service/scimo https://<tenantid>.trial-accounts.ondemand.com/service/scim se una versione di valutazione con l'ID tenant di SAP Cloud Identity Services nell'URL del tenant. Immettere i valori ID client e Segreto client recuperati in precedenza rispettivamente in Amministrazione Nome utente e Amministrazione Password. Fare clic su Test Connessione ion per assicurarsi che Microsoft Entra ID possa connettersi a SAP Cloud Identity Services. Se la connessione non riesce, verificare che l'account di sistema SAP Cloud Identity Services disponga delle autorizzazioni Amministrazione, il segreto sia ancora valido e riprovare.

    Screenshot dell'URL del tenant e del token.

  9. Nel campo Messaggio di posta elettronica di notifica immettere l'indirizzo di posta elettronica di una persona o un gruppo che riceverà le notifiche di errore relative al provisioning e selezionare la casella di controllo Invia una notifica di posta elettronica in caso di errore.

    Screenshot del messaggio di posta elettronica di notifica.

  10. Fare clic su Salva.

  11. Nella sezione Mapping selezionare ProvisionIng Microsoft Entra ID users (Effettuare il provisioning degli utenti di Microsoft Entra ID).

    Screenshot dei mapping utente di SAP Cloud Identity Services.

  12. Esaminare gli attributi utente sincronizzati da Microsoft Entra ID a SAP Cloud Identity Services nella sezione Mapping attributi . Se gli attributi non vengono visualizzati in SAP Cloud Identity Services come destinazione per il mapping, selezionare Mostra opzioni avanzate e selezionare Modifica elenco di attributi per SAP Cloud Platform Identity Authentication Service per modificare l'elenco degli attributi supportati. Aggiungere gli attributi del tenant di SAP Cloud Identity Services.

  13. Esaminare e registrare gli attributi di origine e di destinazione selezionati come proprietà corrispondenti , mapping con precedenza corrispondente, perché questi attributi vengono usati per trovare le corrispondenze con gli account utente in SAP Cloud Identity Services per il servizio di provisioning Di Microsoft Entra per determinare se creare un nuovo utente o aggiornare un utente esistente. Per altre informazioni sulla corrispondenza, vedere Corrispondenza degli utenti nei sistemi di origine e di destinazione. In un passaggio successivo si garantisce che gli utenti già in SAP Cloud Identity Services abbiano gli attributi selezionati come proprietà corrispondenti popolate per impedire la creazione di utenti duplicati.

  14. Verificare che sia presente un mapping di attributi per IsSoftDeletedo una funzione contenente IsSoftDeleted, mappata a un attributo dell'applicazione. Quando un utente non viene assegnato dall'applicazione, eliminato soft-delete in Microsoft Entra ID o bloccato dall'accesso, il servizio di provisioning Microsoft Entra aggiornerà l'attributo mappato a isSoftDeleted. Se non viene eseguito il mapping di alcun attributo, gli utenti che in seguito non vengono assegnati dal ruolo applicazione continueranno a esistere nell'archivio dati dell'applicazione.

  15. Aggiungere eventuali mapping aggiuntivi richiesti dai sistemi SAP cloud Identity Services o da sistemi SAP di destinazione downstream.

  16. Selezionare il pulsante Salva per eseguire il commit delle modifiche.

    Attributo Type Supportato per il filtro Richiesto da SAP Cloud Identity Services
    userName String
    emails[type eq "work"].value String
    active Booleano
    displayName String
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager Riferimento
    addresses[type eq "work"].country String
    addresses[type eq "work"].locality String
    addresses[type eq "work"].postalCode String
    addresses[type eq "work"].region String
    addresses[type eq "work"].streetAddress String
    name.givenName String
    name.familyName String
    name.honorificPrefix String
    phoneNumbers[type eq "fax"].value String
    phoneNumbers[type eq "mobile"].value String
    phoneNumbers[type eq "work"].value String
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:costCenter String
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department String
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:division String
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber String
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:organization String
    locale String
    timezone String
    userType String
    company String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute1 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute2 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute3 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute4 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute5 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute6 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute7 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute8 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute9 String
    urn:sap:cloud:scim:schemas:extension:custom:2.0:User:attributes:customAttribute10 String
    sendMail String
    mailVerified String
  17. Per configurare i filtri di ambito, fare riferimento alle istruzioni fornite nell'esercitazione sui filtri per la definizione dell'ambito.

  18. Per abilitare il servizio di provisioning Di Microsoft Entra per SAP Cloud Identity Services, impostare Stato del provisioning su Sì nella sezione Impostazioni.

    Screenshot dell'interruttore Stato provisioning attivato.

  19. Per il valore di Ambito nella sezione Impostazioni selezionare Sincronizza solo utenti e gruppi assegnati.

    Screenshot dell'ambito di provisioning.

  20. Quando si è pronti per il provisioning, fare clic su Salva.

    Screenshot del salvataggio della configurazione del provisioning.

L'operazione avvia la sincronizzazione iniziale di tutti gli utenti definiti in Ambito nella sezione Impostazioni. Se l'ambito è impostato su Sincronizza solo utenti e gruppi assegnati e nessun utente o gruppo è stato assegnato all'applicazione, non verrà eseguita alcuna sincronizzazione, finché gli utenti non vengono assegnati all'applicazione.

Effettuare il provisioning di un nuovo utente di test da Microsoft Entra ID a SAP Cloud Identity Services

È consigliabile assegnare un singolo utente di test di Microsoft Entra a SAP Cloud Identity Services per testare la configurazione del provisioning utenti automatico.

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un'applicazione cloud Amministrazione istrator e un utente Amministrazione istrator.
  2. Passare a Identità>Utenti>Tutti gli utenti.
  3. Selezionare Nuovo utente>Creare nuovo utente.
  4. Digitare il nome dell'entità utente e il nome visualizzato del nuovo utente di test. Il nome dell'entità utente deve essere univoco e non lo stesso di qualsiasi utente microsoft Entra o utente di SAP Cloud Identity Services corrente o precedente. Selezionare Rivedi e crea e quindi Crea.
  5. Dopo aver creato l'utente di test, passare a Applicazioni> aziendali di identità.>
  6. Selezionare l'applicazione SAP Cloud Identity Services.
  7. Selezionare Utenti e gruppi e quindi Aggiungi utente/gruppo.
  8. Nella casella di testo Utenti e gruppi selezionare Nessuno selezionato e nella casella di testo digitare il nome dell'entità utente dell'utente di test.
  9. Selezionare Seleziona e quindi Assegna.
  10. Selezionare Provisioning e quindi provisioningsu richiesta.
  11. Nella casella di testo Selezionare un utente o un gruppo digitare il nome dell'entità utente dell'utente di test.
  12. Fare clic su Provision (Provision).
  13. Attendere che venga completato il provisioning. In caso di esito positivo, verrà visualizzato il messaggio Modified attributes (successful).

Facoltativamente, è anche possibile verificare il provisioning del servizio di provisioning Di Microsoft Entra quando un utente esce dall'ambito dell'applicazione.

  1. Selezionare Utenti e gruppi.
  2. Selezionare l'utente di test e quindi selezionare Rimuovi.
  3. Dopo aver rimosso l'utente di test, selezionare Provisioning e quindi provisioning su richiesta.
  4. Nella casella di testo Selezionare un utente o un gruppo digitare il nome dell'entità utente dell'utente di test appena de-assegnato.
  5. Fare clic su Provision (Provision).
  6. Attendere che venga completato il provisioning.

Infine, è possibile rimuovere l'utente di test dall'ID Microsoft Entra.

  1. Passare a Identità>Utenti>Tutti gli utenti.
  2. Selezionare l'utente di test, selezionare Elimina e selezionare OK. Questa azione elimina soft-delete l'utente di test da Microsoft Entra ID.

È anche possibile rimuovere l'utente di test da SAP Cloud Identity Services.

Verificare che gli utenti di SAP Cloud Identity Services esistenti dispongano degli attributi di corrispondenza necessari

Prima di assegnare utenti non di test all'applicazione SAP Cloud Identity Services in Microsoft Entra ID, è necessario assicurarsi che gli utenti già presenti in SAP Cloud Identity Services che rappresentino gli stessi utenti di Microsoft Entra ID, abbiano gli attributi di mapping popolati nei servizi SAP Cloud Identity.

Nel mapping del provisioning, gli attributi selezionati come proprietà corrispondenti vengono usati per trovare le corrispondenze con gli account utente in Microsoft Entra ID con gli account utente in SAP Cloud Identity Services. Se è presente un utente in Microsoft Entra ID senza corrispondenza in SAP Cloud Identity Services, il servizio di provisioning Di Microsoft Entra tenterà di creare un nuovo utente. Se è presente un utente in Microsoft Entra ID e una corrispondenza in SAP Cloud Identity Services, il servizio di provisioning Di Microsoft Entra aggiornerà l'utente di SAP Cloud Identity Services. Per questo motivo, è necessario assicurarsi che gli utenti già in SAP Cloud Identity Services abbiano gli attributi selezionati come proprietà corrispondenti popolate. In caso contrario, è possibile creare utenti duplicati. Se è necessario modificare l'attributo corrispondente nel mapping dell'attributo dell'applicazione Microsoft Entra, vedere utenti corrispondenti nei sistemi di origine e di destinazione.

  1. Accedere alla console https://<tenantID>.accounts.ondemand.com/admin di SAP Cloud Identity Services Amministrazione o https://<tenantID>.trial-accounts.ondemand.com/admin a una versione di valutazione.

  2. Passare a Utenti e autorizzazioni > Esporta utenti.

  3. Selezionare tutti gli attributi necessari per associare gli utenti di Microsoft Entra a quelli in SAP. Questi attributi includono gli SCIM IDattributi , userName, emailse altri attributi che è possibile usare nei sistemi SAP come identificatori.

  4. Selezionare Esporta e attendere che il browser scarichi il file CSV.

  5. Aprire una finestra di PowerShell.

  6. Digitare lo script seguente in un editor. Nella riga 1, se è stato selezionato un attributo corrispondente diverso da userName, modificare il valore della sapScimUserNameField variabile impostando il nome dell'attributo SAP Cloud Identity Services. Nella riga 2 modificare l'argomento impostando il nome del file CSV esportato da Users-exported-from-sap.csv al nome del file scaricato.

    $sapScimUserNameField = "userName"
    $existingSapUsers = import-csv -Path ".\Users-exported-from-sap.csv" -Encoding UTF8
    $count = 0
    $warn = 0
    foreach ($u in $existingSapUsers) {
     $id = $u.id
     if (($null -eq $id) -or ($id.length -eq 0)) {
         write-error "Exported CSV file does not contain the id attribute of SAP Cloud Identity Services users."
         throw "id attribute not available, re-export"
         return
     }
     $count++
     $userName = $u.$sapScimUserNameField
     if (($null -eq $userName) -or ($userName.length -eq 0)) {
         write-warning "SAP Cloud Identity Services user $id does not have a $sapScimUserNameField attribute populated"
         $warn++
     }
    }
    write-output "$warn of $count users in SAP Cloud Identity Services did not have the $sapScimUserNameFIeld attribute populated."
    
  7. Eseguire lo script. Al termine dello script, se uno o più utenti non hanno l'attributo di corrispondenza necessario, cercare tali utenti nel file CSV esportato o nella console di SAP Cloud Identity Services Amministrazione Console. Se questi utenti sono presenti anche in Microsoft Entra, sarà necessario prima aggiornare la rappresentazione di SAP Cloud Identity Services di tali utenti in modo che abbiano l'attributo corrispondente popolato.

  8. Dopo aver aggiornato gli attributi di tali utenti in SAP Cloud Identity Services, quindi esportare nuovamente gli utenti da SAP Cloud Identity Services, come descritto nei passaggi da 2 a 5 e PowerShell in questa sezione, per verificare che nessun utente in SAP Cloud Identity Services non contenga gli attributi corrispondenti che impediscono il provisioning a tali utenti.

Ora che si dispone di un elenco di tutti gli utenti ottenuti da SAP Cloud Identity Services, è possibile associare gli utenti dall'archivio dati dell'applicazione, con gli utenti già in Microsoft Entra ID, per determinare quali utenti devono essere inclusi nell'ambito per il provisioning.

Recuperare gli ID degli utenti in Microsoft Entra ID

Questa sezione illustra come interagire con Microsoft Entra ID usando i cmdlet di PowerShell di Microsoft Graph.

La prima volta che l'organizzazione usa questi cmdlet per questo scenario, è necessario trovarsi in un ruolo globale Amministrazione istrator per consentire l'uso di Microsoft Graph PowerShell nel tenant. Le interazioni successive possono usare un ruolo con privilegi inferiori, ad esempio:

  • Utente Amministrazione istrator, se si prevede di creare nuovi utenti.
  • Application Amministrazione istrator o Identity Governance Amministrazione istrator, se si gestiscono solo le assegnazioni di ruolo dell'applicazione.
  1. Aprire PowerShell.

  2. Se i moduli di Microsoft Graph PowerShell non sono già installati, installare il Microsoft.Graph.Users modulo e altri usando questo comando:

    Install-Module Microsoft.Graph
    

    Se i moduli sono già installati, assicurarsi di usare una versione recente:

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Connessione a Microsoft Entra ID:

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Se è la prima volta che è stato usato questo comando, potrebbe essere necessario fornire il consenso per consentire agli strumenti della riga di comando di Microsoft Graph di avere queste autorizzazioni.

  5. Leggere l'elenco degli utenti ottenuti dall'archivio dati dell'applicazione nella sessione di PowerShell. Se l'elenco degli utenti si trovava in un file CSV, è possibile usare il cmdlet Import-Csv di PowerShell e specificare il nome del file della sezione precedente come argomento.

    Ad esempio, se il file ottenuto da SAP Cloud Identity Services è denominato Users-exported-from-sap.csv e si trova nella directory corrente, immettere questo comando.

    $filename = ".\Users-exported-from-sap.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    

    Per un altro esempio se si usa un database o una directory, se il file è denominato users.csv e si trova nella directory corrente, immettere questo comando:

    $filename = ".\users.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    
  6. Scegliere la colonna del file users.csv che corrisponderà a un attributo di un utente in Microsoft Entra ID.

    Se si usa SAP Cloud Identity Services, il mapping predefinito è l'attributo userName SAP SCIM con l'attributo userPrincipalNameMICROSOFT Entra ID :

    $db_match_column_name = "userName"
    $azuread_match_attr_name = "userPrincipalName"
    

    Per un altro esempio se si usa un database o una directory, è possibile che siano presenti utenti in un database in cui il valore nella colonna denominata EMail è lo stesso valore dell'attributo userPrincipalNameMicrosoft Entra :

    $db_match_column_name = "EMail"
    $azuread_match_attr_name = "userPrincipalName"
    
  7. Recuperare gli ID di tali utenti in Microsoft Entra ID.

    Lo script di PowerShell seguente usa i $dbusersvalori , $db_match_column_namee $azuread_match_attr_name specificati in precedenza. Eseguirà una query su Microsoft Entra ID per individuare un utente con un attributo con un valore corrispondente per ogni record nel file di origine. Se sono presenti molti utenti nel file ottenuto dall'origine SAP Cloud Identity Services, dal database o dalla directory, il completamento di questo script potrebbe richiedere alcuni minuti. Se non si dispone di un attributo in Microsoft Entra ID che ha il valore e che deve usare un'espressione contains di filtro o un'altra, sarà necessario personalizzare questo script e che nel passaggio 11 riportato di seguito per usare un'espressione di filtro diversa.

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    
  8. Visualizzare i risultati delle query precedenti. Verificare se uno degli utenti in SAP Cloud Identity Services, il database o la directory non è stato possibile trovare in Microsoft Entra ID, a causa di errori o corrispondenze mancanti.

    Lo script di PowerShell seguente visualizzerà i conteggi dei record che non si trovano:

    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Error "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    
  9. Al termine dello script, indicherà un errore se eventuali record dell'origine dati non si trovano in Microsoft Entra ID. Se non tutti i record per gli utenti dell'archivio dati dell'applicazione potrebbero trovarsi come utenti in Microsoft Entra ID, è necessario analizzare quali record non corrispondono e perché.

    Ad esempio, l'indirizzo di posta elettronica di un utente e userPrincipalName potrebbe essere stato modificato nell'ID Microsoft Entra senza aggiornare la proprietà corrispondente mail nell'origine dati dell'applicazione. In alternativa, l'utente potrebbe aver già lasciato l'organizzazione, ma si trova ancora nell'origine dati dell'applicazione. In alternativa, potrebbe essere presente un account fornitore o amministratore con privilegi avanzati nell'origine dati dell'applicazione che non corrisponde a una persona specifica nell'ID Microsoft Entra.

  10. Se sono presenti utenti che non potevano trovarsi in Microsoft Entra ID o non erano attivi e non sono stati in grado di accedere, ma si vuole avere l'accesso esaminato o i relativi attributi aggiornati in SAP Cloud Identity Services, nel database o nella directory, è necessario aggiornare l'applicazione, la regola di corrispondenza o aggiornare o creare utenti di Microsoft Entra per loro. Per altre informazioni sulle modifiche da apportare, vedere Gestire mapping e account utente nelle applicazioni che non corrispondono agli utenti in Microsoft Entra ID.

    Se si sceglie l'opzione di creazione di utenti in Microsoft Entra ID, è possibile creare utenti in blocco usando uno dei due elementi seguenti:

    Assicurarsi che questi nuovi utenti siano popolati con gli attributi necessari per Microsoft Entra ID per associarli in un secondo momento agli utenti esistenti nell'applicazione e gli attributi richiesti dall'ID Microsoft Entra, inclusi userPrincipalName, mailNickname e displayName. Deve userPrincipalName essere univoco tra tutti gli utenti nella directory.

    Ad esempio, si potrebbero avere utenti in un database in cui il valore nella colonna denominata EMail è il valore che si vuole usare come nome dell'entità utente Microsoft Entra, il valore nella colonna Alias contiene il nome alternativo della posta elettronica microsoft Entra ID e il valore nella colonna Full name contiene il nome visualizzato dell'utente:

    $db_display_name_column_name = "Full name"
    $db_user_principal_name_column_name = "Email"
    $db_mail_nickname_column_name = "Alias"
    

    È quindi possibile usare questo script per creare utenti di Microsoft Entra per quelli in SAP Cloud Identity Services, nel database o nella directory che non corrispondono agli utenti in Microsoft Entra ID. Si noti che potrebbe essere necessario modificare questo script per aggiungere altri attributi di Microsoft Entra necessari nell'organizzazione o se non è né mailNicknameuserPrincipalName, per fornire l'attributo $azuread_match_attr_name Microsoft Entra.

    $dbu_missing_columns_list = @()
    $dbu_creation_failed_list = @()
    foreach ($dbu in $dbu_not_matched_list) {
       if (($null -ne $dbu.$db_display_name_column_name -and $dbu.$db_display_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_user_principal_name_column_name -and $dbu.$db_user_principal_name_column_name.Length -gt 0) -and
           ($null -ne $dbu.$db_mail_nickname_column_name -and $dbu.$db_mail_nickname_column_name.Length -gt 0)) {
          $params = @{
             accountEnabled = $false
             displayName = $dbu.$db_display_name_column_name
             mailNickname = $dbu.$db_mail_nickname_column_name
             userPrincipalName = $dbu.$db_user_principal_name_column_name
             passwordProfile = @{
               Password = -join (((48..90) + (96..122)) * 16 | Get-Random -Count 16 | % {[char]$_})
             }
          }
          try {
            New-MgUser -BodyParameter $params
          } catch { $dbu_creation_failed_list += $dbu; throw }
       } else {
          $dbu_missing_columns_list += $dbu
       }
    }
    
  11. Dopo aver aggiunto gli utenti mancanti all'ID Microsoft Entra, eseguire di nuovo lo script del passaggio 7. Eseguire quindi lo script dal passaggio 8. Verificare che non vengano segnalati errori.

    $dbu_not_queried_list = @()
    $dbu_not_matched_list = @()
    $dbu_match_ambiguous_list = @()
    $dbu_query_failed_list = @()
    $azuread_match_id_list = @()
    $azuread_not_enabled_list = @()
    $dbu_values = @()
    $dbu_duplicate_list = @()
    
    foreach ($dbu in $dbusers) { 
       if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { 
          $val = $dbu.$db_match_column_name
          $escval = $val -replace "'","''"
          if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval }
          $filter = $azuread_match_attr_name + " eq '" + $escval + "'"
          try {
             $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop)
             if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else {
                $id = $ul[0].id; 
                $azuread_match_id_list += $id;
                if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id }
             } 
          } catch { $dbu_query_failed_list += $dbu } 
        } else { $dbu_not_queried_list += $dbu }
    }
    
    $dbu_not_queried_count = $dbu_not_queried_list.Count
    if ($dbu_not_queried_count -ne 0) {
      Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name."
    }
    $dbu_duplicate_count = $dbu_duplicate_list.Count
    if ($dbu_duplicate_count -ne 0) {
      Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value"
    }
    $dbu_not_matched_count = $dbu_not_matched_list.Count
    if ($dbu_not_matched_count -ne 0) {
      Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name."
    }
    $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count
    if ($dbu_match_ambiguous_count -ne 0) {
      Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous."
    }
    $dbu_query_failed_count = $dbu_query_failed_list.Count
    if ($dbu_query_failed_count -ne 0) {
      Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors."
    }
    $azuread_not_enabled_count = $azuread_not_enabled_list.Count
    if ($azuread_not_enabled_count -ne 0) {
     Write-Warning "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in."
    }
    if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count -ne 0) {
     Write-Output "You will need to resolve those issues before access of all existing users can be reviewed."
    }
    $azuread_match_count = $azuread_match_id_list.Count
    Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID." 
    

Verificare che gli utenti di Microsoft Entra esistenti dispongano degli attributi necessari

Prima di abilitare il provisioning utenti automatico, è necessario decidere quali utenti in Microsoft Entra ID devono accedere a SAP Cloud Identity Services e quindi verificare che gli utenti abbiano gli attributi necessari in Microsoft Entra ID e che tali attributi siano mappati allo schema previsto di SAP Cloud Identity Services.

  • Per impostazione predefinita, il valore dell'attributo utente userPrincipalName Microsoft Entra viene mappato sia agli userName attributi e emails[type eq "work"].value di SAP Cloud Identity Services. Se gli indirizzi di posta elettronica dell'utente sono diversi dai nomi delle entità utente, potrebbe essere necessario modificare questo mapping.
  • SAP Cloud Identity Services può ignorare i valori dell'attributo postalCode se il formato del codice postale della società non corrisponde al paese della società.
  • Per impostazione predefinita, l'attributo department Microsoft Entra viene mappato all'attributo SAP Cloud Identity Services urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department . Se gli utenti di Microsoft Entra hanno valori dell'attributo department , tali valori devono corrispondere a quelli già configurati in SAP Cloud Identity Services, altrimenti la creazione o l'aggiornamento dell'utente avranno esito negativo. Se i department valori negli utenti di Microsoft Entra non sono coerenti con quelli nell'ambiente SAP, rimuovere il mapping prima di assegnare gli utenti.
  • L'endpoint SCIM di SAP Cloud Identity Services richiede un formato specifico per determinati attributi. Altre informazioni su questi attributi e sul loro formato specifico sono disponibili qui.

Assegnare utenti all'applicazione SAP Cloud Identity Services in Microsoft Entra ID

Microsoft Entra ID usa un concetto denominato assegnazioni per determinare quali utenti devono ricevere l'accesso alle app selezionate. Nel contesto del provisioning utenti automatico, se il valore Impostazioni di Ambito è Sincronizza solo utenti e gruppi assegnati, solo gli utenti e i gruppi assegnati a un ruolo applicazione di tale applicazione in Microsoft Entra ID vengono sincronizzati con SAP Cloud Identity Services. Quando si assegna un utente a SAP Cloud Identity Services, è necessario selezionare qualsiasi ruolo specifico dell'applicazione valido(se disponibile) nella finestra di dialogo di assegnazione. Gli utenti con il ruolo Accesso predefinito vengono esclusi dal provisioning. Attualmente l'unico ruolo disponibile per SAP Cloud Identity Services è User.

Se il provisioning è già stato abilitato per l'applicazione, verificare che il provisioning dell'applicazione non sia in quarantena prima di assegnare più utenti all'applicazione. Risolvere eventuali problemi che causano la quarantena, prima di procedere.

Verificare la presenza di utenti presenti in SAP Cloud Identity Services e che non sono già assegnati all'applicazione in Microsoft Entra ID

I passaggi precedenti hanno valutato se gli utenti in SAP Cloud Identity Services esistono anche come utenti in Microsoft Entra ID. Tuttavia, potrebbero non essere tutti attualmente assegnati ai ruoli dell'applicazione in Microsoft Entra ID. I passaggi successivi sono quindi vedere quali utenti non hanno assegnazioni ai ruoli dell'applicazione.

  1. Usando PowerShell, cercare l'ID entità servizio per l'entità servizio dell'applicazione.

    Ad esempio, se l'applicazione aziendale è denominata SAP Cloud Identity Services, immettere i comandi seguenti:

    $azuread_app_name = "SAP Cloud Identity Services"
    $azuread_sp_filter = "displayName eq '" + ($azuread_app_name -replace "'","''") + "'"
    $azuread_sp = Get-MgServicePrincipal -Filter $azuread_sp_filter -All
    
  2. Recuperare gli utenti che hanno attualmente assegnazioni all'applicazione in Microsoft Entra ID.

    Questo si basa sulla $azuread_sp variabile impostata nel comando precedente.

    $azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  3. Confrontare l'elenco degli ID utente degli utenti già presenti sia in SAP Cloud Identity Services che nell'ID Microsoft Entra con gli utenti attualmente assegnati all'applicazione in Microsoft Entra ID. Questo script si basa sulla $azuread_match_id_list variabile impostata nelle sezioni precedenti:

    $azuread_not_in_role_list = @()
    foreach ($id in $azuread_match_id_list) {
       $found = $false
       foreach ($existing in $azuread_existing_assignments) {
          if ($existing.principalId -eq $id) {
             $found = $true; break;
          }
       }
       if ($found -eq $false) { $azuread_not_in_role_list += $id }
    }
    $azuread_not_in_role_count = $azuread_not_in_role_list.Count
    Write-Output "$azuread_not_in_role_count users in the application's data store are not assigned to the application roles."
    

    Se zero utenti non sono assegnati ai ruoli dell'applicazione, a indicare che tutti gli utenti vengono assegnati ai ruoli dell'applicazione, ciò indica che non sono presenti utenti in comune in Microsoft Entra ID e SAP Cloud Identity Services, quindi non sono necessarie modifiche. Tuttavia, se uno o più utenti già in SAP Cloud Identity Services non sono attualmente assegnati ai ruoli dell'applicazione, è necessario continuare la procedura e aggiungerli a uno dei ruoli dell'applicazione.

  4. Selezionare il User ruolo dell'entità servizio dell'applicazione.

    $azuread_app_role_name = "User"
    $azuread_app_role_id = ($azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User" -and $_.DisplayName -eq "User"}).Id
    if ($null -eq $azuread_app_role_id) { write-error "role $azuread_app_role_name not located in application manifest"}
    
  5. Creare assegnazioni di ruolo dell'applicazione per gli utenti che sono già presenti in SAP Cloud Identity Services e Microsoft Entra e non hanno attualmente assegnazioni di ruolo all'applicazione:

    foreach ($u in $azuread_not_in_role_list) {
       $res = New-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -AppRoleId $azuread_app_role_id -PrincipalId $u -ResourceId $azuread_sp.Id
    }
    
  6. Attendere un minuto per la propagazione delle modifiche all'interno di Microsoft Entra ID.

  7. Nel successivo ciclo di provisioning di Microsoft Entra, il servizio di provisioning Microsoft Entra confronta la rappresentazione di tali utenti assegnati all'applicazione, con la rappresentazione in SAP Cloud Identity Services e aggiorna gli utenti di SAP Cloud Identity Services in modo che abbiano gli attributi di Microsoft Entra ID.

Assegnare gli utenti rimanenti e monitorare la sincronizzazione iniziale

Al termine del test, viene eseguito correttamente il provisioning di un utente in SAP Cloud Identity Services e tutti gli utenti esistenti di SAP Cloud Identity Services vengono assegnati al ruolo applicazione, è possibile assegnare qualsiasi altro utente autorizzato all'applicazione SAP Cloud Identity Services seguendo una delle istruzioni riportate di seguito:

Dopo che gli utenti sono assegnati al ruolo applicazione e sono nell'ambito del provisioning, il servizio di provisioning Di Microsoft Entra eseguirà il provisioning in SAP Cloud Identity Services. Si noti che la sincronizzazione iniziale richiede più tempo rispetto alle sincronizzazioni successive, che si verificano circa ogni 40 minuti, purché il servizio di provisioning di Microsoft Entra sia in esecuzione.

Se non viene visualizzato il provisioning degli utenti, vedere la procedura descritta nella guida alla risoluzione dei problemi per nessun utente di cui è stato effettuato il provisioning. Controllare quindi il log di provisioning tramite l'interfaccia di amministrazione di Microsoft Entra o le API Graph. Filtrare il log in base allo stato Errore. Se si verificano errori con errorCode of DuplicateTargetEntries, indica un'ambiguità nelle regole di corrispondenza del provisioning e sarà necessario aggiornare gli utenti di Microsoft Entra o i mapping usati per la corrispondenza per garantire che ogni utente di Microsoft Entra corrisponda a un utente dell'applicazione. Filtrare quindi il log con l'azione Crea e stato Ignorato. Se gli utenti sono stati ignorati con il codice SkipReason di NotEffectivelyEntitled, questo potrebbe indicare che gli account utente in Microsoft Entra ID non sono stati confrontati perché lo stato dell'account utente era Disabilitato.

Configurare l'accesso Single Sign-On

È anche possibile scegliere di abilitare l'accesso Single Sign-On basato su SAML per SAP Cloud Identity Services, seguendo le istruzioni fornite nell'esercitazione sull'accesso Single Sign-On di SAP Cloud Identity Services. L'accesso Single Sign-On può essere configurato indipendentemente dal provisioning utenti automatico, anche se queste due funzionalità sono complementari.

Monitorare il provisioning

È possibile usare la sezione Dettagli sincronizzazione per monitorare lo stato di avanzamento e seguire i collegamenti al report delle attività di provisioning, che descrive tutte le azioni eseguite dal servizio di provisioning Microsoft Entra in SAP Cloud Identity Services. È anche possibile monitorare il progetto di provisioning tramite le API Microsoft Graph.

Per altre informazioni su come leggere i log di provisioning di Microsoft Entra, vedere Creazione di report sul provisioning automatico degli account utente.

Gestire le assegnazioni di ruolo dell'applicazione

Man mano che gli utenti assegnati all'applicazione vengono aggiornati in Microsoft Entra ID, tali modifiche verranno automaticamente sottoposte a provisioning in SAP Cloud Identity Services.

Se si dispone di Microsoft Entra ID Governance, è possibile automatizzare le modifiche alle assegnazioni di ruolo dell'applicazione per SAP Cloud Identity Services in Microsoft Entra ID, per aggiungere o rimuovere assegnazioni come persone che si uniscono all'organizzazione o lasciare o modificare i ruoli.

Altre risorse

Passaggi successivi