Tutorial: Configuración de SAP Cloud Identity Services para el aprovisionamiento automático de usuarios

En este tutorial, se muestran los pasos para configurar el aprovisionamiento de Microsoft Entra ID en SAP Cloud Identity Services. El objetivo es configurar Microsoft Entra ID para aprovisionar y desaprovisionar automáticamente a los usuarios en SAP Cloud Identity Services, de modo que esos usuarios puedan autenticarse en SAP Cloud Identity Services y tener acceso a otras cargas de trabajo de SAP. SAP Cloud Identity Services es compatible con el aprovisionamiento desde su directorio de identidad local a otras aplicaciones de SAP como sistemas de destino.

Nota:

En este tutorial, se describe un conector integrado en el servicio de aprovisionamiento de usuarios de Microsoft Entra. Para obtener información importante acerca de lo que hace este servicio, cómo funciona y ver preguntas frecuentes al respecto, consulte Automatización del aprovisionamiento y desaprovisionamiento de usuarios para aplicaciones SaaS con Microsoft Entra ID. SAP Cloud Identity Services también tiene su propio conector independiente para leer usuarios y grupos de Microsoft Entra ID. Para más información, consulte Servicios de identidad en la nube de SAP: Aprovisionamiento de identidades: Microsoft Entra ID como sistema de origen.

Requisitos previos

En el escenario descrito en este tutorial se supone que ya cuenta con los requisitos previos siguientes:

Nota:

Esta integración también está disponible desde el entorno de la nube del gobierno de EE. UU. de Microsoft Entra. Puede encontrar esta aplicación en la galería de aplicaciones en la nube del gobierno de EE. UU. de Microsoft Entra y configurarla de la misma manera que en el entorno de la nube pública.

Si va a configurar el aprovisionamiento en SAP Cloud Identity Services en un entorno de producción, donde va a gobernar el acceso a las cargas de trabajo de SAP mediante la gobernanza de Microsoft Entra ID, revise los requisitos previos antes de configurar Microsoft Entra ID para la gobernanza de identidades antes de continuar.

Configuración de SAP Cloud Identity Services para el aprovisionamiento

  1. Inicie sesión en la consola de administración de SAP Cloud Identity Services, https://<tenantID>.accounts.ondemand.com/admin o https://<tenantID>.trial-accounts.ondemand.com/admin, si se trata de una prueba. Vaya a Usuarios y autorizaciones > Administradores.

    Captura de pantalla de la consola de SAP Cloud Identity Services.

  2. Presione el botón +Add (+Agregar) en el panel de la izquierda para agregar un nuevo administrador a la lista. Elija Add System (Agregar sistema) y escriba el nombre del sistema.

    Nota:

    La identidad de administrador de SAP Cloud Identity Services debe ser de tipo System. Un usuario administrador no podrá autenticarse en la API SAP SCIM durante el aprovisionamiento. SAP Cloud Identity Services no permite cambiar el nombre de un sistema después de crearlo.

  3. En Configurar autorizaciones, cambie el botón de alternancia a Administrar usuarios. Después, haga clic en Guardar para crear el sistema.

    Captura de pantalla de Agregar SCIM en SAP Cloud Identity Services.

  4. Una vez creado el sistema de administrador, agregue un nuevo secreto a ese sistema.

  5. Copie el id.de cliente y el secreto de cliente generados por SAP. Estos valores se escribirán en los campos Nombre de usuario de administrador y Contraseña de administrador respectivamente. Esto se hace en la pestaña Aprovisionamiento de la aplicación SAP Cloud Identity Services, que configurará en la sección siguiente.

  6. SAP Cloud Identity Services puede tener asignaciones a una o varias aplicaciones SAP como sistemas de destino. Compruebe si hay algún atributo en los usuarios que esas aplicaciones SAP necesiten aprovisionar a través de SAP Cloud Identity Services. En este tutorial se da por supuesto que SAP Cloud Identity Services y los sistemas de destino de bajada requieren dos atributos, userName y emails[type eq "work"].value. Si los sistemas de destino de SAP requieren otros atributos y estos no forman parte del esquema de usuario de Microsoft Entra ID, es posible que tenga que configurar sincronización de atributos de extensión.

Antes de configurar Microsoft Entra ID para tener el aprovisionamiento automático de usuarios en SAP Cloud Identity Services, debe agregar SAP Cloud Identity Services desde la galería de aplicaciones de Microsoft Entra a la lista de aplicaciones empresariales de su inquilino. Puede realizar este paso en el Centro de administración de Microsoft Entra o a través de Graph API.

Si SAP Cloud Identity Services ya está configurado para el inicio de sesión único desde Microsoft Entra y una aplicación ya está presente en la lista de aplicaciones empresariales de Microsoft Entra, continúe en la sección siguiente.

Para agregar SAP Cloud Identity Services desde la galería de aplicaciones de Microsoft Entra mediante el Centro de administración de Microsoft Entra, siga estos pasos:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
  2. Vaya a Identidad>Aplicaciones>Aplicaciones empresariales>Nueva aplicación.
  3. Para agregar la aplicación desde la galería, escriba SAP Cloud Identity Services en el cuadro de búsqueda.
  4. Seleccione SAP Cloud Identity Services en el panel de resultados y agregue la aplicación. Espere unos segundos mientras la aplicación se agrega al inquilino.

Configurar el aprovisionamiento automático de usuarios en SAP Cloud Identity Services

Esta sección le guía por los pasos necesarios para configurar el servicio de aprovisionamiento de Microsoft Entra ID para crear, actualizar y deshabilitar usuarios en SAP Cloud Identity Services en función de las asignaciones de usuarios a una aplicación en Microsoft Entra ID.

Para configurar el aprovisionamiento automático de usuarios para SAP Cloud Identity Services en Microsoft Entra ID:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.

  2. Vaya a Identidad>Aplicaciones>Aplicaciones empresariales

    Captura de pantalla del panel Aplicaciones empresariales.

  3. En la lista de aplicaciones, seleccione la aplicación SAP Cloud Identity Services.

    Captura de pantalla del enlace de SAP Cloud Identity Services en la lista de aplicaciones.

  4. Seleccione la pestaña Propiedades.

  5. Compruebe que la opción ¿Asignación requerida? esté establecida en . Si se establece en No, todos los usuarios del directorio, incluidas las identidades externas, pueden acceder a la aplicación y no puede revisar el acceso a la aplicación.

  6. Seleccione la pestaña Aprovisionamiento.

    Captura de pantalla de las opciones de administración con la opción Aprovisionamiento seleccionada.

  7. Establezca el modo de aprovisionamiento en Automático.

    Captura de pantalla de la lista desplegable Modo de aprovisionamiento con la opción Automático seleccionada.

  8. En la sección Credenciales de administrador, escriba https://<tenantID>.accounts.ondemand.com/service/scim, o https://<tenantid>.trial-accounts.ondemand.com/service/scim si es una versión de prueba, con el id. de inquilino de SAP Cloud Identity Services en Dirección URL del inquilino. Escriba los valores Id. de cliente y Secreto de cliente recuperados anteriormente en Nombre de usuario de administrador y Contraseña de administrador respectivamente. Haga clic en Probar conexión para asegurarse de que Microsoft Entra ID puede conectarse a SAP Cloud Identity Services. Si se produce un error en la conexión, asegúrese de que la cuenta del sistema de SAP Cloud Identity Services tenga permisos de administrador y que el secreto siga siendo válido, e inténtelo de nuevo.

    Captura de pantalla del token y la dirección URL del inquilino.

  9. En el campo Correo electrónico de notificación, escriba la dirección de correo electrónico de una persona o grupo que debe recibir las notificaciones de error de aprovisionamiento y active la casilla Enviar una notificación por correo electrónico cuando se produzca un error.

    Captura de pantalla del correo electrónico de notificación.

  10. Haga clic en Save(Guardar).

  11. En la sección Asignaciones, seleccione Aprovisionar usuarios de Microsoft Entra ID.

    Captura de pantalla de Asignaciones de usuario en SAP Cloud Identity Services.

  12. Revise los atributos de usuario que se sincronizan entre Microsoft Entra ID y SAP Cloud Identity Services en la sección asignación de atributos. Si no ve los atributos de SAP Cloud Identity Services disponibles como destino para la asignación, seleccione Mostrar opciones avanzadas y seleccione Editar lista de atributos para SAP Cloud Platform Identity Authentication Service para editar la lista de atributos compatibles. Agregue los atributos del inquilino de SAP Cloud Identity Services.

  13. Revise y registre los atributos de origen y destino seleccionados como propiedades coincidentes, asignaciones que tienen prioridad de coincidencia, ya que estos atributos se usan para buscar coincidencias con las cuentas de usuario de SAP Cloud Identity Services para el servicio de aprovisionamiento de Microsoft Entra para determinar si se debe crear un nuevo usuario o actualizar uno existente. Para más información sobre las coincidencias, consulte emparejamiento de usuarios en los sistemas de origen y destino. En un paso posterior, se asegurará de que todos los usuarios que ya estén en SAP Cloud Identity Services tengan los atributos seleccionados como propiedades coincidentes rellenados para evitar que se creen usuarios duplicados.

  14. Confirme que haya una asignación de atributos para IsSoftDeleted, o una función que contenga IsSoftDeleted asignado a un atributo de la aplicación. Cuando un usuario se desasigna de la aplicación, se elimina temporalmente en Microsoft Entra ID o se bloquea para que no pueda iniciar sesión, el servicio de aprovisionamiento de Microsoft Entra ID actualizará el atributo asignado a isSoftDeleted. Si no se ha asignado ningún atributo, los usuarios que más adelante no tengan asignado el rol de aplicación seguirán existiendo en el almacén de datos de la aplicación.

  15. Agregue las asignaciones adicionales que requieran SAP Cloud Identity Services o los sistemas SAP de destino de nivel inferior.

  16. Seleccione el botón Guardar para confirmar los cambios.

    Atributo Tipo Compatible con el filtrado Requerido por SAP Cloud Identity Services
    userName Cadena
    emails[type eq "work"].value String
    active Booleano
    displayName Cadena
    urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager Referencia
    addresses[type eq "work"].country Cadena
    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 Cadena
  17. Para configurar filtros de ámbito, consulte las siguientes instrucciones, que se proporcionan en el artículo Aprovisionamiento de aplicaciones basado en atributos con filtros de ámbito.

  18. Para habilitar el servicio de aprovisionamiento de Microsoft Entra ID para SAP Cloud Identity Services, cambie Estado de aprovisionamiento a Activado en la sección Configuración.

    Captura de pantalla del botón de alternancia Estado de aprovisionamiento activado.

  19. Para el valor de Ámbito en la sección Configuración, seleccione Sincronizar solo usuarios y grupos asignados.

    Captura de pantalla del ámbito de aprovisionamiento.

  20. Cuando esté listo para realizar el aprovisionamiento, haga clic en Guardar.

    Captura de pantalla de cómo guardar la configuración de aprovisionamiento.

Esta operación inicia la sincronización inicial de todos los usuarios definidos en Ámbito en la sección Configuración. Si tiene el ámbito establecido en Sincronizar solo usuarios y grupos asignados y no se han asignado usuarios o grupos a la aplicación, no se producirá ninguna sincronización hasta que los usuarios se asignen a la aplicación.

Aprovisionar un nuevo usuario de prueba de Microsoft Entra ID a SAP Cloud Identity Services

Se recomienda asignar un solo nuevo usuario de prueba de Microsoft Entra a SAP Cloud Identity Services para probar la configuración de aprovisionamiento automático de usuarios.

  1. Inicie sesión en el Centro de administración de Microsoft Entra al menos como Administrador de aplicaciones en la nube y Administrador de usuarios.
  2. Vaya aIdentidad>Usuarios>Todos los usuarios.
  3. Seleccione Nuevo usuario>Crear nuevo usuario.
  4. Escriba el Nombre principal de usuario y el Nombre para mostrar del nuevo usuario de prueba. El nombre principal de usuario debe ser único y no el mismo de ningún usuario actual o anterior de Microsoft Entra o de SAP Cloud Identity Services. Seleccione Revisar y crear y Crear.
  5. Una vez creado el usuario de prueba, vaya a Identidad>Aplicaciones>Aplicaciones empresariales.
  6. Seleccione la aplicación SAP Cloud Identity Services.
  7. Seleccione Usuarios y grupos y, luego, Agregar usuario/grupo.
  8. En Usuarios y grupos, seleccione Ninguno seleccionado y, en el cuadro de texto, escriba el nombre principal de usuario del usuario de prueba.
  9. Elija Seleccionar y, después, Asignar.
  10. Seleccione Aprovisionamiento y, después, seleccione Aprovisionar a petición.
  11. En el cuadro de texto Seleccionar un usuario o grupo, escriba el nombre principal de usuario del usuario de prueba.
  12. Haga clic en Aprovisionar.
  13. Espere a que se complete el aprovisionamiento. Si se ejecuta correctamente, verá el mensaje Modified attributes (successful).

De manera opcional, también puede comprobar lo que el servicio de aprovisionamiento de Microsoft Entra aprovisionará cuando un usuario salga del ámbito de la aplicación.

  1. Selecciona Usuarios y grupos
  2. Seleccione el usuario de prueba y, después, seleccione Quitar.
  3. Una vez quitado el usuario de prueba, seleccione Aprovisionamiento y, después, seleccione Aprovisionar a petición.
  4. En el cuadro de texto Seleccionar un usuario o grupo, escriba el nombre principal de usuario del usuario de prueba que acaba de desasignar.
  5. Haga clic en Aprovisionar.
  6. Espere a que se complete el aprovisionamiento.

Por último, puede quitar el usuario de prueba de Microsoft Entra ID.

  1. Vaya aIdentidad>Usuarios>Todos los usuarios.
  2. Seleccione el usuario de prueba, seleccione Eliminar y seleccione Aceptar. Esta acción elimina temporalmente el usuario de prueba de Microsoft Entra ID.

Después también podrá quitar el usuario de prueba de SAP Cloud Identity Services.

Asegurarse de que los usuarios existentes de SAP Cloud Identity Services tengan los atributos coincidentes necesarios

Antes de asignar usuarios que no son de prueba a la aplicación SAP Cloud Identity Services en Microsoft Entra ID, debe asegurarse de que los usuarios que ya estén en SAP Cloud Identity Services que representen a las mismas personas que los usuarios de Microsoft Entra ID tengan los atributos de asignación rellenados en los servicios de SAP Cloud Identity.

En la asignación de aprovisionamiento, los atributos seleccionados como propiedades coincidentes se usan para buscar coincidencias entre las cuentas de usuario de Microsoft Entra ID y las cuentas de usuario de SAP Cloud Identity Services. Si hay un usuario en Microsoft Entra ID sin coincidencias en SAP Cloud Identity Services, el servicio de aprovisionamiento de Microsoft Entra intentará crear un nuevo usuario. Si hay un usuario en Microsoft Entra ID y tiene una coincidencia en SAP Cloud Identity Services, el servicio de aprovisionamiento de Microsoft Entra actualizará ese usuario de SAP Cloud Identity Services. Por este motivo, debe asegurarse de que todos los usuarios que ya estén en SAP Cloud Identity Services tengan los atributos seleccionados como propiedades coincidentes rellenados; de lo contrario, se pueden crear usuarios duplicados. Si necesita cambiar el atributo coincidente en la asignación de atributos de aplicación de Microsoft Entra, consulte emparejamiento de usuarios en los sistemas de origen y destino.

  1. Inicie sesión en la consola de administración de SAP Cloud Identity Services, https://<tenantID>.accounts.ondemand.com/admin o https://<tenantID>.trial-accounts.ondemand.com/admin, si se trata de una prueba.

  2. Vaya a Usuarios y autorizaciones > Exportar usuarios.

  3. Seleccione todos los atributos necesarios para hacer coincidir los usuarios de Microsoft Entra con los de SAP. Estos atributos incluyen los atributos SCIM ID, userName, emails y otros que puede usar en los sistemas SAP como identificadores.

  4. Seleccione Exportar y espere a que el explorador descargue el archivo CSV.

  5. Abra una ventana de PowerShell.

  6. Escriba el siguiente script en un editor. En la línea uno, si ha seleccionado un atributo coincidente distinto de userName, cambie el valor de la variable sapScimUserNameField por el nombre del atributo SAP Cloud Identity Services. En la línea dos, cambie el argumento por el nombre de archivo del archivo CSV exportado de Users-exported-from-sap.csv por el nombre del archivo descargado.

    $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. Ejecute el script. Cuando se complete el script, si había uno o varios usuarios que no tenían el atributo coincidente necesario, busque esos usuarios en el archivo CSV exportado o en la consola de administración de SAP Cloud Identity Services. Si esos usuarios también están presentes en Microsoft Entra, primero deberá actualizar la representación de SAP Cloud Identity Services de esos usuarios para que tengan rellenado el atributo coincidente.

  8. Una vez que haya actualizado los atributos de esos usuarios en SAP Cloud Identity Services, vuelva a exportar los usuarios de SAP Cloud Identity Services, como se describe en los pasos 2-5 y PowerShell de esta sección, para confirmar que a ningún usuario de SAP Cloud Identity Services le falten los atributos coincidentes que podrían afectar su aprovisionamiento.

Ahora que tiene una lista de todos los usuarios obtenidos de SAP Cloud Identity Services, emparejará los usuarios del almacén de datos de la aplicación con los usuarios que ya están en Microsoft Entra ID para determinar qué usuarios deben estar en el ámbito del aprovisionamiento.

Recuperar los identificadores de los usuarios en Microsoft Entra ID

En esta sección, se muestra cómo interactuar con Microsoft Entra ID mediante cmdlets de PowerShell de Microsoft Graph.

La primera vez que la organización use estos cmdlets para este escenario, deberá tener un rol de administrador global para permitir el uso de PowerShell de Microsoft Graph en el inquilino. Las interacciones posteriores pueden usar un rol con privilegios inferiores, como:

  • Administrador de usuarios, si prevé crear nuevos usuarios.
  • Administrador de aplicaciones o Administrador de Identity Governance, si solo va a administrar asignaciones de roles de aplicación.
  1. Abra PowerShell.

  2. Si aún no tiene instalados los módulos de PowerShell de Microsoft Graph, instale el módulo Microsoft.Graph.Users y otros mediante este comando:

    Install-Module Microsoft.Graph
    

    Si ya tiene instalados los módulos, asegúrese de que usa una versión reciente:

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

    $msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
    
  4. Si es la primera vez que ha usado este comando, es posible que tenga que dar su consentimiento para permitir que las herramientas de la línea de comandos de Microsoft Graph tengan estos permisos.

  5. Lea la lista de usuarios obtenida del almacén de datos de la aplicación en la sesión de PowerShell. Si la lista de usuarios estaba en un archivo .csv, puede usar el cmdlet Import-Csv de PowerShell y proporcionar el nombre del archivo de la sección anterior como argumento.

    Por ejemplo, si el archivo obtenido de SAP Cloud Identity Services se denomina Users-exported-from-sap.csv y se encuentra en el directorio actual, escriba este comando.

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

    Por otro ejemplo, si usa una base de datos o un directorio, si el archivo se denomina users.csv y se encuentra en el directorio actual, escriba este comando:

    $filename = ".\users.csv"
    $dbusers = Import-Csv -Path $filename -Encoding UTF8
    
  6. Elija la columna del archivo users.csv que va a coincidir con un atributo de un usuario en Microsoft Entra ID.

    Si usa SAP Cloud Identity Services, la asignación predeterminada es el atributo userName SCIM de SAPuserName con el atributo Microsoft Entra IDuserPrincipalName:

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

    Por otro ejemplo, si usa una base de datos o un directorio, es posible que tenga usuarios en una base de datos donde el valor de la columna denominada EMail sea el mismo valor que en el atributo Microsoft Entra userPrincipalName:

    $db_match_column_name = "EMail"
    $azuread_match_attr_name = "userPrincipalName"
    
  7. Recupere los identificadores de esos usuarios en Microsoft Entra ID.

    El siguiente script de PowerShell usa los valores $dbusers, $db_match_column_name y $azuread_match_attr_name especificados anteriormente. El script consultará a Microsoft Entra ID para encontrar un usuario que tenga un atributo con un valor coincidente para cada registro del archivo de origen. Si hay muchos usuarios en el archivo obtenidos del origen de SAP Cloud Identity Services, la base de datos o el directorio, este script puede tardar varios minutos en finalizar. Si no tiene un atributo en Microsoft Entra ID que tenga el valor y necesita usar una expresión contains u otra expresión de filtro, deberá personalizar este script en el paso 11 a continuación para usar otra expresión de filtro.

    $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. Observe los resultados de las consultas anteriores. Vea si alguno de los usuarios de SAP Cloud Identity Services, la base de datos o el directorio no se pudieron encontrar en Microsoft Entra ID, debido a errores o coincidencias que faltan.

    El siguiente script de PowerShell mostrará los recuentos de los registros que no se encontraron:

    $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. Cuando finalice el script, se indicará un error si no se encontraron en Microsoft Entra ID algunos registros del origen de datos. Si no se han podido encontrar como usuarios de Microsoft Entra ID todos los registros de los usuarios del almacén de datos de la aplicación, deberá investigar qué registros no coincidieron y por qué.

    Por ejemplo, es posible que la dirección de correo electrónico de algún usuario y el valor de userPrincipalName hayan cambiado en Microsoft Entra ID sin que se haya actualizado su propiedad mail correspondiente en el origen de datos de la aplicación. O bien, es posible que el usuario ya haya dejado la organización, pero siga estando en el origen de datos de la aplicación. O bien, puede haber una cuenta de proveedor o superadministrador en el origen de datos de la aplicación que no corresponda a ninguna persona específica de Microsoft Entra ID.

  10. Si había usuarios que no podían estar ubicados en Microsoft Entra ID, o no estaban activos y podían iniciar sesión, pero quiere tener su acceso revisado o sus atributos actualizados en SAP Cloud Identity Services, la base de datos o el directorio, deberá actualizar la aplicación, la regla de coincidencia o actualizar o crear usuarios de Microsoft Entra para ellos. Para obtener más información sobre qué cambio realizar, vea administrar asignaciones y cuentas de usuario en aplicaciones que no coincidieron con los usuarios de Microsoft Entra ID.

    Si elige la opción de crear usuarios en Microsoft Entra ID, puede crear usuarios de forma masiva mediante:

    Asegúrese de que estos nuevos usuarios se rellenan con los atributos necesarios de Azure AD de forma que coincidan posteriormente con los usuarios existentes en la aplicación, y los atributos requeridos por Microsoft Entra ID, como userPrincipalName, mailNickname y displayName. El valor de userPrincipalName debe ser único entre todos los usuarios del directorio.

    Por ejemplo, es posible que tengas usuarios una la base de datos donde el valor de la columna denominada EMail sea el valor que quieres usar como nombre principal de usuario de Microsoft Entra ID, el valor de la columna Alias contenga el alias de correo de Microsoft Entra ID y el valor de la columna Full name contenga el nombre para mostrar del usuario:

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

    Después, puede usar este script para crear usuarios de Microsoft Entra para aquellos de SAP Cloud Identity Services, la base de datos o el directorio que no coincidan con los usuarios en el Microsoft Entra ID. Tenga en cuenta que es posible que deba modificar este script para agregar atributos adicionales de Microsoft Entra necesarios en su organización, o si el valor de $azuread_match_attr_name no es mailNickname ni userPrincipalName, para proporcionar ese atributo de 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. Después de agregar los usuarios que faltan a Microsoft Entra ID, vuelva a ejecutar el script del paso 7. A continuación, ejecute el script del paso 8. Compruebe que no se notifique ningún error.

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

Asegurarse de que los usuarios existentes de Microsoft Entra tengan los atributos necesarios

Antes de habilitar el aprovisionamiento automático de usuarios, debe decidir qué usuarios de Microsoft Entra ID necesitan acceder a SAP Cloud Identity Services y, después, debe comprobar que esos usuarios tienen los atributos necesarios en Microsoft Entra ID y que se asignan al esquema esperado de SAP Cloud Identity Services.

  • De forma predeterminada, el valor del atributo de usuario de Microsoft Entra userPrincipalName se asigna a los atributos userName y emails[type eq "work"].value de SAP Cloud Identity Services. Si las direcciones de correo electrónico de los usuarios son diferentes de sus nombres principales de usuario, es posible que tenga que cambiar esta asignación.
  • SAP Cloud Identity Services puede omitir los valores del atributo postalCode si el formato del código postal o postal de la empresa no coincide con el país de la empresa.
  • De forma predeterminada, el atributo de Microsoft Entra department se asigna al atributo SAP Cloud Identity Services urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department. Si los usuarios de Microsoft Entra tienen valores del atributo department, esos valores deben coincidir con esos departamentos ya configurados en SAP Cloud Identity Services; de lo contrario, se producirá un error en la creación o actualización del usuario. Si los valores department de los usuarios de Microsoft Entra no son coherentes con los de su entorno de SAP, quite la asignación antes de asignar usuarios.
  • El punto de conexión SCIM de SAP Cloud Identity Services requiere que determinados atributos sean de formato específico. Puede obtener más información sobre estos atributos y su formato específico aquí.

Asignar usuarios a la aplicación SAP Cloud Identity Services en Microsoft Entra ID

Microsoft Entra ID usa un concepto denominado asignaciones para determinar qué usuarios deben recibir acceso a determinadas aplicaciones. En el contexto del aprovisionamiento automático de usuarios, si el valor de Configuración de Ámbito es Sincronizar solo usuarios y grupos asignados, solo los usuarios y grupos que se han asignado a un rol de aplicación de esa aplicación en Microsoft Entra ID se sincronizan con SAP Cloud Identity Services. Al asignar un usuario a SAP Cloud Identity Services, debe seleccionar cualquier rol válido específico de la aplicación (si está disponible) en el cuadro de diálogo de asignación. Los usuarios con el rol de Acceso predeterminado quedan excluidos del aprovisionamiento. Actualmente, el único rol disponible para SAP Cloud Identity Services es Usuario.

Si el aprovisionamiento ya se ha habilitado para la aplicación, compruebe que el aprovisionamiento de la aplicación no está en cuarentena antes de asignar más usuarios a la aplicación. Resuelva los problemas que causan la cuarentena antes de continuar.

Compruebe si hay usuarios que están presentes en SAP Cloud Identity Services y que aún no están asignados a la aplicación en Microsoft Entra ID

Los pasos anteriores han evaluado si los usuarios de SAP Cloud Identity Services también existen como usuarios en Microsoft Entra ID. Sin embargo, es posible que actualmente no se hayan asignado todos a los roles de la aplicación en Microsoft Entra ID. Por lo tanto, los pasos siguientes consisten en ver qué usuarios no tienen asignaciones a roles de aplicación.

  1. Con PowerShell, busque el id. de la entidad de servicio de la aplicación.

    Por ejemplo, si la aplicación empresarial se llama SAP Cloud Identity Services, escriba los siguientes 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 los usuarios que tienen actualmente asignaciones a la aplicación en Microsoft Entra ID.

    Esto se basa en la variable $azuread_sp establecida en el comando anterior.

    $azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
    
  3. Compare la lista de id. de usuario de los usuarios que ya están en SAP Cloud Identity Services y Microsoft Entra ID con los usuarios asignados actualmente a la aplicación en Microsoft Entra ID. Este script se basa en la variable $azuread_match_id_list establecida en las secciones 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."
    

    Si hay cero usuarios no asignados a roles de aplicación, lo que indica que todos los usuarios están asignados a los roles de aplicación, esto indica que no había usuarios en común en Microsoft Entra ID y SAP Cloud Identity Services, por lo que no se necesitan cambios. Sin embargo, si uno o varios usuarios que ya están en SAP Cloud Identity Services no están asignados actualmente a los roles de la aplicación, deberá seguir el procedimiento y agregarlos a uno de los roles de la aplicación.

  4. Seleccione el rol User de la entidad de servicio de la aplicación.

    $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. Cree asignaciones de roles de aplicación para los usuarios que ya están presentes en SAP Cloud Identity Services y Microsoft Entra, y que actualmente no tienen asignaciones de roles a la aplicación:

    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. Espere un minuto para que los cambios se propaguen en Microsoft Entra ID.

  7. En el siguiente ciclo de aprovisionamiento de Microsoft Entra, el servicio de aprovisionamiento de Microsoft Entra comparará la representación de los usuarios asignados a la aplicación, con la representación en SAP Cloud Identity Services y actualizará los usuarios de SAP Cloud Identity Services para que tengan los atributos de Microsoft Entra ID.

Asignar usuarios restantes y supervisar la sincronización inicial

Después de completar la prueba, de que un usuario se aprovisiona correctamente en SAP Cloud Identity Services y los usuarios existentes de SAP Cloud Identity Services se asignan al rol de aplicación, puede asignar a los usuarios autorizados adicionales a la aplicación SAP Cloud Identity Services siguiendo una de las instrucciones que se indican aquí:

Después de que los usuarios se asignen al rol de aplicación y estén en el ámbito del aprovisionamiento, el servicio de aprovisionamiento de Microsoft Entra los aprovisionará en SAP Cloud Identity Services. Tenga en cuenta que la sincronización inicial tarda más tiempo en realizarse que las posteriores, que se producen aproximadamente cada 40 minutos siempre que el servicio de aprovisionamiento de Microsoft Entra esté ejecutándose.

Si no ve que se aprovisionen usuarios, revise los pasos de la guía de solución de problemas "No se está aprovisionando ningún usuario". Después, compruebe el registro de aprovisionamiento a través del Centro de administración de Microsoft Entra o Graph API. Filtre el registro por el estado Failure (Error). Si hay errores con el código DuplicateTargetEntries, indica ambigüedad en las reglas de coincidencia del aprovisionamiento y tendrá que actualizar los usuarios de Microsoft Entra o las asignaciones que se usan para establecer la coincidencia, con el fin de asegurarse de que cada usuario de Microsoft Entra coincida con un usuario de la aplicación. A continuación, filtre el registro por la acción Create (Crear) y el estado Skipped (Omitido). Si se han omitido usuarios con el código NotEffectivelyEntitled para SkipReason, puede indicar que no se estableció la coincidencia de las cuentas de usuario de Microsoft Entra ID porque el estado de las cuentas de usuario era Deshabilitado.

Configurar el inicio de sesión único

También puede optar por habilitar el inicio de sesión único basado en SAML para SAP Cloud Identity Services, siguiendo las instrucciones proporcionadas en el tutorial deinicio de sesión único de SAP Cloud Identity Services. El inicio de sesión único puede configurarse independientemente del aprovisionamiento automático de usuarios, aunque estas dos características se complementan entre sí.

Supervisar el aprovisionamiento

Puede usar la sección Detalles de sincronización para supervisar el progreso y seguir los vínculos al informe de actividad de aprovisionamiento donde se describen todas las acciones que ha llevado a cabo el servicio de aprovisionamiento de Microsoft Entra ID en SAP Cloud Identity Services. También puede supervisar el proyecto de aprovisionamiento a través de Graph API de Microsoft.

Para más información sobre cómo leer los registros de aprovisionamiento de Microsoft Entra, consulte Creación de informes sobre el aprovisionamiento automático de cuentas de usuario.

Mantener asignaciones de roles de aplicación

A medida que los usuarios que están asignados a la aplicación se actualizan en Microsoft Entra ID, esos cambios se aprovisionarán automáticamente en SAP Cloud Identity Services.

Si tiene gobernanza de Microsoft Entra ID, puede automatizar los cambios en las asignaciones de roles de aplicación para SAP Cloud Identity Services en Microsoft Entra ID, agregar o quitar asignaciones a medida que las personas se unan a la organización, o dejar o cambiar roles.

Más recursos

Pasos siguientes