Tutorial: configurar o SAP Cloud Identity Services para provisionamento automático de usuário

Este tutorial demonstra as etapas para configurar o provisionamento do Microsoft Entra ID para o SAP Cloud Identity Services. A meta é configurar o Microsoft Entra ID para provisionar e desprovisionar automaticamente os usuários para o SAP Cloud Identity Services, para que esses usuários possam se autenticar no SAP Cloud Identity Services e ter acesso a outras cargas de trabalho SAP. O SAP Cloud Identity Services dá suporte ao provisionamento de seu diretório de identidade local para outros aplicativos SAP como sistemas de destino.

Observação

Este tutorial descreve um conector interno no serviço de provisionamento de usuários do Microsoft Entra. Para obter detalhes importantes sobre o que esse serviço faz, como ele funciona e perguntas frequentes, confira Automatizar o provisionamento e o desprovisionamento de usuários para aplicativos SaaS com o Microsoft Entra ID. O SAP Cloud Identity Services também tem seu próprio conector separado para ler usuários e grupos do Microsoft Entra ID. Para obter mais informações, confira SAP Cloud Identity Services – Provisionamento de identidade – Microsoft Entra ID como um sistema de origem.

Pré-requisitos

O cenário descrito neste tutorial pressupõe que você já tem os seguintes pré-requisitos:

Observação

Esta integração também está disponível para uso no ambiente de nuvem do Microsoft Entra para o Governo dos EUA. Você pode encontrar esse aplicativo na Galeria de Aplicativos de Nuvem do Microsoft Entra US Government e configurá-lo da mesma maneira que você faz no ambiente de nuvem pública.

Se você ainda não tiver usuários no Microsoft Entra ID, comece com o tutorial plano de implantação do Microsoft Entra para provisionamento de usuários com aplicativos de origem e destino SAP. Este tutorial ilustra como conectar o Microsoft Entra a fontes confiáveis para a lista de trabalhos em uma organização, como o SAP SuccessFactors. Ele também mostra como usar o Microsoft Entra para configurar identidades para esses trabalhos, para que eles possam entrar em um ou mais aplicativos SAP, como SAP ECC ou SAP S/4HANA.

Se você estiver configurando o provisionamento no SAP Cloud Identity Services em um ambiente de produção, em que você controlará o acesso a cargas de trabalho sap usando o Microsoft Entra ID Governance, examine os pré-requisitos antes de configurar o Microsoft Entra ID para governança de identidade antes de continuar.

Configurar o SAP Cloud Identity Services para provisionamento

  1. Entre no console de administrador do SAP Cloud Identity Services, https://<tenantID>.accounts.ondemand.com/admin ou https://<tenantID>.trial-accounts.ondemand.com/admin se for uma avaliação. Acesse Usuários e Autorizações > Administradores.

    Captura de tela do console de administrador do SAP Cloud Identity Services.

  2. Pressione o botão +Adicionar no painel esquerdo para adicionar um novo administrador à lista. Escolha Adicionar Sistema e digite o nome do sistema.

    Observação

    A identidade do administrador no SAP Cloud Identity Services deve ser do tipo Sistema. Um usuário administrador não poderá se autenticar na API do SAP SCIM ao provisionar. O SAP Cloud Identity Services não permite que o nome de um sistema seja alterado depois que ele é criado.

  3. Em Configurar Autorizações, alterne o botão de alternância para ativar as opções Gerenciar Usuários. Em seguida, clique em Salvar para criar o sistema.

    Captura de tela de Adicionar SCIM no SAP Cloud Identity Services.

  4. Depois que o sistema de administrador for criado, adicione um novo segredo a esse sistema.

  5. Copie a ID do cliente e o segredo do cliente que é gerado pelo SAP. Esses valores serão inseridos nos campos Nome de usuário do administrador e Senha do administrador, respectivamente. Isso é feito na guia Provisionamento do aplicativo SAP Cloud Identity Services, que você configurará na próxima seção.

  6. O SAP Cloud Identity Services pode ter mapeamentos para um ou mais aplicativos SAP como sistemas de destino. Verifique se existem atributos nos usuários que esses aplicativos SAP exigem para serem provisionados por meio dos SAP Cloud Identity Services. Este tutorial pressupõe que o SAP Cloud Identity Services e os sistemas de destino downstream exijam dois atributos, userName e emails[type eq "work"].value. Se os seus sistemas de destino SAP exigirem outros atributos e eles não fizerem parte do esquema de usuário do Microsoft Entra ID, talvez seja necessário configurar atributos de extensão de sincronização.

Antes de configurar o Microsoft Entra ID para ter o provisionamento automático de usuário no SAP Cloud Identity Services; você precisa adicionar o SAP Cloud Identity Services da galeria de aplicativos do Microsoft Entra à lista de aplicativos empresariais do locatário. Você pode fazer essa etapa no centro de administração do Microsoft Entra ou por meio da API do Graph.

Se o SAP Cloud Identity Services já estiver configurado para logon único do Microsoft Entra e um aplicativo já estiver presente na sua lista de aplicativos empresariais do Microsoft Entra, continue na próxima seção.

Para adicionar o SAP Cloud Identity Services da galeria de aplicativos do Microsoft Entra usando o centro de administração do Microsoft Entra, execute as seguintes etapas:

  1. Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativo de nuvem.
  2. Navegue até Identidade>Aplicativos>Aplicativos empresariais>Novo aplicativo.
  3. Para adicionar o aplicativo por meio da galeria, digite SAP Cloud Identity Services na caixa de pesquisa.
  4. Selecione SAP Cloud Identity Services no painel de resultados e adicione o aplicativo. Aguarde alguns segundos enquanto o aplicativo é adicionado ao seu locatário.

Configurar o provisionamento automático de usuário para o SAP Cloud Identity Services

Esta seção orienta você sobre as etapas para configurar o serviço de provisionamento do Microsoft Entra para criar, atualizar e desabilitar usuários no SAP Cloud Identity Services com base em atribuições de usuário para um aplicativo no Microsoft Entra ID.

Para configurar o provisionamento automático de usuário para o SAP Cloud Identity Services no Microsoft Entra ID:

  1. Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativo de nuvem.

  2. Navegue até Identidade>Aplicativos>Aplicativos empresariais

    Captura de tela da folha de aplicativos empresariais.

  3. Na lista de aplicativos, selecione o aplicativo, SAP Cloud Identity Services.

    Captura de tela do link do SAP Cloud Identity Services na lista de Aplicativos.

  4. Clique na guia Propriedades.

  5. Verifique se a opção Atribuição necessária? está definida como Sim. Se ela estiver definida como Não, todos os usuários no diretório, incluindo as identidades externas, poderão acessar o aplicativo e você não poderá revisar o acesso a ele.

  6. Selecione a guia Provisionamento.

    Captura de tela das opções Gerenciar com a opção Provisionamento destacada.

  7. Defina o Modo de Provisionamento como Automático.

    Captura de tela da lista suspensa Modo de Provisionamento com a opção Automático destacada.

  8. Na seção Credenciais de administrador, na entrada https://<tenantID>.accounts.ondemand.com/service/scim, ou https://<tenantid>.trial-accounts.ondemand.com/service/scim se for uma avaliação, com a ID do locatário do SAP Cloud Identity Services na URL do locatário. Insira os valores da ID do cliente e do Segredo do cliente recuperados anteriormente em Nome de usuário do administrador e Senha do administrador, respectivamente. Clique em Testar Conexão para garantir que o Microsoft Entra ID possa se conectar ao SAP Cloud Identity Services. Se a conexão falhar, certifique-se de que a sua conta do sistema SAP Cloud Identity Services tem permissões de administrador e de que o segredo ainda seja válido e tente novamente.

    Captura de tela da URL e do token do locatário.

  9. No campo Notificação por Email, insira o endereço de email de uma pessoa ou grupo que deverá receber as notificações de erro de provisionamento e selecione a caixa de seleção - Enviar uma notificação por email quando ocorrer uma falha.

    Captura de tela do Email de Notificação.

  10. Clique em Save (Salvar).

  11. Na seção Mapeamentos, selecione Provisionar usuários do Microsoft Entra ID.

    Captura de tela dos mapeamentos de usuário do SAP Cloud Identity Services.

  12. Revise os atributos do usuário que são sincronizados do Microsoft Entra ID para o SAP Cloud Identity Services na seção Mapeamento de atributos. Se você não vir os atributos em seus Serviços de Identidade de Nuvem do SAP disponíveis como um destino para mapeamento, selecione Mostrar opções avançadas e selecione Editar lista de atributos para o serviço SAP Cloud Platform Identity Authentication para editar a lista de atributos com suporte. Adicione os atributos do locatário do SAP Cloud Identity Services.

  13. Examine e registre os atributos de origem e destino selecionados como propriedades correspondentes, mapeamentos que têm uma Precedência correspondente, pois esses atributos são usados para corresponder às contas de usuário no SAP Cloud Identity Services para o serviço de provisionamento do Microsoft Entra para determinar se um novo usuário ou atualizar um usuário existente. Para obter mais informações sobre correspondência, confira correspondência de usuários nos sistemas de origem e de destino. Em uma etapa subsequente, você garantirá que todos os usuários que já estão no SAP Cloud Identity Services tenham os atributos selecionados como propriedades correspondentes preenchidos, para impedir que usuários duplicados sejam criados.

  14. Confirme se há um mapeamento de atributo para IsSoftDeleted, ou uma função que contém IsSoftDeleted, mapeado para um atributo do aplicativo. Quando um usuário tiver a atribuição ao aplicativo removida ou for excluído de forma reversível no Microsoft Entra ID ou impedido de entrar, o serviço de provisionamento do Microsoft Entra atualizará o atributo mapeado para isSoftDeleted. Se nenhum atributo for mapeado, os usuários que tiverem posteriormente a atribuição removida da função de aplicativo continuarão a existir no armazenamento de dados do aplicativo.

  15. Adicione todos os mapeamentos adicionais que os seus SAP Cloud Identity Services ou sistemas SAP de destino downstream exigem.

  16. Selecione o botão Salvar para confirmar as alterações.

    Atributo Type Com suporte para filtragem Exigido pelo SAP Cloud Identity Services
    userName String
    emails[type eq "work"].value String
    active Booliano
    displayName String
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager Referência
    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. Para configurar filtros de escopo, consulte as seguintes instruções fornecidas no tutorial do Filtro de Escopo.

  18. Para habilitar o serviço de provisionamento do Microsoft Entra ID para o SAP Cloud Identity Services, altere o Status de provisionamento para Ativado na seção Configurações.

    Captura de tela de alternância ativada para o status de provisionamento.

  19. Para o valor de Escopo na seção Configurações, selecione Sincronizar somente usuários e grupos atribuídos.

    Captura de tela do Escopo de Provisionamento.

  20. Quando você estiver pronto para provisionar, clique em Salvar.

    Captura de tela da configuração de provisionamento salva.

Essa operação inicia a sincronização inicial de todos os usuários definidos em Escopo, na seção Configurações. Se você tiver o escopo definido como Sincronizar somente usuários e grupos atribuídos e nenhum usuário ou grupo tiver sido atribuído ao aplicativo, nenhuma sincronização ocorrerá até que os usuários sejam atribuídos ao aplicativo.

Provisionar um novo usuário de teste do Microsoft Entra ID para o SAP Cloud Identity Services

É recomendável que um único novo usuário de teste do Microsoft Entra seja atribuído ao SAP Cloud Identity Services para testar a configuração de provisionamento automático de usuário.

  1. Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de aplicativos de nuvem e um Administrador de usuários.
  2. Navegue até Identidade>Usuários>Todos os usuários.
  3. Selecione Novo Usuário>Criar Novo Usuário.
  4. Digite o Nome da entidade de usuário e o Nome de exibição do novo usuário de teste. O nome da entidade de usuário deve ser exclusivo e não o mesmo de qualquer usuário atual ou anterior do Microsoft Entra ou usuário do SAP Cloud Identity Services. Selecione Examinar + criar e Criar.
  5. Depois que o usuário de teste for criado, navegue até Identidade>Aplicativos>Aplicativos empresariais.
  6. Selecione o aplicativo SAP Cloud Identity Services.
  7. Selecione Usuários e grupos e, em seguida, selecione Adicionar usuário/grupo.
  8. Nos Usuários e grupos, selecione Nenhum selecionado e, na caixa de texto, digite o nome da entidade de usuário do usuário de teste.
  9. Selecione Selecionar e, em seguida, Atribuir.
  10. Selecione Provisionamento e, em seguida, selecione Provisionar sob demanda.
  11. Na caixa de texto Selecionar um usuário ou grupo, digite o nome da entidade de usuário do usuário de teste.
  12. Clique em Provisionar.
  13. Aguarde a conclusão do provisionamento. Se tiver êxito, você verá a mensagem Modified attributes (successful).

Opcionalmente, você também pode verificar o que o serviço de provisionamento do Microsoft Entra provisionará quando um usuário sair do escopo do aplicativo.

  1. Selecione Usuários e grupos.
  2. Selecione o usuário de teste e, em seguida, selecione Remover.
  3. Depois que o usuário de teste for removido, selecione Provisionamento e, em seguida, selecione Provisionar sob demanda.
  4. Na caixa de texto Selecionar um usuário ou grupo, digite o nome da entidade de usuário do usuário de teste cuja atribuição acabou de ser removida.
  5. Clique em Provisionar.
  6. Aguarde a conclusão do provisionamento.

Por fim, você pode remover o usuário de teste do Microsoft Entra ID.

  1. Navegue até Identidade>Usuários>Todos os usuários.
  2. Selecione o usuário de teste, selecione Excluir e selecione OK. Esta ação exclui o usuário de teste do Microsoft Entra ID.

Você também pode remover o usuário de teste do SAP Cloud Identity Services.

Certifique-se de que os usuários existentes do SAP Cloud Identity Services tenham os atributos de correspondência necessários

Antes de atribuir usuários sem teste ao aplicativo SAP Cloud Identity Services no Microsoft Entra ID, você deve garantir que todos os usuários que já estejam no SAP Cloud Identity Services e que representem as mesmas pessoas que os usuários no Microsoft Entra ID tenham os atributos de mapeamento preenchidos no SAP Cloud Identity Services.

No mapeamento de provisionamento, os atributos selecionados como propriedades correspondentes são usados para corresponder as contas de usuário no Microsoft Entra ID com as contas de usuário no SAP Cloud Identity Services. Se houver um usuário no Microsoft Entra ID sem correspondência no SAP Cloud Identity Services, o serviço de provisionamento do Microsoft Entra tentará criar um novo usuário. Se houver um usuário no Microsoft Entra ID e uma correspondência no SAP Cloud Identity Services, o serviço de provisionamento do Microsoft Entra atualizará esse usuário do SAP Cloud Identity Services. Por esse motivo, você deve garantir que todos os usuários que já estão no SAP Cloud Identity Services tenham os atributos selecionados como propriedades correspondentes preenchidos, caso contrário, poderão ser criados usuários duplicados. Se você precisar alterar o atributo correspondente no mapeamento de atributo de aplicativo do Microsoft Entra, confira correspondência de usuários nos sistemas de origem e de destino.

  1. Entre no console de administrador do SAP Cloud Identity Services, https://<tenantID>.accounts.ondemand.com/admin ou https://<tenantID>.trial-accounts.ondemand.com/admin se for uma avaliação.

  2. Navegue até Usuários e Autorizações > Exportar Usuários.

  3. Selecione todos os atributos necessários para fazer a correspondência dos usuários do Microsoft Entra com os do SAP. Esses atributos incluem SCIM ID, userName, emails e outros atributos que você pode estar usando em seus sistemas SAP como identificadores.

  4. Selecione Exportar e aguarde o navegador baixar o arquivo CSV.

  5. Abra uma janela do PowerShell.

  6. Digite o script a seguir em um editor. Na linha um, se você selecionou um atributo correspondente diferente de userName, altere o valor da variável sapScimUserNameField para o nome do atributo SAP Cloud Identity Services. Na linha dois, altere o argumento para o nome do arquivo CSV exportado de Users-exported-from-sap.csv para o nome do arquivo baixado.

    $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. Execute o script. Quando o script for concluído, se houver um ou mais usuários sem o atributo correspondente necessário, procure esses usuários no arquivo CSV exportado ou no Console de Administração do SAP Cloud Identity Services. Se esses usuários também estiverem presentes no Microsoft Entra, primeiro você precisará atualizar a representação do SAP Cloud Identity Services desses usuários para que eles tenham o atributo correspondente preenchido.

  8. Depois de atualizar os atributos desses usuários no SAP Cloud Identity Services, exporte novamente os usuários do SAP Cloud Identity Services, conforme descrito nas etapas 2 a 5 e etapas do PowerShell nesta seção, para confirmar que nenhum usuário no SAP Cloud Identity Services não possua os atributos correspondentes, o que impediria o provisionamento para esses usuários.

Agora que você tem uma lista de todos os usuários obtidos do SAP Cloud Identity Services, você corresponderá esses usuários do repositório de dados do aplicativo com os usuários já no Microsoft Entra ID, para determinar quais usuários devem estar no escopo do provisionamento.

Recuperar as IDs dos usuários no Microsoft Entra ID

Esta seção mostra como interagir com o Microsoft Entra ID usando cmdlets do PowerShell do Microsoft Graph.

Na primeira vez que sua organização usar esses cmdlets nesse cenário, você precisará ter a função de Administrador global para permitir que o PowerShell do Microsoft Graph seja usado no seu locatário. As interações subsequentes podem usar uma função com privilégios inferiores, como:

  • Administrador de Usuário, caso preveja a criação de usuários.
  • Administrador de aplicativos ou Administrador de governança de identidade, caso esteja apenas gerenciando atribuições de função de aplicativos.
  1. Abra o PowerShell.

  2. Se você ainda não tiver os módulos do PowerShell do Microsoft Graph instalados, instale o módulo Microsoft.Graph.Users e os demais usando este comando:

    Install-Module Microsoft.Graph
    

    Se você já tiver os módulos instalados, verifique se está usando uma versão recente:

    Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
    
  3. Conecte-se ao Microsoft Entra ID:

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Se esta for a primeira vez que você usa este comando, talvez seja necessário dar consentimento para que as ferramentas de linha de comando do Microsoft Graph acessem essas permissões.

  5. Leia a lista de usuários obtida do armazenamento de dados do aplicativo na sessão do PowerShell. Se a lista de usuários estiver em um arquivo CSV, você poderá usar o cmdlet Import-Csv do PowerShell e fornecer o nome do arquivo da seção anterior como argumento.

    Por exemplo, se você tiver um arquivo chamado Users-exported-from-sap.csv que foi obtido do SAP Cloud Identity Services e ele estiver localizado no diretório atual, insira este comando.

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

    Nesse outro exemplo: se você estiver usando um banco de dados ou diretório e o arquivo se chamar users.csv e também estiver localizado no diretório atual, insira este comando:

    $filename = ".\users.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    
  6. Escolha a coluna do arquivo users.csv que corresponderá a um atributo de um usuário no Microsoft Entra ID.

    E se você estiver usando o SAP Cloud Identity Services, o mapeamento padrão será o atributo userName do SAP SCIM com o atributo userPrincipalName do Microsoft Entra ID:

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

    Outro exemplo seria se você estiver usando um banco de dados ou diretório, pode haver usuários em um banco de dados em que o valor na coluna denominada EMail é o mesmo valor do atributo userPrincipalName do Microsoft Entra:

    $db_match_column_name = "EMail"
    $azuread_match_attr_name = "userPrincipalName"
    
  7. Recupere as IDs desses usuários no Microsoft Entra ID.

    O script do PowerShell a seguir usa os valores $dbusers, $db_match_column_name e $azuread_match_attr_name especificados anteriormente. Ele consultará o Microsoft Entra ID para localizar um usuário que tenha um atributo com um valor correspondente para cada registro no arquivo de origem. Se o arquivo obtido do SAP Cloud Identity Services, do banco de dados ou do diretório tiver muitos usuários, prepare-se para aguardar alguns minutos até que o script seja concluído. Se você não tiver um atributo no Microsoft Entra ID que tenha o valor e precisar usar contains ou outra expressão de filtro, será necessário personalizar esse script e o da etapa 11 abaixo para usar uma expressão de filtro diferente.

    $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. Exiba os resultados das consultas anteriores. Veja se algum do usuário que está no SAP Cloud Identity Services, no banco de dados ou no diretório não pôde ser encontrado no Microsoft Entra ID, devido a erros ou correspondências faltando.

    O seguinte script do PowerShell exibirá as contagens de registros que não foram localizados:

    $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. Quando o script for concluído, ele indicará um erro se houver registros da fonte de dados não localizados no Microsoft Entra ID. Se nem todos os registros de usuários do armazenamento de dados do aplicativo puderem ser localizados no Microsoft Entra ID, será necessário investigar os registros que não corresponderam e por quê.

    Por exemplo, o endereço de email e o userPrincipalName de alguém podem ter sido alterados no Microsoft Entra ID sem que a propriedade mail correspondente tenha sido atualizada na fonte de dados do aplicativo. Ou talvez o usuário já tenha deixado a organização, mas ainda continue na fonte de dados do aplicativo. Ou pode haver uma conta de fornecedor ou de superadministrador na fonte de dados do aplicativo que não corresponda a nenhuma pessoa específica no Microsoft Entra ID.

  10. Se houver usuários que não foram localizados no Microsoft Entra ID ou que não estavam ativos e prontos para entrar, mas você quer que eles tenham o acesso revisado ou seus atributos atualizados no SAP Cloud Identity Services, no banco de dados ou no diretório, você precisará atualizar o aplicativo ou a regra de correspondência, ou então atualizar ou criar usuários do Microsoft Entra para eles. Para mais informações sobre quais alterações fazer, confira gerenciar mapeamentos e contas de usuário em aplicativos que encontraram correspondência com os usuários no Microsoft Entra ID.

    Se você optar por criar usuários no Microsoft Entra ID, poderá criar usuários em massa usando:

    Verifique se os novos usuários foram preenchidos com os atributos necessários para que o Microsoft Entra ID combine-os posteriormente com os usuários existentes no aplicativo e com os atributos exigidos pelo Microsoft Entra ID, incluindo userPrincipalName, mailNickname e displayName. O userPrincipalName deve ser único entre todos os usuários no diretório.

    Por exemplo, é possível ter usuários em um banco de dados em que o valor na coluna EMail é o valor que você quer usar como o nome UPN do Microsoft Entra, o valor na coluna Alias contém o apelido de email do Microsoft Entra ID e o valor na coluna Full name contém o nome de exibição do usuário:

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

    Depois, você pode usar este script para criar usuários do Microsoft Entra para aqueles que estão no SAP Cloud Identity Services, no banco de dados ou no diretório que não correspondem aos usuários no Microsoft Entra ID. Observe que talvez seja necessário modificar esse script para adicionar outros atributos do Microsoft Entra necessários em sua organização ou, se $azuread_match_attr_name não for mailNickname nem userPrincipalName, para fornecer esse atributo do 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. Quando adicionar os usuários ausentes ao Microsoft Entra ID, execute o script da etapa 7 novamente. Em seguida, execute o script da etapa 8. Verifique se não há nenhum erro relatado.

    $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." 
    

Certifique-se de que os usuários existentes do Microsoft Entra tenham os atributos necessários

Antes de habilitar o provisionamento automático de usuário, você deve decidir quais usuários no Microsoft Entra ID precisam de acesso ao SAP Cloud Identity Services e, em seguida, você precisa certificar-se de que esses usuários tenham os atributos necessários no Microsoft Entra ID e esses atributos sejam mapeados para o esquema esperado do SAP Cloud Identity Services.

  • Por padrão, o valor do atributo de usuário do Microsoft Entra userPrincipalName é mapeado para o e os atributos userName e emails[type eq "work"].value do SAP Cloud Identity Services. Se os endereços de email do usuário forem diferentes de seus nomes de entidade de usuário, talvez seja necessário alterar esse mapeamento.
  • O SAP Cloud Identity Services poderá ignorar valores do atributo postalCode se o formato de CEP/código postal da empresa não corresponder ao país/região da empresa.
  • Por padrão, o atributo department do Microsoft Entra é mapeado para o atributo urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department do SAP Cloud Identity Services. Se os usuários do Microsoft Entra tiverem valores do atributo department, esses valores deverão corresponder aos departamentos já configurados no SAP Cloud Identity Services; caso contrário, a criação ou atualização do usuário falhará. Se os valores department em seus usuários do Microsoft Entra não forem consistentes com aqueles em seu ambiente SAP, remova o mapeamento antes de atribuir usuários.
  • O ponto de extremidade SCIM do SAP Cloud Identity Services exige que determinados atributos sejam de um formato específico. Você pode saber mais sobre esses atributos e o formato específico deles aqui.

Atribuir usuários ao aplicativo do SAP Cloud Identity Services no Microsoft Entra ID

O Microsoft Entra ID usa um conceito chamado atribuições para determinar quais usuários devem receber acesso aos aplicativos selecionados. No contexto do provisionamento automático de usuário, se o valor de configurações do Escopo for Sincronizar somente usuários e grupos atribuídos, somente os usuários e grupos atribuídos a uma função de aplicativo desse aplicativo no Microsoft Entra ID serão sincronizados com o SAP Cloud Identity Services. Ao atribuir um usuário ao SAP Cloud Identity Services, é necessário selecionar qualquer função específica ao aplicativo válida (se disponível) na caixa de diálogo de atribuição. Usuários com a função Acesso padrão são excluídos do provisionamento. Atualmente, a única função disponível para o SAP Cloud Identity Services é Usuário.

Se o provisionamento já tiver sido habilitado para o aplicativo, verifique se o provisionamento de aplicativos não está em quarentena antes de atribuir mais usuários ao aplicativo. Resolva os problemas que estão causando a quarentena antes de prosseguir.

Verifique se há usuários presentes no SAP Cloud Identity Services que ainda não estão atribuídos ao aplicativo no Microsoft Entra ID

As etapas anteriores avaliaram se os usuários no SAP Cloud Identity Services também existem como usuários no Microsoft Entra ID. No entanto, pode ser que nem todos tenham as funções do aplicativo atribuídas no Microsoft Entra ID. Portanto, as próximas etapas se destinam a ver os usuários que não têm atribuições de funções de aplicativo.

  1. Usando o PowerShell, procure a ID da entidade de serviço para a entidade de serviço do aplicativo.

    Por exemplo, se o nome do aplicativo empresarial for SAP Cloud Identity Services, digite os seguintes comandos:

    $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. Recupere os usuários que atualmente têm atribuições para o aplicativo no Microsoft Entra ID.

    Isso se baseia na variável $azuread_sp definida no comando anterior.

    $azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  3. Compare a lista de IDs de usuário dos usuários que já estão no SAP Cloud Identity Services e no Microsoft Entra ID aos usuários atualmente atribuídos ao aplicativo no Microsoft Entra ID. Este script se baseia na variável $azuread_match_id_list definida nas seções anteriores:

    $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 usuários não forem atribuídos a funções de aplicativo, indicando que todos os usuários são atribuídos a funções de aplicativo, isso indica que não havia usuários em comum entre o Microsoft Entra ID e o SAP Cloud Identity Services, portanto, nenhuma alteração é necessária. No entanto, se um ou mais usuários que já estão no SAP Cloud Identity Services não estiverem atribuídos atualmente às funções de aplicativo, você precisará continuar o procedimento e adicioná-los a uma das funções do aplicativo.

  4. Selecione a função User da entidade de serviço de aplicativo.

    $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. Crie atribuições de função de aplicativo para usuários que já estão presentes no SAP Cloud Identity Services e no Microsoft Entra e atualmente não têm atribuições de função para o aplicativo:

    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. Aguarde um minuto para que as alterações sejam propagadas no Microsoft Entra ID.

  7. No próximo ciclo de provisionamento do Microsoft Entra, o serviço de provisionamento do Microsoft Entra comparará a representação desses usuários atribuídos ao aplicativo à representação no SAP Cloud Identity Services e atualizará os usuários do SAP Cloud Identity Services para ter os atributos do Microsoft Entra ID.

Atribuir usuários restantes e monitorar a sincronização inicial

Depois que o teste tiver sido concluído, um usuário tiver sido provisionado com êxito no SAP Cloud Identity Services, e todos os usuários existentes do SAP Cloud Identity Services tenham sido atribuídos à função de aplicativo, você poderá atribuir quaisquer usuários autorizados adicionais ao aplicativo SAP Cloud Identity Services seguindo uma das instruções aqui:

Depois que os usuários forem atribuídos à função de aplicativo e estiverem no escopo do provisionamento, o serviço de provisionamento do Microsoft Entra os provisionará para o SAP Cloud Identity Services. Observe que a sincronização inicial leva mais tempo para ser executada do que as sincronizações subsequentes, que ocorrem aproximadamente a cada 40 minutos, desde que o serviço de provisionamento do Microsoft Entra esteja em execução.

Se você não vir usuários sendo provisionados, examine as etapas no guia de solução de problemas relacionados ao não provisionamento de usuários. Em seguida, verifique o log de provisionamento por meio do centro de administração do Microsoft Entra ou das APIs do Graph. Filtre o log para o status Falha. Se houver falhas com um ErrorCode de DuplicateTargetEntries, será uma indicação de ambiguidade nas regras de correspondência de provisionamento, e você precisará atualizar os usuários do Microsoft Entra ou os mapeamentos usados para correspondência a fim de garantir que cada usuário do Microsoft Entra corresponda a um usuário do aplicativo. Depois, filtre o log para a ação Criar e o status Ignorado. Se os usuários foram ignorados com o código SkipReason de NotEffectivelyEntitled, pode indicar que não foram encontradas correspondências das contas de usuário no Microsoft Entra ID porque o status da conta de usuário estada Desabilitado.

Configurar logon único

Você também pode optar por habilitar o logon único baseado em SAML para SAP Cloud Identity Services, seguindo as instruções fornecidas no tutorial de logon único do SAP Cloud Identity Services. O logon único pode ser configurado independentemente do provisionamento automático de usuário, embora esses dois recursos sejam complementares.

Monitorar o provisionamento

Use a seção Detalhes de Sincronização para monitorar o progresso e siga os links para o relatório de atividades de provisionamento, que descreve todas as ações executadas pelo serviço de provisionamento do Microsoft Entra ID no SAP Cloud Identity Services. Você também pode monitorar o projeto de provisionamento por meio das APIs do Microsoft Graph.

Para obter mais informações sobre como ler os logs de provisionamento do Microsoft Entra, confira Relatórios sobre o provisionamento automático de contas de usuário.

Manter atribuições de função de aplicativo

À medida que os usuários atribuídos ao aplicativo forem atualizados no Microsoft Entra ID, essas alterações serão provisionadas automaticamente para o SAP Cloud Identity Services.

Se você tiver o Microsoft Entra ID Governance, poderá automatizar as alterações nas atribuições de função de aplicativo para o SAP Cloud Identity Services no Microsoft Entra ID, adicionar ou remover atribuições à medida que as pessoas ingressarem na organização ou sair ou alterar funções.

Mais recursos

Próximas etapas