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 y grupos de Microsoft 365, cuyo valor SecurityEnabled se establece en True solo. 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, consulte Administración del acceso a una aplicación.

Prerrequisitos

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 global, 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.

    Assign user account to an application in your Microsoft Entra tenant.

  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 y un rol 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
    

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

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

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.

    # Assign the values to the variables
    $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 comandos siguientes 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.

    # 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'"
    
  3. Ejecute el comando $sp.AppRoles para mostrar los roles disponibles para la aplicación Workplace Analytics. En este ejemplo, queremos asignar a Britta Simon el rol de Analyst (acceso limitado). Shows the roles available to a user using Workplace Analytics Role

  4. Asigne el nombre de rol a la variable $app_role_name.

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

    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

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

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 y un rol 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 to assign, and the service principal for the app to assign to

$params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }

# Assign the user to the app role

New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
    Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
    PrincipalId, PrincipalType, ResourceDisplayName, ResourceId

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. Use el siguiente script para quitar un usuario y un rol de una aplicación.

# Get the user and the service principal

$user = Get-MgUser -UserId <userid>
$spo = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>

# Get the Id of the role assignment

$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $spo.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}

# if you run the following, it will show you the list of users assigned to the application

$assignments | Select *

# To remove the App role assignment run the following command.

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

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

Use el siguiente script 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 su consentimiento a los siguientes permisos:

    Application.ReadWrite.All, Directory.ReadWrite.All, 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
    • appRoleId que se asigna al usuario. Si la aplicación no expone ningún rol, al usuario se le asigna el rol de acceso predeterminado.
  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": "33ad69f9-da99-4bed-acd0-3f24235cb296",
    "resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
    "appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"
    }
    

    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 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 appRoleAssignments especificando el id. de appRoleAssignment.

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

Pasos siguientes