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 usando o PowerShell. 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 entra em cascata para grupos aninhados.
A atribuição baseada em grupo requer o Microsoft Entra ID P1 ou P2 edition. 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.
Nota
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.
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 ou proprietário da entidade de serviço.
- Microsoft Entra ID P1 ou P2 para atribuição baseada em grupos. Para obter mais requisitos de licenciamento para os recursos discutidos neste artigo, consulte a página de preços do Microsoft Entra.
Gorjeta
As etapas neste artigo podem variar ligeiramente com base no portal a partir do qual você começou.
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é Identity>Applications>Enterprise applications>Todos os aplicativos.
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 você ainda não definiu 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.
Cancelar a atribuição de usuários e grupos de um aplicativo
- 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 usuário ou grupo que você deseja cancelar a atribuição do aplicativo.
- Selecione Remover para cancelar a atribuição do usuário ou grupo do aplicativo.
Atribuir usuários e grupos a um aplicativo usando o Azure AD PowerShell
Abra um prompt de comando do Windows PowerShell com privilégios elevados.
Execute
Connect-AzureAD
e inicie sessão como, pelo menos, um Cloud Application Administrator.Use o seguinte script para atribuir um usuário a um aplicativo:
# 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
Exemplo
Este exemplo atribui o usuário Brenda Fernandes ao aplicativo Microsoft Workplace Analytics usando o PowerShell.
No PowerShell, atribua os valores correspondentes às variáveis
$username
e$app_role_name
$app_name
.$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 Brenda Fernandes. 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-AzureADUser -ObjectId "$username" $sp = Get-AzureADServicePrincipal -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
. Essa função é atribuída quando nenhum AppRole específico é definido para uma entidade 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-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Para atribuir um grupo a um aplicativo empresarial, substitua Get-AzureADUser
por Get-AzureADGroup
e substitua New-AzureADUserAppRoleAssignment
por New-AzureADGroupAppRoleAssignment
.
Para obter mais informações sobre como atribuir um grupo a uma função de aplicativo, consulte a documentação de New-AzureADGroupAppRoleAssignment.
Cancelar a atribuição de usuários e grupos de um aplicativo usando o Azure AD PowerShell
Abra um prompt de comando do Windows PowerShell com privilégios elevados.
Execute
Connect-AzureAD
e inicie sessão como, pelo menos, um Cloud Application Administrator.Use o script a seguir para remover um usuário e uma função de um aplicativo.
# 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
Remova todos os usuários atribuídos ao aplicativo usando o Azure AD 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.
#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
}
}
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
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
e inicie sessão como, pelo menos, um Cloud Application Administrator.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 o usuário Brenda Fernandes ao aplicativo 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 Brenda Fernandes. Execute o seguinte comando para obter a entidade de serviço ($sp) usando o nome de exibição da entidade de serviço.
# Get the service principal for the app $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"
Execute o comando a seguir para localizar as funções do aplicativo expostas pela entidade 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 uma entidade de serviço.Atribua o nome da
$app_role_name
função à variável. 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.
Cancelar a atribuição de usuários e grupos de um aplicativo usando o Microsoft Graph PowerShell
Abra um prompt de comando do Windows PowerShell com privilégios elevados.
Execute
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
e inicie sessão como, pelo menos, um Cloud Application Administrator.Obter o usuário 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
,Directory.ReadWrite.All
, eAppRoleAssignment.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
: A ID do appRole (definido na entidade de serviço de recurso) a ser atribuído a um usuário 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
. Essa função é atribuída quando nenhum AppRole específico é definido 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 cancelar a atribuição de todos os usuários 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