MSAL (Biblioteca de Autenticação da Microsoft) para Python
Introdução à Biblioteca de Autenticação da Microsoft para Python para conectar usuários ou aplicativos com identidades da Microsoft (Azure AD, Contas da Microsoft e contas B2C Azure AD) e obter tokens para chamar APIs da Microsoft, como o Microsoft Graph ou suas próprias APIs registradas com o plataforma de identidade da Microsoft.
Siga as etapas para instalar o pacote e testar o código de exemplo para tarefas básicas.
Quickstart | Documentação | de referência da APIAmostras
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuita.
- O Python 3.6+.
Instalar o pacote
Instale o pacote MSAL para Python. Você pode encontrar o MSAL Python no Pypi.
pip install msal
Configurando
Antes de usar o MSAL Python, registre seu aplicativo com o plataforma de identidade da Microsoft.
Uso
A aquisição de tokens com MSAL Python segue esse padrão de três etapas. Esse é o padrão conceitual de alto nível. Haverá algumas variações para fluxos diferentes. Eles são demonstrados nos exemplos executáveis.
A MSAL propõe uma separação limpa entre aplicativos cliente públicos e aplicativos cliente confidenciais. Portanto, crie uma
PublicClientApplication
instância ouConfidentialClientApplication
e reutilize-a durante o ciclo de vida do aplicativo. O exemplo a seguir mostra umPublicClientApplication
:from msal import PublicClientApplication app = PublicClientApplication( "your_client_id", authority="https://login.microsoftonline.com/Enter_the_Tenant_Name_Here")
Posteriormente, sempre que você quiser um token de acesso, comece por:
result = None # It is just an initial value. Please follow instructions below.
O modelo de API na MSAL fornece controle explícito sobre como utilizar o cache de token. Essa parte de cache é tecnicamente opcional, mas é altamente recomendável aproveitar o poder do cache MSAL. Ele manipulará automaticamente a atualização de token para você.
# We now check the cache to see # whether we already have some accounts that the end user already used to sign in before. accounts = app.get_accounts() if accounts: # If so, you could then somehow display these accounts and let end user choose print("Pick the account you want to use to proceed:") for a in accounts: print(a["username"]) # Assuming the end user chose this one chosen = accounts[0] # Now let's try to find a token in cache for this account result = app.acquire_token_silent(["your_scope"], account=chosen)
Se não houver nenhum token adequado no cache ou você tiver escolhido ignorar a etapa anterior, envie uma solicitação para Azure AD para obter um token. Há métodos diferentes com base no tipo de cliente e no cenário. Aqui, demonstramos um fluxo de espaço reservado.
if not result: # So no suitable token exists in cache. Let's get a new one from Azure AD. result = app.acquire_token_by_one_of_the_actual_method(..., scopes=["User.Read"]) if "access_token" in result: print(result["access_token"]) # Yay! else: print(result.get("error")) print(result.get("error_description")) print(result.get("correlation_id")) # You may need this when reporting a bug
Consulte o Wiki no GitHub para obter mais detalhes sobre a funcionalidade e o uso do Python da MSAL.
Migrar de ADAL para MSAL
Se seu aplicativo estiver usando a ADAL Python, recomendamos atualizá-lo para usar o Python da MSAL. Nenhum novo trabalho de recurso será feito no Python da ADAL.
Consulte o guia de migração ADAL para MSAL .
Próximas etapas
- Tratar erros e exceções no MSAL Python: saiba mais sobre os diferentes tipos de erros e como lidar com erros comuns de entrada.
- Registro em log no MSAL Python: saiba como gerar mensagens de log que podem ajudar a diagnosticar problemas.
Azure SDK for Python
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de