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 e grupos do Microsoft 365 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.

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 Global, Administrador de Aplicações na Cloud, Administrador de Aplicações ou proprietário do principal 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:

  1. Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.

  2. Navegue até Identity>Applications>Enterprise applications>Todos os aplicativos.

  3. Introduza o nome da aplicação existente na caixa de pesquisa e, em seguida, selecione a aplicação nos resultados da pesquisa.

  4. Selecione Usuários e grupos e, em seguida, selecione Adicionar usuário/grupo.

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

  5. No painel Adicionar Atribuição, selecione Nenhuma Selecionada em Usuários e grupos.

  6. Procure e selecione o usuário ou grupo que você deseja atribuir ao aplicativo. Por exemplo, contosouser1@contoso.com ou contosoteam1@contoso.com.

  7. Selecione Selecionar.

  8. 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.

  9. 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

  1. Siga as etapas na seção Atribuir usuários e grupos a um aplicativo para navegar até o painel Usuários e grupos .
  2. Procure e selecione o usuário ou grupo que você deseja cancelar a atribuição do aplicativo.
  3. 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

  1. Abra um prompt de comando do Windows PowerShell com privilégios elevados.

  2. Execute Connect-AzureAD e inicie sessão como, pelo menos, um Cloud Application Administrator.

  3. Use o script a seguir para atribuir um usuário e uma função 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
    

Para atribuir um grupo a um aplicativo empresarial, você deve substituir por e substituir Get-AzureADUserNew-AzureADUserAppRoleAssignment por Get-AzureADGroupNew-AzureADGroupAppRoleAssignment.

Para obter mais informações sobre como atribuir um grupo a uma função de aplicativo, consulte a documentação de New-AzureADGroupAppRoleAssignment.

Exemplo

Este exemplo atribui o usuário Brenda Fernandes ao aplicativo Microsoft Workplace Analytics usando o PowerShell.

  1. No PowerShell, atribua os valores correspondentes às variáveis $username, $app_name e $app_role_name.

    # Assign the values to the variables
    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. 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.

    # 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. Execute o comando $sp.AppRoles para exibir as funções disponíveis para o aplicativo Workplace Analytics. Neste exemplo, queremos atribuir a Brenda Fernandes a função de analista (acesso limitado). Shows the roles available to a user using Workplace Analytics Role

  4. Atribua o nome da $app_role_name função à variável.

    # Assign the values to the variables
    $app_role_name = "Analyst (Limited access)"
    $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
    
  5. Execute o seguinte comando para atribuir o usuário à função do aplicativo:

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

Cancelar a atribuição de usuários e grupos de um aplicativo usando o Azure AD PowerShell

  1. Abra um prompt de comando do Windows PowerShell com privilégios elevados.

  2. Execute Connect-AzureAD e inicie sessão como, pelo menos, um Cloud Application Administrator.

  3. 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

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

  1. Abra um prompt de comando do Windows PowerShell com privilégios elevados.
  2. Execute Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" e inicie sessão como, pelo menos, um Cloud Application Administrator.
  3. Use o script a seguir para atribuir um usuário e uma função 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 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

Cancelar a atribuição de usuários e grupos de um aplicativo usando o Microsoft Graph PowerShell

  1. Abra um prompt de comando do Windows PowerShell com privilégios elevados.
  2. 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 script a seguir para remover um usuário e uma função de um aplicativo.

# 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

Remover todos os usuários e grupos atribuídos ao aplicativo usando o Microsoft Graph PowerShell

Use o script a seguir 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

  1. 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.AllAppRoleAssignment.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.
  2. 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
    • appRoleId 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.
  3. 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}
    
  4. Atribua o utilizador à aplicação.

    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"
    }
    

    No exemplo, tanto o resource-servicePrincipal-id quanto o resourceId 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 usuários e grupos do aplicativo, execute a seguinte consulta.

  1. Obtenha a aplicação empresarial. Filtrar por displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Obtenha a lista de appRoleAssignments para o aplicativo.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Remova o appRoleAssignments especificando a ID appRoleAssignment.

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

Próximos passos