Compartir a través de


Administrar la asignación de usuarios y grupos a una aplicación

En este artículo se muestra cómo asignar usuarios y grupos a una aplicación empresarial en microsoft Entra ID. Al asignar un usuario a una aplicación, la aplicación aparece en el portal Mis aplicaciones del usuario para facilitar el acceso. Si la aplicación expone roles de aplicación, también se puede asignar un rol concreto de aplicación al usuario.

Cuando asigna un grupo a una aplicación, solo tienen acceso los usuarios del grupo. La asignación no se aplica en cascada a los grupos anidados.

La asignación basada en grupos requiere la edición P1 o P2 de Microsoft Entra ID. Actualmente no se admiten pertenencias de grupo anidadas. Para obtener más requisitos de licencia para las características que se describen en este artículo, consulte la página de precios de Microsoft Entra.

De cara a tener un mayor control, se pueden configurar algunos tipos de aplicaciones empresariales para requerir la asignación de usuarios. Para obtener más información sobre cómo exigir la asignación de usuarios para una aplicación, consulte Administración del acceso a una aplicación. Las aplicaciones que requieren que los usuarios sean asignados a la aplicación deben tener sus permisos autorizados por un administrador, incluso si las políticas de consentimiento de usuario para su directorio permitirían a un usuario dar su consentimiento por sí mismo.

Nota:

Si encuentra limitaciones al administrar grupos a través del portal, como con grupos de directivas de acceso a aplicaciones, considere la posibilidad de usar métodos alternativos como PowerShell o Microsoft Graph API.

Requisitos previos

Para asignar usuarios a una aplicación empresarial, necesita:

  • Una cuenta de Microsoft Entra con una suscripción activa. Si aún no tiene una, puede crear una cuenta de forma gratuita.
  • Uno de los siguientes roles:
    • Administrador de aplicaciones en la nube
    • Administrador de aplicaciones
    • Administrador de usuarios
    • Propietario de la entidad de servicio.
  • Microsoft Entra ID P1 o P2 para la asignación basada en grupos. Para obtener más requisitos de licencia para las características que se describen en este artículo, consulte la página de precios de Microsoft Entra.

Asignación de usuarios y grupos a una aplicación mediante el Centro de administración de Microsoft Entra

Para asignar una cuenta de usuario o grupo a una aplicación empresarial:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como al menos un administrador de aplicaciones en la nube.

  2. Vaya a Entra ID>Aplicaciones empresariales>Todas las aplicaciones.

  3. Escriba el nombre de la aplicación existente en el cuadro de búsqueda y seleccione la aplicación existente en los resultados de la búsqueda.

  4. Seleccione Usuarios y grupos y, a continuación, seleccione Agregar usuario o grupo.

    Asigne una cuenta de usuario a una aplicación en el tenant de Microsoft Entra.

  5. En el panel Agregar asignación , seleccione Ninguno seleccionado en Usuarios y grupos.

  6. Busque y seleccione el usuario o grupo que desea asignar a la aplicación. Por ejemplo, contosouser1@contoso.com o contosoteam1@contoso.com.

  7. Seleccione Seleccionar.

  8. En Seleccionar un rol, seleccione el rol que desea asignar al usuario o grupo. Si aún no ha definido ningún rol, el rol predeterminado es Acceso predeterminado.

  9. En el panel Agregar asignación , seleccione Asignar para asignar el usuario o grupo a la aplicación.

Anulación de la asignación de usuarios y grupos a una aplicación

  1. Siga los pasos de la sección Asignar usuarios y grupos a una aplicación para ir al panel Usuarios y grupos .
  2. Busque y seleccione el usuario o grupo que desea desasignar de la aplicación.
  3. Seleccione Quitar para anular la asignación del usuario o grupo de la aplicación.

Asignación de usuarios y grupos a una aplicación mediante Microsoft Entra PowerShell

  1. Inicie sesión como al menos un Administrador de Aplicaciones en la Nube.

  2. Use el siguiente script para asignar un usuario a una aplicación:

    connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    # Assign the values to the variables
    $username = "<Your user's UPN>"
    $app_name = "<Your App's display name>"
    $app_role_name = "<App role display name>"
    
    # Get the user to assign, and the service principal for the app to assign to
    $user = Get-EntraUser -ObjectId "$username"
    $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
    # Assign the user to the app role
    New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Ejemplo

En este ejemplo se asigna el usuario Britta Simon a la aplicación Microsoft Workplace Analytics mediante PowerShell.

  1. En PowerShell, asigne los valores correspondientes a las variables $username, $app_name y $app_role_name.

    connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. En este ejemplo, no se sabe cuál es el nombre exacto del rol de aplicación que se quiere asignar a Britta Simon. Ejecute los siguientes comandos para obtener el usuario ($user) y la entidad de servicio ($sp) mediante el UPN de usuario y los nombres para mostrar de la entidad de servicio.

    $user = Get-EntraUser -ObjectId "$username"
    $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
    
  3. Ejecute el siguiente comando para buscar los roles de aplicación que expone la entidad de servicio

    $appRoles = $sp.AppRoles
    # Display the app roles
    $appRoles | ForEach-Object {
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"
    }
    

    Nota:

    El identificador de AppRole predeterminado es 00000000-0000-0000-0000-000000000000. Este rol se asigna cuando no se define ningún AppRole concreto para una entidad de servicio.

  4. Asigne el nombre de AppRole a la variable $app_role_name. En este ejemplo, queremos asignar a Britta Simon el rol de Analyst (acceso limitado).

    $app_role_name = "Analyst (Limited access)"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
  5. Ejecute el siguiente comando para asignar el usuario al rol de aplicación.

    New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Para asignar un grupo a una aplicación empresarial, reemplace Get-EntraUser por Get-EntraGroup y reemplace New-EntraUserAppRoleAssignment por New-EntraGroupAppRoleAssignment.

Para obtener más información sobre cómo asignar un grupo a un rol de aplicación, consulte la documentación de New-EntraGroupAppRoleAssignment.

Anular la asignación de usuarios y grupos de una aplicación mediante Microsoft Entra PowerShell

  1. Abra un símbolo del sistema de Windows PowerShell con privilegios elevados.

  2. Inicie sesión como al menos un Administrador de Aplicaciones en la Nube.

  3. Use el siguiente script para quitar un usuario y un rol de una aplicación.

    connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    # Store the proper parameters
    $user = Get-Entrauser -ObjectId "<objectId>"
    $spo = Get-EntraServicePrincipal -ObjectId "<objectId>"
    
    #Get the ID of role assignment 
    $assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $spo.ObjectId | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
    #if you run the following, it will show you what is assigned what
    $assignments | Select *
    
    #To remove the App role assignment run the following command.
    Remove-EntraServicePrincipalAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments.ObjectId
    

Quitar todos los usuarios asignados a la aplicación mediante Microsoft Entra PowerShell

  1. Abra un símbolo del sistema de Windows PowerShell con privilegios elevados.

Use el siguiente script para quitar todos los usuarios y grupos asignados a la aplicación.

connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"

# Get Microsoft Entra App role assignments using objectId of the Service Principal
$assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $sp.ObjectId -All

# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
    if ($_.PrincipalType -eq "User") {
        Remove-EntraUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    } elseif ($_.PrincipalType -eq "Group") {
        Remove-EntraGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    }
}

Asignación de usuarios y grupos a una aplicación mediante PowerShell de Microsoft Graph

  1. Abra un símbolo del sistema de Windows PowerShell con privilegios elevados.

  2. Ejecute Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e inicie sesión como mínimo un administrador de aplicaciones en la nube.

  3. Use el siguiente script para asignar un usuario a una aplicación:

    #Assign the values to the variables
    $userId = "<Your user's ID>"
    $app_name = "<Your App's display name>"
    $app_role_name = "<App role display name>"
    $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"
    
    #Get the user, the service principal and appRole.
    $params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }
    #Assign the user to the AppRole
    New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
        Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
        PrincipalId, PrincipalType, ResourceDisplayName, ResourceId
    

Ejemplo

En este ejemplo se asigna el usuario Britta Simon a la aplicación Microsoft Workplace Analytics mediante Microsoft Graph PowerShell.

  1. En PowerShell, asigne los valores correspondientes a las variables $userId, $app_name y $app_role_name.

    # Assign the values to the variables  
    $userId = "<Britta Simon's user ID>"  
    $app_name = "Workplace Analytics"  
    
  2. En este ejemplo, no se sabe el nombre exacto del rol de aplicación que se quiere asignar a Britta Simon. Ejecute el comando siguiente para obtener la entidad de servicio ($sp) mediante el nombre para mostrar de la entidad de servicio.

    # Get the service principal for the app  
    $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"  
    
  3. Ejecute el siguiente comando para buscar los roles de aplicación que expone la entidad de servicio.

    # Get the app roles exposed by the service principal  
    $appRoles = $sp.AppRoles  
    # Display the app roles  
    $appRoles | ForEach-Object {  
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"  
    }  
    

    Nota:

    El identificador de AppRole predeterminado es 00000000-0000-0000-0000-000000000000. Este rol se asigna cuando no se define ningún AppRole concreto para una entidad de servicio.

  4. Asigne el nombre de rol a la variable $app_role_name. En este ejemplo, queremos asignar a Britta Simon el rol de Analyst (acceso limitado).

    # Assign the values to the variables  
    $app_role_name = "Analyst (Limited access)"  
    $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id  
    
  5. Prepare los parámetros y ejecute el siguiente comando para asignar el usuario al rol de aplicación.

    # Prepare parameters for the role assignment  
    $params = @{  
        "PrincipalId" = $userId  
        "ResourceId" = $sp.Id  
        "AppRoleId" = $appRoleId  
    }  
    
    # Assign the user to the app role  
    New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |   
        Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,   
        PrincipalId, PrincipalType, ResourceDisplayName, ResourceId  
    

Para asignar un grupo a una aplicación empresarial, reemplace Get-MgUser por Get-MgGroup y reemplace New-MgUserAppRoleAssignment por New-MgGroupAppRoleAssignment.

Para obtener más información sobre cómo asignar un grupo a un rol de aplicación, consulte la documentación de New-MgGroupAppRoleAssignment.

Anulación de la asignación de usuarios y grupos de una aplicación mediante PowerShell de Microsoft Graph

  1. Abra un símbolo del sistema de Windows PowerShell con privilegios elevados.

  2. Ejecute Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e inicie sesión como mínimo un administrador de aplicaciones en la nube.

  3. Obtención del usuario y la entidad de servicio

    $user = Get-MgUser -UserId <userid>
    $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
    
  4. Obtención del Id. de la asignación de roles

    $assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
  5. Ejecute el siguiente comando para mostrar la lista de usuarios asignados a la aplicación.

    $assignments | Select *
    
  6. Ejecute el siguiente comando para quitar la asignación de AppRole.

    Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId  '<AppRoleAssignment-id>' -ServicePrincipalId $sp.Id
    

Eliminación de todos los usuarios y grupos asignados a la aplicación mediante PowerShell de Microsoft Graph

Ejecute el siguiente comando para quitar todos los usuarios y grupos asignados a la aplicación.

$assignments | ForEach-Object {
    if ($_.PrincipalType -in ("user", "Group")) {
        Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id -AppRoleAssignmentId $_.Id  }
}

Asignación de usuarios y grupos a una aplicación mediante Microsoft Graph API

  1. Para asignar usuarios y grupos a una aplicación, inicie sesión en Graph Explorercomo al menos un administrador de aplicaciones en la nube.

    Tiene que dar el consentimiento a los siguientes permisos:

    Application.ReadWrite.All y AppRoleAssignment.ReadWrite.All.

    Para conceder una asignación de roles de aplicación, necesita tres identificadores:

    • principalId: El ID del usuario o grupo al cual estás asignando el rol de aplicación.
    • resourceId: el id. del recurso servicePrincipal que define el rol de aplicación.
    • appRoleId: el id. de appRole (definido en la entidad de servicio de recursos) que se va a asignar a un usuario o grupo.
  2. Obtenga la aplicación empresarial. Filtre por DisplayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    

    Registre los valores siguientes del cuerpo de la respuesta:

    • Id. de objeto de la aplicación empresarial
    • Identificador de AppRole que se asigna al usuario. Si la aplicación no expone ningún rol, al usuario se le asigna el rol de acceso predeterminado.

    Nota:

    El identificador de AppRole predeterminado es 00000000-0000-0000-0000-000000000000. Este rol se asigna cuando no se define ningún AppRole concreto para una entidad de servicio.

  3. Para obtener el usuario, filtre por el nombre principal del usuario. Registre el id. de objeto del usuario.

    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Asigne al usuario a la aplicación.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo
    
    {
    "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
    "appRoleId": "00000000-0000-0000-0000-000000000000"
    }
    

    En el ejemplo, tanto resource-servicePrincipal-id como resourceId representan la aplicación empresarial.

Anulación de la asignación de usuarios y grupos a una aplicación mediante Microsoft Graph API

Para anular la asignación de todos los usuarios y grupos de la aplicación, ejecute la consulta siguiente.

  1. Obtenga la aplicación empresarial. Filtre por displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Obtenga la lista de appRoleAssignments para la aplicación.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Quite el appRoleAssignments especificando el identificador appRoleAssignment.

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Microsoft Graph Explorer no admite la eliminación por lotes directa de asignaciones de roles de aplicación. Necesitas eliminar cada asignación individualmente. Sin embargo, puede automatizar este proceso mediante Microsoft Graph PowerShell para iterar y quitar cada asignación.