Compartilhar via


Início Rápido: Adquirir um token e chamar a API do Microsoft Graph de um aplicativo de console Python usando a identidade do aplicativo

Bem-vindo! Essa provavelmente não é a página que você esperava. Enquanto trabalhamos em uma correção, este link direcionará você para o artigo certo:

Início Rápido: Adquirir um token e chamar o Microsoft Graph de um aplicativo daemon do Python

Pedimos desculpas pela inconveniência e agradecemos sua paciência enquanto trabalhamos para resolver isso.

Neste guia de início rápido, você baixará e executará 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 não assistido ou um serviço Windows pode ser executado com uma identidade do aplicativo, em vez de uma identidade do usuário.

Pré-requisitos

Para executar este exemplo, você precisa de:

Baixar e configurar o aplicativo de início rápido

Etapa 1: Configurar seu aplicativo no portal do Azure

Para que o exemplo de código deste guia de início rápido funcione, crie um segredo do cliente e adicione a permissão de aplicativo User.Read.All da API do Graph.

Já configurado Esses atributos já estão configurados no seu aplicativo.

Etapa 2: Baixar o projeto Python

Nota

Enter_the_Supported_Account_Info_Here

Usuário padrão

Se você é um usuário padrão do seu locatário, solicite ao Administrador Global que forneça consentimento do administrador para seu aplicativo. Para fazer isso, dê a seguinte URL ao administrador:

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

Etapa 4: Executar o aplicativo

Você precisará instalar as dependências deste exemplo uma só 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ê deverá ver um fragmento JSON que representa uma lista de usuários no diretório do Microsoft Entra na saída do console.

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 texto sem formatação a seus arquivos de projeto, por motivos de segurança, é recomendável que você use 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, confira estas instruções no mesmo repositório GitHub deste exemplo, mas na segunda pasta 2-Call-MsGraph-WithCertificate.

Mais informações

MSAL Python

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

Instale a MSAL Python executando o seguinte comando de pip.

pip install msal

Inicialização da MSAL

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

import msal

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

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Onde: Descrição
config["secret"] É o segredo do cliente criado para o aplicativo no portal do Azure.
config["client_id"] É a ID do aplicativo (cliente) relativa ao aplicativo registrado no portal do Azure. Você pode encontrar esse valor na página Visão Geral do aplicativo no portal do Azure.
config["authority"] O ponto de extremidade do STS para o usuário autenticar. Normalmente, https://login.microsoftonline.com/{tenant} para a nuvem pública, em que {tenant} é o nome do seu locatário ou o ID do seu locatário.

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

Solicitando tokens

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

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 Azure AD.")
    result = app.acquire_token_for_client(scopes=config["scope"])
Onde: Descrição
config["scope"] Contém os escopos solicitados. Para clientes confidenciais, ele deve usar um formato semelhante a {Application ID URI}/.default para indicar que os escopos solicitados são os estaticamente definidos no objeto de aplicativo definido no portal do Azure (no caso do Microsoft Graph, {Application ID URI} aponta para https://graph.microsoft.com). Para APIs Web personalizadas, {Application ID URI} é definido na seção Expor uma API em Registros de aplicativo no portal do Azure.

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

Ajuda e suporte

Se precisar de ajuda, quiser relatar um problema ou desejar saber mais sobre as opções de suporte, confira Ajuda e suporte para desenvolvedores.

Próximas etapas

Para saber mais sobre aplicativos daemon, confira a página de aterrissagem do cenário.