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.
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 parahttps://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.