Compartir vía


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 mediante PowerShell. Cuando se asigna un usuario a una aplicación, esta aparece en el portal Aplicaciones del usuario para que pueda acceder a ella con facilidad. 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. La asignación basada en grupos se admite para grupos de seguridad, grupos de Microsoft 365 y Grupos de distribución cuya configuración SecurityEnabled está establecida en solo True. Actualmente no se admiten pertenencias de grupo anidadas. Para conocer más requisitos de licencia de las características tratadas en este artículo, vea la página de precios de Microsoft Entra ID.

De cara a tener un mayor control, se pueden configurar algunos tipos de aplicaciones empresariales para requerir la asignación de usuarios. Para más información sobre cómo exigir la asignación de usuarios para una aplicación, vea Administración del acceso a una aplicación.

Nota:

Las aplicaciones que necesitan que los usuarios se asignen a la aplicación deben tener sus permisos consentidos por un administrador, incluso si las directivas de consentimiento del usuario para un directorio permitan a un usuario darse consentimiento a sí mismo.

Requisitos previos

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

  • Una cuenta de Microsoft Entra con una suscripción activa. Si no la tiene, puede crear una cuenta gratis.
  • Uno de los siguientes roles: Administrador de aplicaciones en la nube, Administrador de aplicaciones o propietario de la entidad de servicio.
  • Microsoft Entra ID P1 o P2 para la asignación basada en grupos. Para conocer más requisitos de licencia de las características tratadas en este artículo, vea la página de precios de Microsoft Entra ID.

Sugerencia

Los pasos de este artículo pueden variar ligeramente en función del portal desde donde comienza.

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 Administrador de aplicaciones en la nube.

  2. Vaya a Identidad> Aplicaciones>aplicaciones para empresas> 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, luego, Agregar usuario/grupo.

    Asigne una cuenta de usuario a una aplicación en su inquilino 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. Elija Seleccionar.

  8. En Seleccionar un rol, seleccione el rol que quiera 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 desasignar el usuario o grupo de la aplicación.

Asignación de usuarios y grupos a una aplicación mediante PowerShell de Azure AD

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

  2. Ejecute Connect-AzureAD e inicie sesión al menos como 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
    $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-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -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.

    $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-AzureADUser -ObjectId "$username"
    $sp = Get-AzureADServicePrincipal -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-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Para asignar un grupo a una aplicación empresarial, reemplace Get-AzureADUser por Get-AzureADGroup y reemplace New-AzureADUserAppRoleAssignment por New-AzureADGroupAppRoleAssignment.

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

Anulación de la asignación de usuarios y grupos de una aplicación mediante PowerShell de Azure AD

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

  2. Ejecute Connect-AzureAD e inicie sesión al menos como Administrador de aplicaciones en la nube.

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

    # Store the proper parameters
    $user = get-azureaduser -ObjectId <objectId>
    $spo = Get-AzureADServicePrincipal -ObjectId <objectId>
    
    #Get the ID of role assignment 
    $assignments = Get-AzureADServiceAppRoleAssignment -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-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments[assignment number].ObjectId
    

Eliminación de todos los usuarios asignados a la aplicación mediante PowerShell de Azure AD

  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.

#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
$sp.ObjectId

# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"

# Get Azure AD App role assignments using objectId of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true

# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
    if ($_.PrincipalType -eq "User") {
        Remove-AzureADUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
    } elseif ($_.PrincipalType -eq "Group") {
        Remove-AzureADGroupAppRoleAssignment -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", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e inicie sesión al menos como 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 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", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e inicie sesión al menos como 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 identificador 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 el Explorador de Graph al menos como Administrador de aplicaciones en la nube.

    Tiene que dar el consentimiento a los siguientes permisos:

    Application.ReadWrite.All, Directory.ReadWrite.Ally AppRoleAssignment.ReadWrite.All.

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

    • principalId: el id. del usuario o grupo al que va a asignar 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 el 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}
    

El Explorador de Microsoft Graph no admite la eliminación por lotes directa de asignaciones de roles de aplicación. Cada asignación se debe eliminar individualmente. Sin embargo, este proceso se puede automatizar mediante Microsoft Graph PowerShell para recorrer en iteración y quitar cada asignación.

Pasos siguientes