Conceder consentimento de administrador em todo o locatário para um aplicativo

Neste artigo, você aprenderá a fornecer o consentimento do administrador em todo o locatário a um aplicativo no Microsoft Entra ID. Para entender como definir as configurações individuais de consentimento do usuário, consulte Configurar como os usuários finais consentem com os aplicativos.

Ao dar consentimento do administrador em todo o locatário a um aplicativo, você permite ao aplicativo acesso às permissões solicitadas em nome de toda a organização. A concessão de consentimento do administrador em nome de uma organização é uma operação sensível, pois pode permitir que o editor do aplicativo acesse partes significativas dos dados da organização ou execute operações altamente privilegiadas. Exemplos de tais operações podem ser gerenciamento de funções, acesso total a todas as caixas de correio ou todos os sites, e personificação completa do usuário. Portanto, é preciso examinar atentamente as permissões que o aplicativo está solicitando antes de conceder o consentimento.

Por padrão, o fornecimento de consentimento do administrador em todo o locatário a um aplicativo permite que todos os usuários acessem o aplicativo, a menos que haja outro tipo de restrição. Para restringir quais usuários podem entrar em um aplicativo, configure o aplicativo para exigir a atribuição de usuário e depois atribua usuários ou grupos ao aplicativo.

Importante

A concessão de consentimento do administrador em todo o locatário pode revogar permissões que já foram concedidas em todo o locatário para esse aplicativo. As permissões que os usuários já concederam por conta própria não são afetadas.

Pré-requisitos

Conceder consentimento de administrador em todo o locatário exige que você entre como um usuário autorizado a consentir em nome da organização.

Para conceder o consentimento de administrador em todo o locatário, você precisa:

  • Uma conta de usuário do Microsoft Entra com uma das seguintes funções:

    • Administrador Global ou Administrador de Funções com Privilégios, para conceder o consentimento aos aplicativos que solicitam qualquer permissão em qualquer API.
    • Administrador de Aplicativos de Nuvem ou Administrador de Aplicativos, para fornecer consentimento aos aplicativos que solicitam qualquer permissão em qualquer API, exceto as funções de aplicativo do Microsoft Graph (permissões de aplicativo).
    • Uma função de diretório personalizada que inclui a permissão para conceder permissões a aplicativos, para as permissões exigidas pelo aplicativo.

Você pode dar consentimento de administrador para todo o locatário através do painel Aplicativos empresariais se o aplicativo já tiver sido provisionado no seu locatário. Por exemplo, um aplicativo pode ser provisionado no seu locatário se pelo menos um usuário já tiver consentido para o aplicativo. Para obter mais informações, confira Como e por que os aplicativos são adicionados à ID do Microsoft Entra.

Dica

As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.

Para conceder consentimento de administrador em todo o locatário a um aplicativo listado no painel Aplicativos empresariais:

  1. Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativo de nuvem.
  2. Navegue até Identidade>Aplicativos>Aplicativos Empresariais>Todos os aplicativos.
  3. Insira o nome do aplicativo existente na caixa de pesquisa e, em seguida, selecione o aplicativo nos resultados da pesquisa.
  4. Selecione Permissões em Segurança. Screenshot shows how to grant tenant-wide admin consent.
  5. Examine atentamente as permissões que o aplicativo requer. Se você concordar com as permissões que o aplicativo exige, selecione Conceder consentimento de administrador.

Você pode fornecer o consentimento de administrador em todo o locatário a partir dos Registros de aplicativo no centro de administração do Microsoft Entra para os aplicativos que sua organização desenvolveu e registrou diretamente em seu locatário do Microsoft Entra.

Para conceder consentimento de administrador em todo o locatário a partir de Registros de aplicativo:

  1. No centro do administrador do Microsoft Entra, navegue até Identidade>Aplicativos>Registros de aplicativo>Todos os aplicativos.
  2. Insira o nome do aplicativo existente na caixa de pesquisa e, em seguida, selecione o aplicativo nos resultados da pesquisa.
  3. Selecione permissões da API em Gerenciar.
  4. Examine atentamente as permissões que o aplicativo requer. Se você concordar, selecione Conceder consentimento do administrador.

Ao fornecer consentimento de administrador em todo o locatário usando um dos métodos descritos na seção anterior, uma janela é aberta no portal do centro de administração do Microsoft Entra para solicitar o consentimento do administrador em todo o locatário. Se você conhecer a ID do cliente do aplicativo (também conhecido como ID do aplicativo), você poderá criar a mesma URL para conceder consentimento de administrador em todo o locatário.

A URL de consentimento de administrador em todo o locatário segue o formato:

https://login.microsoftonline.com/{organization}/adminconsent?client_id={client-id}

em que:

  • {client-id} é a ID do cliente do aplicativo (também conhecida como ID do aplicativo).
  • {organization} é a ID do locatário ou qualquer nome de domínio verificado do locatário no qual você deseja consentir o aplicativo. Você pode usar o valor organizations, o que fará com que o consentimento ocorra no locatário inicial do usuário com o qual você conecta.

Sempre revise atentamente as permissões que um aplicativo solicitar antes de conceder consentimento.

Para obter mais informações sobre a criação da URL de consentimento do administrador em todo o locatário, confira Consentimento do administrador na plataforma de identidade da Microsoft.

Nesta seção, você concede permissões delegadas ao seu aplicativo. Permissões delegadas são permissões que seu aplicativo precisa para acessar uma API em nome de um usuário conectado. As permissões são definidas por uma API de recurso e concedidas ao seu aplicativo empresarial, que é o aplicativo cliente. Esse consentimento é fornecido em nome de todos os usuários.

No exemplo a seguir, a API de recurso é o Microsoft Graph da ID de objeto 7ea9e944-71ce-443d-811c-71e8047b557a. A API do Microsoft Graph define as permissões delegadas, User.Read.All e Group.Read.All. O consentType é AllPrincipals, indicando que você está consentindo em nome de todos os usuários no locatário. A ID do objeto do aplicativo empresarial cliente é b0d9b9e3-0ecf-4bfd-8dab-9273dd055a941.

Cuidado

Portanto, tenha cuidado! As permissões concedidas programaticamente não estão sujeitas a revisão nem confirmação. Elas entram em vigor imediatamente.

  1. Conecte-se ao PowerShell do Microsoft Graph e entre como pelo menos um Administrador de Aplicativo de Nuvem.

    Connect-MgGraph -Scopes "Application.ReadWrite.All", "DelegatedPermissionGrant.ReadWrite.All"
    
  2. Recupere todas as permissões delegadas definidas pelo Microsoft Graph (o aplicativo de recurso) em seu aplicativo de locatário. Identifique as permissões delegadas que você precisa conceder ao aplicativo cliente. Neste exemplo, as permissões de delegação são User.Read.All e Group.Read.All

    Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property Oauth2PermissionScopes | Select -ExpandProperty Oauth2PermissionScopes | fl
    
  3. Conceda as permissões delegadas ao aplicativo empresarial cliente executando a solicitação a seguir.

    $params = @{
    
    "ClientId" = "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94"
    "ConsentType" = "AllPrincipals"
    "ResourceId" = "7ea9e944-71ce-443d-811c-71e8047b557a"
    "Scope" = "User.Read.All Group.Read.All"
    }
    
    New-MgOauth2PermissionGrant -BodyParameter $params | 
    Format-List Id, ClientId, ConsentType, ResourceId, Scope
    
  4. Confirme se você concedeu consentimento de administrador em todo o locatário executando a solicitação a seguir.

 Get-MgOauth2PermissionGrant -Filter "clientId eq 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' and consentType eq 'AllPrincipals'" 

Nesta seção, você concede permissões de aplicativo para seu aplicativo empresarial. As permissões de aplicativo são permissões que seu aplicativo precisa para acessar uma API de recurso. As permissões são definidas pela API de recurso e concedidas ao seu aplicativo empresarial, que é o aplicativo da entidade de segurança. Depois que você conceder ao aplicativo acesso à API de recurso, ele será executado como um serviço ou daemon em segundo plano sem um usuário conectado. As permissões de aplicativo também são conhecidas como funções de aplicativo.

No exemplo a seguir, você concede ao aplicativo do Microsoft Graph (a entidade de segurança da ID b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94) uma função de aplicativo (permissão de aplicativo) da ID df021288-bdef-4463-88db-98f22de89214 exposta por uma API de recurso da ID 7ea9e944-71ce-443d-811c-71e8047b557a.

  1. Conecte-se ao PowerShell do Microsoft Graph e entre como Administrador Global.

    Connect-MgGraph -Scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    
  2. Recupere as funções de aplicativo definidas pelo Microsoft Graph em seu locatário. Identifique a função de aplicativo que você precisa conceder ao aplicativo empresarial cliente. Neste exemplo, a ID da função de aplicativo é df021288-bdef-4463-88db-98f22de89214.

    Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'" -Property AppRoles | Select -ExpandProperty appRoles |fl
    
  3. Conceda permissão de aplicativo (função de aplicativo) ao aplicativo da entidade de segurança executando a solicitação a seguir.

 $params = @{
  "PrincipalId" ="b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94"
  "ResourceId" = "7ea9e944-71ce-443d-811c-71e8047b557a"
  "AppRoleId" = "df021288-bdef-4463-88db-98f22de89214"
}

New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' -BodyParameter $params | 
  Format-List Id, AppRoleId, CreatedDateTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName

Use o Explorador do Graph para conceder permissões delegadas e de aplicativo.

Nesta seção, você concede permissões delegadas ao seu aplicativo. Permissões delegadas são permissões que seu aplicativo precisa para acessar uma API em nome de um usuário conectado. As permissões são definidas por uma API de recurso e concedidas ao seu aplicativo empresarial, que é o aplicativo cliente. Esse consentimento é fornecido em nome de todos os usuários.

Você precisa entrar como, pelo menos, um Administrador de Aplicativos de Nuvem.

No exemplo a seguir, a API de recurso é o Microsoft Graph da ID de objeto 7ea9e944-71ce-443d-811c-71e8047b557a. A API do Microsoft Graph define as permissões delegadas, User.Read.All e Group.Read.All. O consentType é AllPrincipals, indicando que você está consentindo em nome de todos os usuários no locatário. A ID do objeto do aplicativo empresarial cliente é b0d9b9e3-0ecf-4bfd-8dab-9273dd055a941.

Cuidado

Portanto, tenha cuidado! As permissões concedidas programaticamente não estão sujeitas a revisão nem confirmação. Elas entram em vigor imediatamente.

  1. Recupere todas as permissões delegadas definidas pelo Microsoft Graph (o aplicativo de recurso) em seu aplicativo de locatário. Identifique as permissões delegadas que você precisa conceder ao aplicativo cliente. Neste exemplo, as permissões de delegação são User.Read.All e Group.Read.All

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,oauth2PermissionScopes
    
  2. Conceda as permissões delegadas ao aplicativo empresarial cliente executando a solicitação a seguir.

    POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
    
    Request body
    {
       "clientId": "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94",
       "consentType": "AllPrincipals",
       "resourceId": "7ea9e944-71ce-443d-811c-71e8047b557a",
       "scope": "User.Read.All Group.Read.All"
    }
    
  3. Confirme se você concedeu consentimento de administrador em todo o locatário executando a solicitação a seguir.

    GET https://graph.microsoft.com/v1.0/oauth2PermissionGrants?$filter=clientId eq 'b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94' and consentType eq 'AllPrincipals'
    

Nesta seção, você concede permissões de aplicativo para seu aplicativo empresarial. As permissões de aplicativo são permissões que seu aplicativo precisa para acessar uma API de recurso. As permissões são definidas pela API de recurso e concedidas ao seu aplicativo empresarial, que é o aplicativo da entidade de segurança. Depois que você conceder ao aplicativo acesso à API de recurso, ele será executado como um serviço ou daemon em segundo plano sem um usuário conectado. As permissões de aplicativo também são conhecidas como funções de aplicativo.

No exemplo a seguir, você concede ao aplicativo do Microsoft Graph (a entidade de segurança da ID b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94) uma função de aplicativo (permissão de aplicativo) da ID df021288-bdef-4463-88db-98f22de89214 exposta por um aplicativo empresarial de recurso da ID 7ea9e944-71ce-443d-811c-71e8047b557a.

Você deve entrar como um Administrador global.

  1. Recupere as funções de aplicativo definidas pelo Microsoft Graph em seu locatário. Identifique a função de aplicativo que você precisa conceder ao aplicativo empresarial cliente. Neste exemplo, a ID da função de aplicativo é df021288-bdef-4463-88db-98f22de89214

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq 'Microsoft Graph'&$select=id,displayName,appId,appRoles
    
  2. Conceda permissão de aplicativo (função de aplicativo) ao aplicativo da entidade de segurança executando a solicitação a seguir.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/7ea9e944-71ce-443d-811c-71e8047b557a/appRoleAssignedTo
    
    Request body
    
    {
       "principalId": "b0d9b9e3-0ecf-4bfd-8dab-9273dd055a94",
       "resourceId": "7ea9e944-71ce-443d-811c-71e8047b557a",
       "appRoleId": "df021288-bdef-4463-88db-98f22de89214"
    }
    

Próximas etapas