Configurar permissões do Azure AD Graph para um registo de aplicações

O Graph do Azure Active Directory (Azure AD) foi preterido e está no seu caminho de descontinuação. Recomendamos que siga a lista de verificação Planeamento da migração de aplicações para o ajudar a migrar as suas aplicações para o Microsoft Graph.

A sua aplicação ainda poderá necessitar temporariamente de permissões do Azure AD Graph para aceder aos recursos. Pode seguir um dos três métodos descritos neste artigo para configurar as permissões do Azure AD Graph para o registo de aplicações:

  1. Utilizar o centro de administração do Microsoft Entra para localizar as APIs que a sua organização utiliza
  2. Atualizar o manifesto da aplicação no centro de administração do Microsoft Entra
  3. Utilizar a API de aplicações do Microsoft Graph

Cuidado

Qualquer aplicação que utilize o Graph do Azure AD continuará a deixar de funcionar depois de a API ser descontinuada. Para obter mais informações, veja Migrar aplicações do Azure AD Graph para o Microsoft Graph.

Pré-requisitos

Os passos neste artigo requerem dois conjuntos de privilégios:

  • Privilégios para adicionar permissões a um registo de aplicações
  • Privilégios para conceder essas permissões ao registo de aplicações

Um utilizador com, pelo menos, a função Administrador de Funções Privilegiadas pode fazer as duas coisas, enquanto um utilizador com a função Administrador de Aplicações ou Administrador de Aplicações na Cloud só pode adicionar as permissões. Para o ajudar a impor a separação de deveres e o menor acesso ao privilégio, separe as tarefas de adicionar permissões e conceder permissões a diferentes utilizadores. Para obter mais informações sobre as ações suportadas por estas funções, consulte Funções incorporadas do Microsoft Entra.

Além disso, precisa dos seguintes recursos e privilégios:

  • Inicie sessão num cliente de API, como o Graph Explorer , para executar os pedidos HTTP.
  • A aplicação utilizada para efetuar estas alterações tem de ter a Application.ReadWrite.All permissão concedida.

Utilizar a API de aplicações do Microsoft Graph

O objeto de aplicação do Microsoft Graph inclui uma propriedade requiredResourceAccess que é uma coleção de objetos com informações sobre a API de recursos e permissões. Utilize esta propriedade para configurar permissões do Azure AD Graph, conforme descrito nos passos seguintes.

Passo 1: identificar os IDs de permissão para as permissões do Azure AD Graph necessárias para a sua aplicação

Identifique as permissões do Azure AD Graph necessárias para a sua aplicação, os respetivos IDs de permissão e se são funções de aplicação (permissões de aplicação) ou oauth2PermissionScopes (permissões delegadas). Para obter mais informações, veja Referência de permissões do Azure AD Graph.

O Azure AD Graph é identificado como um objeto servicePrincipal com 00000002-0000-0000-c000-000000000000 o seu appId globalmente exclusivo e Windows Azure Active Directory como displayName e appDisplayName. Execute o seguinte pedido para obter o objeto do principal de serviço do Azure AD Graph no seu inquilino.

Solicitação

GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '00000002-0000-0000-c000-000000000000'

Resposta

No objeto de resposta, os detalhes das permissões de aplicação do Azure AD Graph são listados no objeto appRoles , enquanto os detalhes das permissões delegadas estão listados no objeto oauth2PermissionScopes .

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals",
    "value": [
        {
            "id": "1804a6f8-e623-4520-8f40-ba1b0c11c42d",
            "accountEnabled": true,
            "appDisplayName": "Windows Azure Active Directory",
            "appDescription": null,
            "appId": "00000002-0000-0000-c000-000000000000",
            "appOwnerOrganizationId": "f8cdef31-a31e-4b4a-93e4-5f571e91255a",
            "appRoleAssignmentRequired": false,
            "displayName": "Windows Azure Active Directory",
            "servicePrincipalNames": [
                "https://graph.windows.net",
                "00000002-0000-0000-c000-000000000000/graph.microsoftazure.us",
                "00000002-0000-0000-c000-000000000000/graph.windows.net",
                "00000002-0000-0000-c000-000000000000/directory.windows.net",
                "00000002-0000-0000-c000-000000000000",
                "https://graph.windows.net/",
                "https://graph.microsoftazure.us"
            ],
            "servicePrincipalType": "Application",
            "signInAudience": "AzureADMultipleOrgs",
            "appRoles": [
                {
                    "allowedMemberTypes": [
                        "Application"
                    ],
                    "description": "Allows the app to read applications and service principals without a signed-in user",
                    "displayName": "Read all applications",
                    "id": "3afa6a7d-9b1a-42eb-948e-1650a849e176",
                    "isEnabled": true,
                    "origin": "Application",
                    "value": "Application.Read.All"
                }
            ],
            "oauth2PermissionScopes": [
                {
                    "adminConsentDescription": "Allows users to sign in to the app, and allows the app to read the profile of signed-in users. It also allow the app to read basic company information of signed-in users.",
                    "adminConsentDisplayName": "Sign in and read user profile",
                    "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6",
                    "isEnabled": true,
                    "type": "User",
                    "userConsentDescription": "Allows you to sign in to the app with your work account and let the app read your profile. It also allows the app to read basic company information.",
                    "userConsentDisplayName": "Sign you in and read your profile",
                    "value": "User.Read"
                }
            ]
        }
    ]
}

Na saída truncada anterior, 311a71cc-e848-46a1-bdf8-97ff7156d8e6 encontra-se o ID de permissão para a permissão delegada User.Read , enquanto 3afa6a7d-9b1a-42eb-948e-1650a849e176 é o ID de permissão da permissão Application.Read.All no Azure AD Graph.

Passo 2: Adicionar permissões do Azure AD Graph à sua aplicação

O exemplo seguinte chama a API de Atualização da aplicação para adicionar as permissões Utilizador.Ler e Aplicação.Read.All delegadas e da aplicação a um registo de aplicações identificado pelo ID 581088ba-83c5-4975-b8af-11d2d7a76e98do objeto .

Importante

Para atualizar a propriedade requiredResourceAccess , tem de transmitir as permissões existentes e novas. Transmitir apenas novas permissões substitui e remove as permissões existentes.

Solicitação

PATCH https://graph.microsoft.com/v1.0/applications/581088ba-83c5-4975-b8af-11d2d7a76e98
Content-Type: application/json

{
    "requiredResourceAccess": [
        {
            "resourceAppId": "00000002-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6",
                    "type": "Scope"
                },
                {
                    "id": "3afa6a7d-9b1a-42eb-948e-1650a849e176",
                    "type": "Role"
                }
            ]
        }
    ]
}

Resposta

HTTP/1.1 204 No Content

Passo 3: verificar se as permissões do Azure AD Graph foram adicionadas à sua aplicação

Verifique se o registo da aplicação tem as permissões da Graph API do Azure AD que adicionou no Passo 2 ao:

  1. Chamar o ponto final GET /application/{id} do Microsoft Graph e ler a propriedade requiredResourceAccess da seguinte forma:

    GET https://graph.microsoft.com/v1.0/applications/581088ba-83c5-4975-b8af-11d2d7a76e98?$select=id,requiredResourceAccess
    
  2. A verificar a página Registos de aplicações no centro de administração do Microsoft Entra.

Apesar de ter adicionado permissões do Azure AD Graph, não concedeu estas permissões à aplicação. Muitas permissões requerem o consentimento do administrador antes de poderem ser utilizadas para aceder a dados organizacionais. Inicie sessão no centro de administração do Microsoft Entra como um administrador de função com privilégios e conceda o consentimento do administrador para as permissões para o registo de aplicações.

Ao utilizar o Microsoft Graph e quaisquer SDKs relacionados, pode conceder permissões para um registo de aplicações sem a necessidade de utilizar o centro de administração do Microsoft Entra e selecionar o botão Conceder consentimento de administrador para [Empresa] na página permissões da API. Para obter mais informações, veja Conceder ou revogar permissões de API programaticamente.

Utilizar o centro de administração do Microsoft Entra para localizar as APIs que a sua organização utiliza

  1. Entre no Centro de administração do Microsoft Entra.

  2. ExpandaAplicações> de Identidade> selecione Registos de aplicações.

  3. Na janela Registos de aplicações , no separador Todas as aplicações , selecione a aplicação à qual pretende adicionar permissões do Azure AD Graph.

  4. No painel esquerdo da janela, no grupo de menus Gerir , selecione Permissões de API. Na janela Permissões configuradas , selecione Adicionar uma permissão.

  5. Na janela Pedir permissões da API , mude para as APIs que a minha organização utiliza e procure Windows Azure Active Directory ou 00000002-0000-0000-c000-000000000000. Selecione a partir do conjunto de resultados filtrado para revelar a janela permissões do Azure Active Directory Graph .

    A Graph API do Azure AD chama-se Windows Azure Active Directory e tem clientID 00000002-0000-0000-c000-0000000000000.

  6. Selecione o separador Permissões delegadas ou Permissões da aplicação para escolher a partir da lista de permissões delegadas e de aplicação, respetivamente. Selecione Adicionar permissões para adicionar a permissão ao registo de aplicações.

  7. Depois de adicionar as permissões de que precisa, na janela Permissões configuradas , selecione Conceder consentimento do administrador para conceder as permissões do Azure AD Graph ao registo de aplicações.

Atualizar o manifesto da aplicação no centro de administração do Microsoft Entra

  1. Entre no Centro de administração do Microsoft Entra.

  2. Expanda o menu >IdentidadeAs aplicações> selecionam Registos de aplicações.

  3. Na janela Registos de aplicações , no separador Todas as aplicações , selecione a aplicação à qual pretende adicionar permissões do Azure AD Graph.

  4. No painel esquerdo da janela, no grupo de menus Gerir , selecione Manifesto para abrir um editor que lhe permita editar diretamente os atributos do objeto de registo de aplicações.

    Um ficheiro de Manifesto de registo de aplicações permite-lhe editar os atributos da sua aplicação.

  5. Edite cuidadosamente a propriedade requiredResourceAccess no manifesto da aplicação para adicionar os seguintes detalhes:

    Dica

    A. Pode editar o manifesto da aplicação no centro de administração do Microsoft Entra ou selecionar Transferir para editar o manifesto localmente e, em seguida, utilizar Carregar para voltar a aplicá-lo à sua aplicação.

    B. Para saber mais sobre como configurar a propriedade requiredResourceAccess , veja requiredResourceAccess resource type (Tipo de recurso requiredResourceAccess).

    C. Veja a referência de permissões do Azure AD Graph para obter detalhes sobre os nomes, IDs e tipos de permissões do Azure AD Graph.

    5.1. Se a aplicação não tiver permissões atribuídas ao Azure AD Graph, adicione a propriedade resourceAppId e atribua o valor 00000002-0000-0000-c000-000000000000 que representa o Azure AD Graph.

    5.2. Adicione a propriedade resourceAccess e configure as permissões.

    O fragmento JSON seguinte mostra uma propriedade requiredResourceAccess com o Azure AD Graph como recurso e atribuiu a propriedade User.Read e Application.Read.All oauth2PermissionScope (permissão delegada) e appRole (permissão de aplicação), respetivamente.

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000002-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6",
                    "type": "Scope"
                },
                {
                    "id": "3afa6a7d-9b1a-42eb-948e-1650a849e176",
                    "type": "Role"
                }
            ]
        }
    ],
    
  6. Salve suas alterações.

  7. Novamente no grupo de menus Gerir , selecione Permissões de API e, em Permissões configuradas para o registo de aplicações, selecione Conceder consentimento do administrador para conceder permissões ao Graph do Azure AD para o registo de aplicações.