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 Azure Active Directory (Azure AD) 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, también se puede asignar un rol concreto al usuario.

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

La asignación basada en grupos requiere Azure Active Directory Premium P1 o P2. La asignación basada en grupo se admite en grupos de seguridad únicamente. Actualmente no se admiten las pertenencias a grupos anidados y los grupos de Microsoft 365. Para conocer más requisitos de licencia de las características abordadas en este artículo, vea la página de precios de Azure Active Directory.

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

Requisitos previos

Para asignar usuarios a una aplicación mediante PowerShell, necesita lo siguiente:

  • Una cuenta de Azure 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.
  • Si aún no ha instalado el módulo AzureAD, use el comando Install-Module -Name AzureAD. Si se le pide que instale un módulo de NuGet o el nuevo módulo de PowerShell para Azure Active Directory V2, escriba S y presione ENTRAR.
  • Azure Active Directory Premium P1 o P2 para la asignación basada en grupos. Para conocer más requisitos de licencia de las características abordadas en este artículo, vea la página de precios de Azure Active Directory.
  • Opcional: Haber finalizado el inicio rápido de Configuración de una aplicación.

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

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

  2. Ejecute Connect-AzureAD e inicie sesión con una cuenta de usuario administrador global.

  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
    

Desasignación de usuarios y grupos de una aplicación mediante PowerShell

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

  2. Ejecute Connect-AzureAD e inicie sesión con una cuenta de usuario administrador global. Use el siguiente script para eliminar 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 #].ObjectId
    

Quite todos los usuarios 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
 }
}

Pasos siguientes