Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Hay cuatro escenarios comunes en los que es necesario rellenar el identificador de Entra de Microsoft con los usuarios existentes y sus derechos de acceso de una aplicación antes de usar la aplicación con una característica de gobernanza de identificadores de Entra de Microsoft, como las revisiones de acceso.
- Aplicación migrada a Microsoft Entra ID después de usar su propio proveedor de identidades
- Aplicación que no usa Microsoft Entra ID como su único proveedor de identidades
- La aplicación no usa Microsoft Entra ID como proveedor de identidades ni admite el aprovisionamiento
- La aplicación usa microsoft Entra ID como proveedor de identidades y tiene derechos de acceso adicionales para los usuarios.
Para obtener más información sobre los dos primeros escenarios, donde la aplicación admite el aprovisionamiento o utiliza un directorio LDAP, una base de datos SQL, tiene un SOAP o una API de REST, o se basa en Microsoft Entra ID como proveedor de identidades, consulte el artículo Control de los usuarios existentes de una aplicación. En ese artículo se explica cómo usar las características de gobernanza de identidades para los usuarios actuales de esas categorías de aplicaciones.
En este artículo se trata el tercer escenario. Para algunas aplicaciones heredadas, es posible que no sea factible quitar otros proveedores de identidades o autenticación de credenciales locales de la aplicación, o habilitar la compatibilidad con protocolos de aprovisionamiento para esas aplicaciones. Para esas aplicaciones, si desea usar Microsoft Entra ID para revisar quién tiene acceso a la aplicación o quitarle a alguien el acceso a esa aplicación, deberá crear asignaciones en Microsoft Entra ID que representen a los usuarios de la aplicación. En este artículo se trata el escenario de una aplicación que no usa Microsoft Entra ID como proveedor de identidades y no admite el aprovisionamiento.
Para obtener más información sobre el cuarto escenario, consulte Incluir recursos de datos personalizados en el catálogo para las revisiones de acceso de usuario del catálogo (versión preliminar).
Requisitos de licencia
El uso de esta característica requiere licencias de Gobierno de Microsoft Entra ID o Microsoft Entra Suite. Para encontrar la licencia adecuada para sus requisitos, consulte Aspectos básicos de las licencias de gobierno de ID de Microsoft Entra.
Terminología
En este artículo, se muestra el proceso de administración de las asignaciones de roles de aplicación mediante cmdlets de PowerShell de Microsoft Graph. Se usa la siguiente terminología de Microsoft Graph.
En Microsoft Entra ID, un principal de servicio (ServicePrincipal) representa una aplicación en el directorio de una organización específica. El elemento ServicePrincipal tiene una propiedad llamada AppRoles, que enumera los roles que admite una aplicación, como Marketing specialist. Un elemento AppRoleAssignment vincula un usuario a una entidad de servicio y especifica qué rol tiene el usuario en esa aplicación.
También puede usar los paquetes de acceso de la administración de derechos de Microsoft Entra para conceder a los usuarios acceso limitado en el tiempo a la aplicación. En la administración de derechos, un elemento AccessPackage contiene uno o varios roles de recursos, potencialmente de varias entidades de servicio. El elemento AccessPackage también tiene asignaciones (Assignment) para los usuarios al paquete de acceso.
Al crear una asignación para un usuario a un paquete de acceso, la administración de derechos de Microsoft Entra crea automáticamente las instancias de AppRoleAssignment necesarias para el usuario para cada aplicación. Para obtener más información, vea el tutorial Administrar el acceso a recursos en la administración de derechos de Microsoft Entra sobre cómo crear paquetes de acceso a través de PowerShell.
Antes de empezar
Debe tener una de las siguientes licencias en el inquilino:
- Microsoft Entra ID P2 o Microsoft Entra ID Governance
- Licencia de Enterprise Mobility + Security E5
Debe tener un rol administrativo adecuado. Si es la primera vez que sigue estos pasos, necesitará el rol de Administrador global para autorizar el uso de PowerShell de Microsoft Graph en su entorno.
La aplicación necesita una entidad de servicio en el inquilino. Si un principal de servicio aún no existe, puede registrar una aplicación para representarlo en Microsoft Entra ID.
Recopilación de los usuarios existentes de una aplicación
El primer paso para garantizar que todos los usuarios se hayan registrado en Microsoft Entra ID es recopilar la lista de usuarios existentes que tienen acceso a la aplicación.
Algunas aplicaciones pueden tener un comando integrado para exportar una lista de los usuarios actuales del almacén de datos. En otros casos, la aplicación puede depender de un directorio o base de datos externos.
En algunos entornos, es posible que la aplicación se encuentre en un segmento de red o un sistema que no sea adecuado para administrar el acceso a Microsoft Entra ID. Si este sistema no tiene instalados los cmdlets de PowerShell de Microsoft Graph o no tiene conectividad con Microsoft Entra ID, transfiera el archivo .csv que contiene la lista de usuarios a un sistema que tenga instalados los cmdlets de PowerShell de Microsoft Graph.
En esta sección, se explican cuatro enfoques de cómo obtener una lista de usuarios en un archivo de valores separados por comas (CSV):
- Desde un directorio LDAP
- Desde una base de datos de SQL Server
- Desde otra base de datos basada en SQL
- Desde SAP Cloud Identity Services
Recopilación de los usuarios existentes de una aplicación que usa un directorio LDAP
Esta sección trata sobre las aplicaciones que usan un directorio LDAP como almacén de datos subyacente para los usuarios que no se autentican en Microsoft Entra ID. Muchos directorios LDAP, como Active Directory, incluyen un comando que genera una lista de usuarios.
Identifique cuáles de los usuarios de ese directorio están en el ámbito de ser usuarios de la aplicación. Esta opción dependerá de la configuración de la aplicación. Para algunas aplicaciones, cualquier usuario que exista en un directorio LDAP es un usuario válido. Otras aplicaciones pueden requerir que el usuario tenga un atributo determinado o sea miembro de un grupo de ese directorio.
Ejecute el comando que recupera ese subconjunto de usuarios del directorio. Asegúrese de que la salida incluya los atributos de los usuarios que se usarán para buscar coincidencias con Microsoft Entra ID. Algunos ejemplos de estos atributos son el identificador de empleado, el nombre de cuenta y la dirección de correo electrónico.
Por ejemplo, este comando produciría un archivo .csv en el directorio del sistema de archivos actual con el atributo
userPrincipalNamede cada persona del directorio LDAP:$out_filename = ".\users.csv" csvde -f $out_filename -l userPrincipalName,cn -r "(objectclass=person)"Si es necesario, transfiera el archivo .csv que contiene la lista de usuarios a un sistema con los cmdlets de PowerShell de Microsoft Graph instalados.
Continúe leyendo en la sección Confirmación de que Microsoft Entra ID tiene usuarios que coinciden con los usuarios de la aplicación más adelante en este artículo.
Recopilación de los usuarios existentes de la tabla de base de datos de una aplicación mediante un asistente de SQL Server
Esta sección se aplica a las aplicaciones que usan SQL Server como almacén de datos subyacente.
En primer lugar, obtenga una lista de los usuarios desde las tablas. La mayoría de las bases de datos proporcionan una manera de exportar el contenido de las tablas a un formato de archivo estándar, como a un archivo .csv. Si la aplicación usa una base de datos de SQL Server, puede usar el Asistente para importación y exportación de SQL Server para exportar partes de una base de datos. Si no tiene una utilidad para la base de datos, puede usar el controlador ODBC con PowerShell, como se describe en la sección siguiente.
- Inicie sesión en el sistema donde está instalado SQL Server.
- Abra Importación y exportación de SQL Server 2019 (64 bits) o el equivalente para su base de datos.
- Seleccione la base de datos existente como origen.
- Como Destino, seleccione Destino de archivo plano. Proporcione un nombre de archivo y cambie el valor de Página de códigos a 65001 (UTF-8).
- Complete el asistente y seleccione la opción para ejecutarlo inmediatamente.
- Espere a que finalice la ejecución.
- Si es necesario, transfiera el archivo .csv que contiene la lista de usuarios a un sistema con los cmdlets de PowerShell de Microsoft Graph instalados.
- Continúe leyendo en la sección Confirmación de que Microsoft Entra ID tiene usuarios que coinciden con los usuarios de la aplicación más adelante en este artículo.
Recopilación de los usuarios existentes de la tabla de base de datos de una aplicación mediante PowerShell
Esta sección se aplica a las aplicaciones que usan otra base de datos SQL como almacén de datos subyacente, en la que se usa el host del conector ECMA para aprovisionar usuarios en esa aplicación. Si aún no ha configurado el agente de aprovisionamiento, use esa guía para crear el archivo de conexión DSN que usará en esta sección.
Inicie sesión en el sistema donde está o se instalará el agente de aprovisionamiento.
Abra PowerShell.
Construya una cadena de conexión para conectarse al sistema de base de datos.
Los componentes de una cadena de conexión dependen de los requisitos de la base de datos. Si usa SQL Server, consulte la lista de palabras clave y atributos de DSN y cadena de conexión.
Si usa otra base de datos, debe incluir las palabras clave obligatorias para conectarse a esa base de datos. Por ejemplo, si la base de datos usa el nombre de ruta de acceso completo del archivo DSN, un identificador de usuario y una contraseña, construya la cadena de conexión mediante los siguientes comandos:
$filedsn = "c:\users\administrator\documents\db.dsn" $db_cs = "filedsn=" + $filedsn + ";uid=p;pwd=secret"Abra una conexión a la base de datos y proporcione la cadena de conexión mediante los siguientes comandos:
$db_conn = New-Object data.odbc.OdbcConnection $db_conn.ConnectionString = $db_cs $db_conn.Open()Construya una consulta SQL para recuperar los usuarios de la tabla de base de datos. Asegúrese de incluir las columnas que se usarán para buscar coincidencias entre los usuarios de la base de datos de la aplicación y los usuarios de Microsoft Entra ID. Las columnas pueden incluir el identificador de empleado, el nombre de la cuenta o la dirección de correo electrónico.
Por ejemplo, si los usuarios se mantienen en una tabla de base de datos llamada
USERSque tiene las columnasnameyemail, escriba el siguiente comando:$db_query = "SELECT name,email from USERS"Envíe la consulta a la base de datos mediante la conexión:
$result = (new-object data.odbc.OdbcCommand($db_query,$db_conn)).ExecuteReader() $table = new-object System.Data.DataTable $table.Load($result)El resultado es la lista de filas que representan a los usuarios recuperados de la consulta.
Escriba el resultado en un archivo .csv:
$out_filename = ".\users.csv" $table.Rows | Export-Csv -Path $out_filename -NoTypeInformation -Encoding UTF8Si este sistema no tiene instalados los cmdlets de PowerShell de Microsoft Graph o no tiene conectividad con Microsoft Entra ID, transfiera el archivo .csv que contiene la lista de usuarios a un sistema que tenga instalados los cmdlets de PowerShell de Microsoft Graph.
Recopilación de usuarios existentes desde SAP Cloud Identity Services
Esta sección se aplica a las aplicaciones de SAP que usan SAP Cloud Identity Services como servicio subyacente para el aprovisionamiento de usuarios.
- Inicie sesión en la consola de administración de SAP Cloud Identity Services,
https://<tenantID>.accounts.ondemand.com/adminohttps://<tenantID>.trial-accounts.ondemand.com/adminsi es una versión de prueba. - Vaya a Usuarios y autorizaciones > Exportar usuarios.
- Seleccione todos los atributos necesarios para emparejar a los usuarios de Microsoft Entra con los de SAP. Esto incluye los atributos
SCIM ID,userName,emails, y otros que pueda estar usando en sus sistemas SAP. - Seleccione Exportar y espere a que el explorador descargue el archivo CSV.
- Si este sistema no tiene instalados los cmdlets de PowerShell de Microsoft Graph o no tiene conectividad con Microsoft Entra ID, transfiera el archivo .csv que contiene la lista de usuarios a un sistema que tenga instalados los cmdlets de PowerShell de Microsoft Graph.
Confirmar que Microsoft Entra ID tiene usuarios que coinciden con los usuarios de la aplicación
Ahora que ha obtenido de la aplicación una lista de todos los usuarios, hará coincidir los usuarios del almacén de datos de la aplicación con los usuarios en Microsoft Entra ID.
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 Microsoft Graph PowerShell.
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 Gobernanza de Identidades, si solo se encarga de administrar asignaciones de roles de aplicación.
Abra PowerShell.
Si aún no tiene instalados los módulos de PowerShell de Microsoft Graph, instale el módulo
Microsoft.Graph.Usersy otros mediante este comando:Install-Module Microsoft.GraphSi 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.applicationsConéctese a Microsoft Entra ID:
$msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"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.
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-Csvde 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 UTF8Por 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 UTF8Elija 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 SAP SCIM
userNamecon 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
EMailsea el mismo valor que en el atributo Microsoft EntrauserPrincipalName:$db_match_column_name = "EMail" $azuread_match_attr_name = "userPrincipalName"Recupere los identificadores de esos usuarios en Microsoft Entra ID.
El siguiente script de PowerShell usa los valores
$dbusers,$db_match_column_namey$azuread_match_attr_nameespecificados 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 obtenido desde 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óncontainsu 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 } }Observe los resultados de las consultas anteriores. Vea si alguno de los usuarios en SAP Cloud Identity Services, la base de datos, o el directorio no se pudo encontrar en Microsoft Entra ID debido a errores o coincidencias faltantes.
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."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 localizar todos los registros de usuarios del almacén de datos de la aplicación como usuarios de Microsoft Entra ID, tendrá que 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
mailcorrespondiente 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.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é cambios realizar, consulte gestionar las asignaciones y perfiles de usuario en aplicaciones que no se correspondieron 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:
- Un archivo CSV, como se describe en Creación masiva de usuarios en el Centro de administración de Microsoft Entra
- El cmdlet New-MgUser
Asegúrese de que estos nuevos usuarios se rellenen con los atributos necesarios para que Microsoft Entra ID pueda posteriormente hacer coincidirlos con los usuarios existentes en la aplicación, y que se incluyan los atributos requeridos por Microsoft Entra ID, tales como
userPrincipalName,mailNicknameydisplayName. El valor deuserPrincipalNamedebe 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
EMailsea el valor que quieres usar como nombre principal de usuario de Microsoft Entra ID, el valor de la columnaAliascontenga el alias de correo de Microsoft Entra ID y el valor de la columnaFull namecontenga 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_nameno esmailNicknameniuserPrincipalName, 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 } }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."
Registro de la aplicación
Si la aplicación ya está registrada en Microsoft Entra ID, continúe con el paso siguiente.
La cuenta que esté utilizando debe tener permiso para administrar aplicaciones en Microsoft Entra ID. Cualquiera de los siguientes roles de Microsoft Entra incluye los permisos necesarios:
- Administrador de aplicaciones
- Desarrollador de aplicaciones
- Administrador de aplicaciones en la nube
Cree la aplicación y la entidad de servicio.
Por ejemplo, si la aplicación empresarial se llama
CORPDB1, escriba los siguientes comandos:$azuread_app_name = "CORPDB1" $azuread_app = New-MgApplication -DisplayName $azuread_app_name $azuread_sp = New-MgServicePrincipal -DisplayName $azuread_app_name -AppId $azuread_app.AppIdAgregue un rol a la aplicación y etiquétela como integrada con Microsoft Entra ID para que se puedan revisar sus asignaciones. Por ejemplo, si el nombre del rol es
General, proporcione ese valor en los siguientes comandos de PowerShell:$ar0 = New-Object Microsoft.Graph.PowerShell.Models.MicrosoftGraphAppRole $ar0.AllowedMemberTypes += "User" $ar0.Description = "General role" $ar0.DisplayName = "General" $ar0.id = New-Guid $ar0.IsEnabled = $true $ar0.Value = "General" $ara = @() $ara += $ar0 $azuread_app_tags = @() $azuread_app_tags += "WindowsAzureActiveDirectoryIntegratedApp" $azuread_app_update = Update-MgApplication -ApplicationId $azuread_app.Id -AppRoles $ara -Tags $azuread_app_tags
Comprobar los usuarios que aún no están asignados a la aplicación
Los pasos anteriores han confirmado que todos los usuarios del almacén de datos de la aplicación existen como usuarios en Microsoft Entra ID. Sin embargo, es posible que no todos estén actualmente asignados 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.
Busque el identificador de la entidad de servicio de la aplicación.
Por ejemplo, si la aplicación empresarial se llama
CORPDB1, escriba los siguientes comandos:$azuread_app_name = "CORPDB1" $azuread_sp_filter = "displayName eq '" + ($azuread_app_name -replace "'","''") + "'" $azuread_sp = Get-MgServicePrincipal -Filter $azuread_sp_filter -AllRecupere los usuarios que tienen actualmente asignaciones a la aplicación en Microsoft Entra ID.
Esto se basa en la variable
$azuread_spestablecida en el comando anterior.$azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)Compare la lista de identificadores de usuario de la sección anterior con los usuarios asignados actualmente a la aplicación:
$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 ningún usuario no está asignado a roles de aplicación, lo que indica que todos los usuarios sí están asignados a roles de aplicación, no necesita hacer más cambios para proceder con una revisión de acceso.
Sin embargo, si uno o varios usuarios 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.
Seleccione el rol de la aplicación al que va a asignar los usuarios restantes.
Una aplicación puede tener más de un rol. Use este comando para enumerar los roles disponibles:
$azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User"} | ft DisplayName,IdSeleccione el rol adecuado en la lista y obtenga su identificador de rol. Por ejemplo, si el nombre del rol es
General, proporcione ese valor en los siguientes comandos de PowerShell:$azuread_app_role_name = "General" $azuread_app_role_id = ($azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User" -and $_.DisplayName -eq $azuread_app_role_name}).Id if ($null -eq $azuread_app_role_id) { write-error "role $azuread_app_role_name not located in application manifest"}
Crear asignaciones de roles de aplicación en Microsoft Entra ID
Para que Microsoft Entra ID haga coincidir a los usuarios de la aplicación con los usuarios de Microsoft Entra ID, debe crear asignaciones de roles de aplicación en Microsoft Entra ID.
Cuando se crea una asignación de rol de aplicación en Microsoft Entra ID para un usuario de una aplicación, y la aplicación no admite el aprovisionamiento, ocurre lo siguiente
- El usuario permanecerá en la aplicación indefinidamente, a menos que se actualice fuera de Microsoft Entra ID o hasta que se quite la asignación en Microsoft Entra ID.
- En la siguiente revisión de las asignaciones de roles de esa aplicación, se incluirá al usuario en la revisión.
- Si se le niega el acceso al usuario en una auditoría, se quitará su asignación de rol de aplicación.
Cree asignaciones de roles de aplicación para los usuarios que no tienen actualmente asignaciones de roles:
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 }Espere un minuto para que los cambios se propaguen en Microsoft Entra ID.
Consulte en Microsoft Entra ID para obtener la lista actualizada de asignaciones de roles:
$azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)Compare la lista de identificadores de usuario de la sección anterior con los usuarios asignados actualmente a la aplicación:
$azuread_still_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_still_not_in_role_list += $id } } $azuread_still_not_in_role_count = $azuread_still_not_in_role_list.Count if ($azuread_still_not_in_role_count -gt 0) { Write-Output "$azuread_still_not_in_role_count users in the application's data store are not assigned to the application roles." }Si algún usuario no se ha asignado a roles de aplicación, compruebe el registro de auditoría de Microsoft Entra para ver si hay algún error en un paso anterior.
Selección de revisores adecuados
Al crear las revisiones de acceso, los administradores pueden elegir uno o más revisores. Todos los revisores pueden llevar a cabo una revisión; y elegir los usuarios que seguirán teniendo acceso a un recurso, o bien eliminarlos.
Normalmente, un propietario de recursos es responsable de realizar una revisión. Si va a crear una revisión de un grupo, como parte de la revisión del acceso de una aplicación integrada en el patrón B, puede seleccionar los propietarios del grupo como revisores. Como las aplicaciones de Microsoft Entra ID no tienen necesariamente un propietario, la opción para seleccionar el propietario de la aplicación como revisor no es posible. En su lugar, al crear la revisión, puede proporcionar los nombres de los propietarios de la aplicación para que sean los revisores.
También puede elegir, al crear una revisión de un grupo o una aplicación, realizar una revisión en varias fases. Por ejemplo, puede seleccionar que el administrador de cada usuario asignado realice la primera fase de la revisión y el propietario del recurso la segunda. De este modo, el propietario del recurso puede centrarse en los usuarios que su administrador ya ha aprobado.
Antes de crear las revisiones, compruebe que tiene suficientes puestos de SKU de Microsoft Entra ID P2 o Microsoft Entra ID Governance en el inquilino. Además, compruebe que todos los revisores son usuarios activos con direcciones de correo electrónico. Cuando se inician las revisiones de acceso, cada una revisa un correo electrónico desde Microsoft Entra ID. Si el revisor no tiene un buzón, no recibirá el correo electrónico cuando se inicie la revisión ni un recordatorio por correo electrónico. Y, si están bloqueados para poder iniciar sesión en Microsoft Entra ID, no podrán realizar la revisión.
Creación de la revisión de las asignaciones de rol de la aplicación
Una vez que los usuarios tengan asignados los roles de aplicación y usted tenga identificados a los revisores, puede configurar Microsoft Entra ID para iniciar una revisión.
Siga las instrucciones de la guía para crear una revisión de acceso de grupos o aplicaciones para crear la revisión de las asignaciones de rol de la aplicación. Configure la revisión para que se apliquen los resultados cuando termine.
Recupera las tareas que se actualizan una vez que las revisiones se completan
Una vez completada la revisión, puede recuperar la lista actualizada de usuarios con asignaciones de rol de aplicación.
$res = (Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)Las columnas
PrincipalDisplayNameyPrincipalIdcontienen los nombres para mostrar y los id. de usuario de Microsoft Entra de cada usuario que conserva una asignación de rol de aplicación.
Configuración de la integración de administración de derechos con ServiceNow para la creación de vales (opcional)
Si tiene ServiceNow, puede configurar opcionalmente la creación automatizada de incidencias de ServiceNow usando la integración de administración de derechos a través de Logic Apps. En ese escenario, la gestión de derechos puede crear automáticamente tickets de ServiceNow para el aprovisionamiento manual de usuarios que han recibido asignación de paquetes de acceso.