Tutorial: Configurar o SAP Cloud Identity Services para provisionamento automático de usuários

Este tutorial demonstra as etapas para configurar o provisionamento do Microsoft Entra ID para o SAP Cloud Identity Services. O objetivo é 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 suporta o provisionamento de seu diretório de identidade local para outros aplicativos SAP como sistemas de destino.

Nota

Este tutorial descreve um conector criado no serviço de provisionamento de usuário do Microsoft Entra. Para obter detalhes importantes sobre o que esse serviço faz, como funciona e perguntas frequentes, consulte 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, consulte SAP Cloud Identity Services - Identity Provisioning - Microsoft Entra ID como um sistema de origem.

Pré-requisitos

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

Nota

Essa integração também está disponível para uso no ambiente Microsoft Entra US Government Cloud. Pode encontrar esta aplicação na Microsoft Entra US Government Cloud Application Gallery e configurá-la da mesma forma que faz a partir do ambiente de nuvem pública.

Se você ainda não tiver usuários no Microsoft Entra ID, comece com o plano tutorial implantando o Microsoft Entra para provisionamento de usuários com aplicativos de origem e destino SAP. Esse tutorial ilustra como conectar o Microsoft Entra com fontes autorizadas para a lista de trabalhadores em uma organização, como SAP SuccessFactors. Ele também mostra como usar o Microsoft Entra para configurar identidades para esses trabalhadores, 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, onde controlará o acesso a cargas de trabalho SAP usando o Microsoft Entra ID Governance, revise os pré-requisitos antes de configurar o Microsoft Entra ID para governança de identidade antes de prosseguir.

Configurar o SAP Cloud Identity Services para provisionamento

  1. Faça login no Console de administração do SAP Cloud Identity Services ouhttps://<tenantID>.trial-accounts.ondemand.com/admin, https://<tenantID>.accounts.ondemand.com/admin se for uma versão de avaliação. Navegue até Usuários & Administradores de > Autorizações.

    Captura de tela do console de administração 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.

    Nota

    A identidade do administrador no SAP Cloud Identity Services deve ser do tipo System. Um usuário administrador não poderá se autenticar na API SAP SCIM durante o provisionamento. O SAP Cloud Identity Services não permite que o nome de um sistema seja alterado após sua criação.

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

    Captura de tela do SAP Cloud Identity Services Adicionar SCIM.

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

  5. Copie o ID do Cliente e o Segredo do Cliente gerados 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 seu 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 há atributos nos usuários que esses aplicativos SAP precisam ser provisionados por meio do SAP Cloud Identity Services. Este tutorial pressupõe que o SAP Cloud Identity Services e os sistemas de destino downstream exigem dois atributos, userName e emails[type eq "work"].value. Se os sistemas de destino SAP exigirem outros atributos, e esses 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 provisionamento automático de usuários no SAP Cloud Identity Services, você precisa adicionar o SAP Cloud Identity Services da galeria de aplicativos do Microsoft Entra à lista de aplicativos corporativos do seu 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 corporativos 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 um administrador de aplicativos na nuvem.
  2. Navegue até Identity>Applications>Enterprise applications>Novo aplicativo.
  3. Para adicionar o aplicativo 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ários para o SAP Cloud Identity Services

Esta seção orienta você pelas 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 nas atribuições de usuários a um aplicativo no Microsoft Entra ID.

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

  1. Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.

  2. Navegue até Aplicativos de identidade>>Aplicativos corporativos

    Captura de ecrã da folha Aplicações empresariais.

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

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

  4. Selecione o separador Properties (Propriedades).

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

  6. Selecione o separador Aprovisionamento.

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

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

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

  8. Na seção Credenciais do administrador, insira https://<tenantID>.accounts.ondemand.com/service/scimouhttps://<tenantid>.trial-accounts.ondemand.com/service/scim, se for uma avaliação, com o ID do locatário do SAP Cloud Identity Services na URL do locatário. Insira os valores de ID do Cliente e 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, verifique se a conta do sistema SAP Cloud Identity Services tem permissões de administrador, se o segredo ainda é válido e tente novamente.

    Captura de ecrã do URL e do Token do Inquilino.

  9. No campo Email de notificação, digite o endereço de e-mail de uma pessoa ou grupo que deve receber as notificações de erro de provisionamento e marque a caixa de seleção - Enviar uma notificação por e-mail quando ocorrer uma falha.

    Captura de ecrã do e-mail de notificação.

  10. Clique em Guardar.

  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. Analise os atributos de usuário sincronizados do Microsoft Entra ID para o SAP Cloud Identity Services na seção Mapeamento de atributos. Se você não vir os atributos no SAP Cloud Identity Services disponíveis como destino para mapeamento, selecione Mostrar opções avançadas e selecione Editar lista de atributos para o SAP Cloud Platform Identity Authentication Service para editar a lista de atributos suportados. Adicione os atributos do locatário do SAP Cloud Identity Services.

  13. Analise e registre os atributos de origem e destino selecionados como Propriedades correspondentes , mapeamentos que têm uma precedência de correspondência, pois esses atributos são usados para corresponder às contas de usuário no SAP Cloud Identity Services para o serviço de provisionamento Microsoft Entra para determinar se um novo usuário deve ser criado ou atualizado um usuário existente. Para obter mais informações sobre correspondência, consulte 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 preenchidas, para evitar que usuários duplicados sejam criados.

  14. Confirme se há um mapeamento de atributos para IsSoftDeleted, ou uma função contendo IsSoftDeleted, mapeada para um atributo do aplicativo. Quando um usuário é desatribuído do aplicativo, excluído por software na ID do Microsoft Entra 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 posteriormente não forem atribuídos da função de aplicativo continuarão a existir no armazenamento de dados do aplicativo.

  15. Adicione quaisquer mapeamentos adicionais que seus SAP Cloud Identity Services ou sistemas SAP de destino downstream exijam.

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

    Atributo Type Suportado para filtragem Exigido pelo 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 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 âmbito, veja as instruções seguintes disponibilizadas no Tutorial de filtro de âmbito.

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

    Captura de tela do status de provisionamento ativado.

  19. Para obter 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 estiver pronto para provisionar, clique em Salvar.

    Captura de tela de Salvando a configuração de provisionamento.

Esta 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 Aplicativo na Nuvem e um Administrador de Usuário.
  2. Aceder a Identidade>Utilizadores>Todos os Utilizadores.
  3. Selecione Novo usuário>Criar novo usuário.
  4. Digite o Nome principal do usuário e o Nome para exibição do novo usuário de teste. O nome principal do 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 Rever + criar e Criar.
  5. Depois que o usuário de teste for criado, navegue até Identity>Applications>Enterprise Applications.
  6. Selecione o aplicativo SAP Cloud Identity Services.
  7. Selecione Usuários e grupos e, em seguida, selecione Adicionar usuário/grupo.
  8. Na caixa Usuários e grupos , selecione Nenhum selecionado e, na caixa de texto, digite o nome principal do usuário de teste.
  9. Selecione Selecionar e, em seguida , Atribuir.
  10. Selecione Provisionamento e, em seguida, selecione Provisionamento sob demanda.
  11. Na caixa de texto Selecione um usuário ou grupo , digite o nome principal do usuário de teste.
  12. Clique em Provisionar.
  13. Aguarde a conclusão do provisionamento. Se for bem-sucedido, você verá a mensagem Modified attributes (successful).

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

  1. Selecionar Utilizadores 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 Provisionamento sob demanda.
  4. Na caixa de texto Selecione um usuário ou grupo , digite o nome principal do usuário de teste que acabou de ser desatribuído.
  5. Clique em Provisionar.
  6. Aguarde a conclusão do provisionamento.

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

  1. Aceder a Identidade>Utilizadores>Todos os Utilizadores.
  2. Selecione o usuário de teste, selecione Excluir e selecione OK. Esta ação exclui suavemente o usuário de teste do Microsoft Entra ID.

Em seguida, você também pode remover o usuário de teste do SAP Cloud Identity Services.

Garantir que os usuários existentes do SAP Cloud Identity Services tenham os atributos correspondentes necessários

Antes de atribuir usuários não testados ao aplicativo SAP Cloud Identity Services no Microsoft Entra ID, você deve garantir que todos os usuários já no SAP Cloud Identity Services que representem as mesmas pessoas que os usuários no Microsoft Entra ID tenham os atributos de mapeamento preenchidos nos serviços do SAP Cloud Identity.

No mapeamento de provisionamento, os atributos selecionados como propriedades correspondentes são usados para fazer a correspondência entre as contas de usuário no ID do Microsoft Entra e as contas de usuário no SAP Cloud Identity Services. Se houver um usuário no ID do Microsoft Entra 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 ID do Microsoft Entra 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 preenchidas, caso contrário, usuários duplicados poderão ser criados. Se você precisar alterar o atributo correspondente no mapeamento de atributos do aplicativo Microsoft Entra, consulte Correspondência de usuários nos sistemas de origem e de destino.

  1. Faça login no Console de administração do SAP Cloud Identity Services ouhttps://<tenantID>.trial-accounts.ondemand.com/admin, https://<tenantID>.accounts.ondemand.com/admin se for uma versão de avaliação.

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

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

  4. Selecione Exportar e aguarde até que o navegador baixe o arquivo CSV.

  5. Abra uma janela do PowerShell.

  6. Digite o seguinte script em um editor. Na linha um, se você selecionou um atributo de correspondência diferente de userName, altere o sapScimUserNameField valor da variável para o nome do atributo SAP Cloud Identity Services. Na linha dois, altere o argumento para o nome do arquivo Users-exported-from-sap.csv CSV exportado de 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 de correspondência necessário, procure esses usuários no arquivo CSV exportado ou no SAP Cloud Identity Services Admin Console. Se esses usuários também estiverem presentes no Microsoft Entra, você precisará primeiro atualizar a representação desses usuários do SAP Cloud Identity Services para que eles tenham o atributo correspondente preenchido.

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

Agora que você tem uma lista de todos os usuários obtidos do SAP Cloud Identity Services, fará a correspondência entre esses usuários do armazenamento de dados do aplicativo e os usuários que já estão no Microsoft Entra ID, para determinar quais usuários devem estar no escopo para 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 Microsoft Graph PowerShell .

Na primeira vez que sua organização usar esses cmdlets para esse cenário, você precisará estar em uma função de Administrador Global para permitir que o Microsoft Graph PowerShell seja usado em seu locatário. As interações subsequentes podem usar um papel menos privilegiado, como:

  • Administrador de usuários, se você prevê a criação de novos usuários.
  • Administrador de aplicativos ou administrador de governança de identidade, se você estiver apenas gerenciando atribuições de função de aplicativo.
  1. Abra o PowerShell.

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

    Install-Module Microsoft.Graph
    

    Se já tiver os módulos instalados, certifique-se de que está a utilizar 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 esse comando, talvez seja necessário consentir para permitir que as ferramentas de linha de comando do Microsoft Graph tenham 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 o arquivo obtido do SAP Cloud Identity Services tiver o nome Users-exported-from-sap.csv e estiver localizado no diretório atual, digite este comando.

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

    Para outro exemplo, se você estiver usando um banco de dados ou diretório, se o arquivo tiver o nome users.csv e estiver localizado no diretório atual, digite 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.

    Se você estiver usando o SAP Cloud Identity Services, o mapeamento padrão é o atributo userName SAP SCIM com o atributo userPrincipalNameID do Microsoft Entra:

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

    Para outro exemplo, se você estiver usando um banco de dados ou diretório, você pode ter usuários em um banco de dados onde o valor na coluna nomeada EMail é o mesmo valor que no atributo userPrincipalNameMicrosoft Entra :

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

    O script PowerShell a seguir usa os $dbusersvalores , $db_match_column_namee $azuread_match_attr_name especificados anteriormente. Ele consultará o ID do Microsoft Entra para localizar um usuário que tenha um atributo com um valor correspondente para cada registro no arquivo de origem. Se houver muitos usuários no arquivo obtido do banco de dados ou diretório de origem do SAP Cloud Identity Services, esse script pode levar vários minutos para ser concluído. Se você não tiver um atributo no Microsoft Entra ID que tenha o valor e precisar usar uma contains ou outra expressão de filtro, será necessário personalizar esse script e isso na 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. Veja os resultados das consultas anteriores. Veja se algum dos usuários no SAP Cloud Identity Services, o banco de dados ou o diretório não pôde ser localizado no ID do Microsoft Entra devido a erros ou correspondências ausentes.

    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 terminar, ele indicará um erro se algum registro da fonte de dados não estiver localizado no ID do Microsoft Entra. Se nem todos os registros de usuários do armazenamento de dados do aplicativo puderem ser localizados como usuários no Microsoft Entra ID, você precisará investigar quais registros não corresponderam e por quê.

    Por exemplo, o endereço de email de alguém e userPrincipalName podem ter sido alterados no ID do Microsoft Entra sem que sua propriedade correspondente mail tenha sido atualizada na fonte de dados do aplicativo. Ou, o usuário pode já ter saído da organização, mas ainda está na fonte de dados do aplicativo. Ou pode haver uma conta de fornecedor ou 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 puderam ser localizados no Microsoft Entra ID ou não estavam ativos e capazes de entrar, mas você deseja que seu acesso seja revisado ou seus atributos atualizados no SAP Cloud Identity Services, no banco de dados ou no diretório, será necessário atualizar o aplicativo, a regra de correspondência ou atualizar ou criar usuários do Microsoft Entra para eles. Para obter mais informações sobre qual alteração fazer, consulte Gerenciar mapeamentos e contas de usuário em aplicativos que não correspondem aos usuários no Microsoft Entra ID.

    Se você escolher a opção de criar usuários no Microsoft Entra ID, poderá criar usuários em massa usando:

    Certifique-se de que esses novos usuários sejam preenchidos com os atributos necessários para que a ID do Microsoft Entra os corresponda posteriormente aos usuários existentes no aplicativo e os atributos exigidos pela ID do Microsoft Entra, incluindo userPrincipalName, mailNickname e displayName. O userPrincipalName deve ser único entre todos os usuários no diretório.

    Por exemplo, você pode ter usuários em um banco de dados onde o valor na coluna nomeada EMail é o valor que você deseja usar como o Nome principal do usuário do Microsoft Entra, o valor na coluna Alias contém o apelido de email do ID do Microsoft Entra e o valor na coluna Full name contém o nome para 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"
    

    Em seguida, você pode usar esse script para criar usuários do Microsoft Entra para aqueles no SAP Cloud Identity Services, o banco de dados ou o diretório que não corresponderam aos usuários no Microsoft Entra ID. Observe que talvez seja necessário modificar esse script para adicionar atributos adicionais do Microsoft Entra necessários em sua organização, ou se o $azuread_match_attr_name não for nem mailNickname 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. Depois de adicionar quaisquer usuários ausentes ao Microsoft Entra ID, execute o script da etapa 7 novamente. Em seguida, execute o script a partir da etapa 8. Verifique se 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." 
    

Garantir que os usuários existentes do Microsoft Entra tenham os atributos necessários

Antes de habilitar o provisionamento automático de usuários, você deve decidir quais usuários no Microsoft Entra ID precisam acessar o SAP Cloud Identity Services e, em seguida, verificar se esses usuários têm os atributos necessários no Microsoft Entra ID e se esses atributos são mapeados para o esquema esperado do SAP Cloud Identity Services.

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

Atribuir usuários ao aplicativo 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ários, se o valor Configurações de Escopo for Sincronizar somente usuários e grupos atribuídos, somente os usuários e grupos que foram 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, você deve selecionar qualquer função válida específica do aplicativo (se disponível) na caixa de diálogo de atribuição. Os 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 do aplicativo não está em quarentena antes de atribuir mais usuários ao aplicativo. Resolva quaisquer problemas que estejam a causar a quarentena, antes de continuar.

Verifique se há usuários que estão presentes no SAP Cloud Identity Services e 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, nem todos eles podem ser atribuídos atualmente às funções do aplicativo no Microsoft Entra ID. Portanto, as próximas etapas são ver quais usuários não têm atribuições para 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 aplicativo empresarial for chamado 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 $azuread_sp na variável 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 com os usuários atualmente atribuídos ao aplicativo no Microsoft Entra ID. Este script baseia-se $azuread_match_id_list no conjunto de variáveis 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 estão atribuídos a funções de aplicativo, isso indica que não havia usuários em comum no Microsoft Entra ID e no SAP Cloud Identity Services, portanto, nenhuma alteração será necessária. No entanto, se um ou mais usuários já no SAP Cloud Identity Services não estiverem atualmente atribuídos às funções do aplicativo, você precisará continuar o procedimento e adicioná-los a uma das funções do aplicativo.

  4. Selecione a User função da entidade de serviço do 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 que 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 se propaguem 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 dos usuários atribuídos ao aplicativo com a representação no SAP Cloud Identity Services e atualizará os usuários do SAP Cloud Identity Services para que tenham os atributos do ID do Microsoft Entra.

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

Quando o teste for concluído, um usuário for provisionado com êxito para o SAP Cloud Identity Services e todos os usuários existentes do SAP Cloud Identity Services forem atribuídos à função do 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 para provisionamento, o serviço de provisionamento 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, enquanto o serviço de provisionamento do Microsoft Entra estiver em execução.

Se você não vir usuários sendo provisionados, revise as etapas no guia de solução de problemas para que nenhum usuário seja provisionado. 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, isso indica uma ambiguidade em suas regras de correspondência de provisionamento, e você precisará atualizar os usuários do Microsoft Entra ou os mapeamentos usados para correspondência para garantir que cada usuário do Microsoft Entra corresponda a um usuário do aplicativo. Em seguida, filtre o log para a ação Criar e status ignorado. Se os usuários foram ignorados com o código SkipReason de NotEffectiveEntitled, isso pode indicar que as contas de usuário no Microsoft Entra ID não foram correspondidas porque o status da conta de usuário foi Desabilitado.

Configurar o logon único

Você também pode optar por ativar o logon único baseado em SAML para o 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 do usuário, embora esses dois recursos se complementem.

Monitorar o provisionamento

Você pode usar a seção Detalhes da sincronização para monitorar o progresso e seguir os links para o relatório de atividade de provisionamento, que descreve todas as ações executadas pelo serviço de provisionamento Microsoft Entra 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, consulte Relatórios sobre provisionamento automático de conta de usuário.

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

À medida que os usuários atribuídos ao aplicativo são atualizados no ID do Microsoft Entra, essas alterações serão automaticamente provisionadas 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, para adicionar ou remover atribuições à medida que as pessoas ingressam na organização ou deixam ou alteram funções.

Mais recursos

Próximos passos