Guia de início rápido: adquira um token e chame o Microsoft Graph de um aplicativo daemon Python

Neste início rápido, você baixa e executa um exemplo de código que demonstra como um aplicativo Python pode obter um token de acesso usando a identidade do aplicativo para chamar a API do Microsoft Graph e exibir uma lista de usuários no diretório. O exemplo de código demonstra como um trabalho autônomo ou serviço do Windows pode ser executado com uma identidade de aplicativo, em vez da identidade de um usuário.

Diagrama mostrando como funciona o aplicativo de exemplo gerado por este início rápido.

Pré-requisitos

Para executar este exemplo, você precisa:

Registe-se e transfira a sua aplicação de início rápido

Passo 1: Registe a sua candidatura

Dica

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

Para registrar seu aplicativo e adicionar as informações de registro do aplicativo à sua solução manualmente, siga estas etapas:

  1. Entre no centro de administração do Microsoft Entra.
  2. Se você tiver acesso a vários locatários, use o ícone Configurações no menu superior para alternar para o locatário no qual deseja registrar o aplicativo no menu Diretórios + assinaturas.
  3. Navegue até Registros do aplicativo Aplicativos de identidade>>, selecione Novo registro.
  4. Introduza um Nome para a sua aplicação, por exemplo Daemon-console. Os usuários do seu aplicativo podem ver esse nome e você pode alterá-lo mais tarde.
  5. Selecione Registrar.
  6. Em Gerenciar, selecione Certificados & segredos.
  7. Em Segredos do cliente, selecione Novo segredo do cliente, insira um nome e selecione Adicionar. Registre o valor secreto em um local seguro para uso em uma etapa posterior.
  8. Em Gerenciar, selecione Permissões>de API Adicionar uma permissão. Selecione Microsoft Graph.
  9. Selecione Permissões do aplicativo.
  10. Em Nó Usuário , selecione User.Read.All e, em seguida, selecione Adicionar permissões.

Etapa 2: Baixe o projeto Python

Baixe o projeto daemon Python

Etapa 3: Configurar o projeto Python

  1. Extraia o arquivo zip para uma pasta local próxima à raiz do disco, por exemplo, C:\Azure-Samples.

  2. Navegue até a subpasta 1-Call-MsGraph-WithSecret.

  3. Edite parameters.json e substitua os valores dos campos authority, client_ide secret com o seguinte trecho:

    "authority": "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
    "client_id": "Enter_the_Application_Id_Here",
    "secret": "Enter_the_Client_Secret_Here"
    

    Em que:

    • Enter_the_Application_Id_Here- é o ID do aplicativo (cliente) para o aplicativo que você registrou.
    • Enter_the_Tenant_Id_Here- substitua esse valor pelo ID do Locatário ou Nome do Locatário (por exemplo, contoso.microsoft.com)
    • Enter_the_Client_Secret_Here - Substitua este valor pelo segredo do cliente criado no passo 1.

Dica

Para encontrar os valores de ID do aplicativo (cliente), ID do diretório (locatário), vá para a página Visão geral do aplicativo no centro de administração do Microsoft Entra. Para gerar uma nova chave, vá para a página Certificados & segredos .

Usuário padrão

Se for um utilizador padrão do seu inquilino, peça a um Administrador Global que conceda consentimento de administrador para a sua aplicação. Para fazer isso, forneça a seguinte URL ao administrador:

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Em que:

  • Enter_the_Tenant_Id_Here- substitua esse valor pelo ID do Locatário ou Nome do Locatário (por exemplo, contoso.microsoft.com)
  • Enter_the_Application_Id_Here- é o ID do aplicativo (cliente) para o aplicativo que você registrou anteriormente.

Etapa 5: Executar o aplicativo

Você precisará instalar as dependências deste exemplo uma vez.

pip install -r requirements.txt

Em seguida, execute o aplicativo via prompt de comando ou console:

python confidential_client_secret_sample.py parameters.json

Você deve ver na saída do console algum fragmento JSON representando uma lista de usuários no diretório do Microsoft Entra.

Importante

Este aplicativo de início rápido usa um segredo do cliente para se identificar como cliente confidencial. Como o segredo do cliente é adicionado como um texto sem formatação aos arquivos do projeto, por motivos de segurança, é recomendável usar um certificado em vez de um segredo do cliente antes de considerar o aplicativo como aplicativo de produção. Para obter mais informações sobre como usar um certificado, consulte estas instruções no mesmo repositório GitHub para este exemplo, mas na segunda pasta 2-Call-MsGraph-WithCertificate.

Mais informações

MSAL Python

MSAL Python é a biblioteca usada para entrar usuários e solicitar tokens usados para acessar uma API protegida pela plataforma de identidade da Microsoft. Conforme descrito, esse guia de início rápido solicita tokens usando a própria identidade do aplicativo em vez de permissões delegadas. O fluxo de autenticação usado neste caso é conhecido como fluxo oauth de credenciais de cliente. Para obter mais informações sobre como usar o MSAL Python com aplicativos daemon, consulte este artigo.

Você pode instalar o MSAL Python executando o seguinte comando pip.

pip install msal

Inicialização do MSAL

Você pode adicionar a referência para MSAL adicionando o seguinte código:

import msal

Em seguida, inicialize o MSAL usando o seguinte código:

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Em que: Descrição
config["secret"] É o segredo do cliente criado para o aplicativo no centro de administração do Microsoft Entra.
config["client_id"] É a ID do aplicativo (cliente) para o aplicativo registrado no centro de administração do Microsoft Entra. Você pode encontrar esse valor na página Visão geral do aplicativo no centro de administração do Microsoft Entra.
config["authority"] O ponto de extremidade STS para autenticação do usuário. Geralmente https://login.microsoftonline.com/{tenant} para nuvem pública, onde {tenant} é o nome do seu locatário ou seu ID de locatário.

Para obter mais informações, consulte a documentação de referência do ConfidentialClientApplication.

Solicitando tokens

Para solicitar um token usando a identidade do aplicativo, use AcquireTokenForClient o método:

result = None
result = app.acquire_token_silent(config["scope"], account=None)

if not result:
    logging.info("No suitable token exists in cache. Let's get a new one from AAD.")
    result = app.acquire_token_for_client(scopes=config["scope"])
Em que: Descrição
config["scope"] Contém os escopos solicitados. Para clientes confidenciais, isso deve usar o formato semelhante para {Application ID URI}/.default indicar que os escopos solicitados são os definidos estaticamente no objeto do aplicativo definido no centro de administração do Microsoft Entra (para o Microsoft Graph, {Application ID URI} aponta para https://graph.microsoft.com). Para APIs da Web personalizadas, {Application ID URI} é definido na seção Expor uma API em Registros de aplicativos no centro de administração do Microsoft Entra.

Para obter mais informações, consulte a documentação de referência do AcquireTokenForClient.

Ajuda e suporte

Se precisar de ajuda, quiser comunicar um problema ou quiser saber mais sobre as suas opções de suporte, consulte Ajuda e suporte para programadores.

Próximos passos

Para saber mais sobre aplicativos daemon, consulte a página inicial do cenário.