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
Abra un símbolo del sistema de Windows PowerShell con privilegios elevados.
Ejecute
Connect-AzureAD
e inicie sesión con una cuenta de usuario administrador global.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.
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"
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'"
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).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 }
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
Abra un símbolo del sistema de Windows PowerShell con privilegios elevados.
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
}
}