Gerenciar a atribuição de usuários e grupos a um aplicativo
Este artigo mostra como atribuir usuários e grupos a um aplicativo corporativo no Microsoft Entra ID. Quando você atribui um usuário a um aplicativo, o aplicativo aparece no portal Meus Aplicativos do usuário para facilitar o acesso. Se o aplicativo expõe funções de aplicativo, você também pode atribuir uma função de aplicativo específica ao usuário.
Quando você atribui um grupo a um aplicativo, somente os usuários do grupo têm acesso. A atribuição não se propaga para grupos aninhados.
A atribuição baseada em grupo requer as edições Microsoft Entra ID P1 ou P2. A atribuição baseada em grupo é suportada para grupos de segurança, grupos do Microsoft 365 e grupos de distribuição cuja SecurityEnabled
configuração está definida como True
apenas. No momento, não há suporte para associações de grupo aninhadas. Para obter mais requisitos de licenciamento para os recursos discutidos neste artigo, consulte a página de preços do Microsoft Entra.
Para maior controle, certos tipos de aplicativos corporativos podem ser configurados para exigir atribuição de usuário. Para obter mais informações sobre como exigir atribuição de usuário para um aplicativo, consulte Gerenciar o acesso a um aplicativo. Os aplicativos que exigem que os usuários sejam atribuídos ao aplicativo devem ter suas permissões consentidas por um administrador, mesmo que as políticas de consentimento do usuário para seu diretório permitam que um usuário consinta em seu nome.
Nota
Se você encontrar limitações ao gerenciar grupos por meio do portal, como com grupos de política de acesso a aplicativos, considere usar métodos alternativos como PowerShell ou da API do Microsoft Graph.
Pré-requisitos
Para atribuir usuários a um aplicativo corporativo, você precisa:
- Uma conta Microsoft Entra com uma subscrição ativa. Se ainda não tiver uma, pode criar uma conta gratuitamente.
- Uma das seguintes funções:
- Administrador de aplicativos na nuvem
- Administrador de aplicativos
- Administrador de usuários
- Proprietário da entidade de serviço.
- Microsoft Entra ID P1 ou P2 para atribuições baseadas em grupos. Para obter mais requisitos de licenciamento para os recursos discutidos neste artigo, consulte a página de preços do Microsoft Entra.
Atribuir usuários e grupos a um aplicativo usando o centro de administração do Microsoft Entra
Para atribuir uma conta de usuário ou grupo a um aplicativo empresarial:
Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
Navegue até Identidade>Aplicações>Aplicações empresariais>Todas as aplicações.
Introduza o nome da aplicação existente na caixa de pesquisa e, em seguida, selecione a aplicação nos resultados da pesquisa.
Selecione Usuários e grupos e, em seguida, selecione Adicionar usuário/grupo.
No painel Adicionar Atribuição, selecione Nenhuma Selecionada em Usuários e grupos.
Procure e selecione o usuário ou grupo que você deseja atribuir ao aplicativo. Por exemplo,
contosouser1@contoso.com
oucontosoteam1@contoso.com
.Selecione Selecionar.
Em Selecione uma função, selecione a função que deseja atribuir ao usuário ou grupo. Se ainda não definiste nenhuma função, a função padrão é Acesso Padrão.
No painel Adicionar Atribuição, selecione Atribuir para atribuir o usuário ou grupo ao aplicativo.
Desatribuir utilizadores e grupos de uma aplicação
- Siga as etapas na seção Atribuir usuários e grupos a um aplicativo para navegar até o painel Usuários e grupos .
- Procure e selecione o utilizador ou grupo que pretende desatribuir da aplicação.
- Selecione Remover para remover a atribuição do utilizador ou grupo à aplicação.
Atribuir usuários e grupos a um aplicativo usando o Microsoft Entra PowerShell
Inicie sessão como no mínimo um Cloud Application Administrator.
Use o seguinte script para atribuir um usuário a um aplicativo:
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
Exemplo
Este exemplo atribui o utilizador Britta Simon à aplicação Microsoft Workplace Analytics usando o PowerShell.
No PowerShell, atribua os valores correspondentes às variáveis
$username
,$app_name
e$app_role_name
.connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" $username = "britta.simon@contoso.com" $app_name = "Workplace Analytics"
Neste exemplo, não sabemos qual é o nome exato da função de aplicativo que queremos atribuir a Britta Simon. Execute os comandos a seguir para obter o usuário (
$user
) e a entidade de serviço ($sp
) usando o UPN do usuário e os nomes de exibição da entidade de serviço.$user = Get-EntraUser -ObjectId "$username" $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
Execute o seguinte comando para localizar as funções do aplicativo expostas pela entidade de serviço:
$appRoles = $sp.AppRoles # Display the app roles $appRoles | ForEach-Object { Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)" }
Nota
O ID AppRole padrão é
00000000-0000-0000-0000-000000000000
. Esta função é atribuída quando nenhum AppRole específico é definido para um principal de serviço.Atribua o nome AppRole à
$app_role_name
variável. Neste exemplo, queremos atribuir a Brenda Fernandes a função de analista (acesso limitado).$app_role_name = "Analyst (Limited access)" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
Execute o seguinte comando para atribuir o usuário à função do aplicativo.
New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Para atribuir um grupo a um aplicativo empresarial, substitua Get-EntraUser
por Get-EntraGroup
e substitua New-EntraUserAppRoleAssignment
por New-EntraGroupAppRoleAssignment
.
Para obter mais informações sobre como atribuir um grupo a uma função de aplicativo, consulte a documentação do New-EntraGroupAppRoleAssignment.
Cancelar a atribuição de utilizadores e grupos de uma aplicação usando o Microsoft Entra PowerShell
Abra um prompt de comando do Windows PowerShell com privilégios elevados.
Inicie sessão como, pelo menos, um Administrador de Aplicações na Cloud .
Use o script a seguir para remover um usuário e uma função de um aplicativo.
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
Remova todos os usuários atribuídos ao aplicativo usando o Microsoft Entra PowerShell
- Abra um prompt de comando do Windows PowerShell com privilégios elevados.
Use o script a seguir para remover todos os usuários e grupos atribuídos ao aplicativo.
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
}
}
Atribuir usuários e grupos a um aplicativo usando o Microsoft Graph PowerShell
Abra um prompt de comando do Windows PowerShell com privilégios elevados.
Execute o
Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
e inicie sessão como pelo menos um Administrador de Aplicações na Cloud.Use o seguinte script para atribuir um usuário a um aplicativo:
#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
Exemplo
Este exemplo atribui a utilizadora Britta Simon à aplicação Microsoft Workplace Analytics usando o Microsoft Graph PowerShell.
No PowerShell, atribua os valores correspondentes às variáveis
$userId
,$app_name
e$app_role_name
.# Assign the values to the variables $userId = "<Britta Simon's user ID>" $app_name = "Workplace Analytics"
Neste exemplo, não sabemos o nome exato da função de aplicativo que queremos atribuir a Britta Simon. Execute o seguinte comando para obter o principal do serviço ($sp) usando o nome de exibição do principal do serviço.
# Get the service principal for the app $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"
Execute o seguinte comando para encontrar as funções do aplicativo expostas pelo principal de serviço.
# 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
O ID AppRole padrão é
00000000-0000-0000-0000-000000000000
. Essa função é atribuída quando nenhum "AppRole" específico é definido para um principal de serviço.Atribua o nome do cargo à variável
$app_role_name
. Neste exemplo, queremos atribuir a Brenda Fernandes a função de analista (acesso limitado).# Assign the values to the variables $app_role_name = "Analyst (Limited access)" $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
Prepare os parâmetros e execute o seguinte comando para atribuir o usuário à função do aplicativo.
# 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 atribuir um grupo a um aplicativo empresarial, substitua Get-MgUser
por Get-MgGroup
e substitua New-MgUserAppRoleAssignment
por New-MgGroupAppRoleAssignment
.
Para obter mais informações sobre como atribuir um grupo a uma função de aplicativo, consulte a documentação de New-MgGroupAppRoleAssignment.
Desatribuir utilizadores e grupos de uma aplicação usando o Microsoft Graph PowerShell
Abra um prompt de comando do Windows PowerShell com privilégios elevados.
Execute
Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
e inicie sessão como, pelo menos, um Administrador de Aplicações na Nuvem.Obter o utilizador e a entidade de serviço
$user = Get-MgUser -UserId <userid> $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
Obter a ID da atribuição de função
$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
Execute o seguinte comando para mostrar a lista de usuários atribuídos ao aplicativo
$assignments | Select *
Execute o seguinte comando para remover a atribuição AppRole.
Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId '<AppRoleAssignment-id>' -ServicePrincipalId $sp.Id
Remover todos os usuários e grupos atribuídos ao aplicativo usando o Microsoft Graph PowerShell
Execute o seguinte comando para remover todos os usuários e grupos atribuídos ao aplicativo.
$assignments | ForEach-Object {
if ($_.PrincipalType -in ("user", "Group")) {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id -AppRoleAssignmentId $_.Id }
}
Atribuir usuários e grupos a um aplicativo usando a API do Microsoft Graph
Para atribuir usuários e grupos a um aplicativo, entre no Graph Explorercomo pelo menos um Administrador de Aplicativo na Nuvem.
Você precisa consentir com as seguintes permissões:
Application.ReadWrite.All
,AppRoleAssignment.ReadWrite.All
.Para conceder uma atribuição de função de aplicativo, você precisa de três identificadores:
-
principalId
: A ID do usuário ou grupo ao qual você está atribuindo a função do aplicativo. -
resourceId
: A ID do recurso servicePrincipal que define a função do aplicativo. -
appRoleId
: O ID do appRole (definido na entidade de serviço do recurso) a ser atribuído a um utilizador ou grupo.
-
Obtenha a aplicação empresarial. Filtrar por
DisplayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
Registre os seguintes valores do corpo da resposta:
- ID do objeto do aplicativo corporativo
- ID do AppRole que você atribui ao usuário. Se o aplicativo não expor nenhuma função, o usuário receberá a função de acesso padrão.
Nota
O ID AppRole padrão é
00000000-0000-0000-0000-000000000000
. Esta função é atribuída quando nenhuma função de aplicação específica é definida para uma entidade de serviço.Obtenha o usuário filtrando pelo nome principal do usuário. Registre o ID do objeto do usuário.
GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
Atribua o utilizador à aplicação.
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" }
No exemplo, ambos os
resource-servicePrincipal-id
eresourceId
representam o aplicativo empresarial.
Cancelar a atribuição de usuários e grupos de um aplicativo usando a API do Microsoft Graph
Para desatribuir todos os utilizadores e grupos do aplicativo, execute a consulta a seguir.
Obtenha a aplicação empresarial. Filtrar por
displayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
Obtenha a lista de
appRoleAssignments
para o aplicativo.GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
Remova o
appRoleAssignments
especificando oappRoleAssignment
ID.DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
O Microsoft Graph Explorer não oferece suporte à exclusão em lote de atribuições de função de aplicativo diretamente. Você precisa excluir cada atribuição individualmente. No entanto, você pode automatizar esse processo usando o Microsoft Graph PowerShell para iterar e remover cada atribuição