Início Rápido: Fazer login de usuários e chamar o Microsoft Graph a partir de um aplicativo web do Flask em Python
Neste início rápido, você baixa e executa um exemplo de aplicativo Web Do Python Flask que demonstra como autenticar usuários e chamar a API do Microsoft Graph. Os usuários em sua organização do Microsoft Entra podem entrar no aplicativo.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um locatário do Microsoft Entra. Para obter mais informações, consulte como obter um tenant do Microsoft Entra.
- Python 3 +
Etapa 1: Registrar seu aplicativo
Siga estas etapas para registrar seu aplicativo no Centro de administração do Microsoft Entra:
- Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Aplicativos de Nuvem.
- Se você tiver acesso a vários locatários, use o ícone Configurações
no menu superior para mudar para o locatário no qual deseja registrar o aplicativo, a partir do menu Diretórios + assinaturas.
- Navegue até Identidade>Aplicativos>Registros de aplicativo e selecione Novo registro.
- Insira um nome de para seu aplicativo, por exemplo, python-webapp.
- Em Tipos de contas com suporte, selecione Contas somente neste diretório organizacional.
- Em URIs de redirecionamento, selecione Web para a plataforma.
- Insira um URI de redirecionamento de
http://localhost:5000/getAToken
. Você pode alterar esse valor mais tarde. - Selecione Registrar.
Etapa 2: Adicionar um segredo do cliente
O aplicativo de exemplo usa um segredo do cliente para provar sua identidade quando solicita tokens. Siga estas etapas para criar um segredo do cliente para seu aplicativo Web Python:
- Na página Visão geral do aplicativo, anote o valor de ID do aplicativo (cliente) para uso posterior.
- Em Gerenciar, selecione os Certificados e segredos e, na seção Segredos do cliente, selecione Novo segredo do cliente.
- Insira uma descrição para o segredo do cliente, deixe a expiração padrão e selecione Adicionar.
- Salve o Valor do Segredo do Cliente em um local seguro. Você precisa desse valor para configurar o código e não pode recuperá-lo mais tarde.
Ao criar credenciais para um aplicativo cliente confidencial, a Microsoft recomenda que você use um certificado em vez de um segredo do cliente antes de mover o aplicativo para um ambiente de produção. Para obter mais informações sobre como usar um certificado, consulte estas instruções.
Etapa 3: Adicionar um escopo
Como este aplicativo faz login nos usuários, você precisa adicionar permissões delegadas.
- Em Gerenciar, selecione Permissões da API>Adicionar uma permissão.
- Verifique se a guia APIs da Microsoft está selecionada.
- Na seção APIs da Microsoft frequentemente utilizadas, selecione Microsoft Graph.
- Na seção Permissões delegadas, certifique-se de que User.Read esteja selecionado. Use a caixa de pesquisa, se necessário.
- Selecione Adicionar permissões.
Etapa 4: Baixar o aplicativo de exemplo
Baixe o exemplo de código do Python ou clone o repositório:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/
Etapa 5: Configurar o aplicativo de exemplo
Abra o aplicativo baixado em um IDE e navegue até a pasta raiz do aplicativo de exemplo.
cd flask-web-app
Crie um arquivo .env na pasta raiz do projeto usando .env.sample como guia.
# The following variables are required for the app to run. CLIENT_ID=<Enter_your_client_id> CLIENT_SECRET=<Enter_your_client_secret> AUTHORITY=<Enter_your_authority_url>
- Defina o valor de
CLIENT_ID
como a ID do aplicativo (cliente) para o aplicativo registrado, disponível na página de visão geral. - Defina o valor de
CLIENT_SECRET
para o segredo do cliente que você criou no Certificados e Segredos para o aplicativo registrado. - Defina o valor de
AUTHORITY
como umhttps://login.microsoftonline.com/<TENANT_GUID>
. A ID do Diretório (locatário) está disponível na página de visão geral do registro do aplicativo.
As variáveis de ambiente são referenciadas em app_config.pye são mantidas em um arquivo .env separado para mantê-las fora do controle do código-fonte. O arquivo .gitignore fornecido impede que o arquivo .env seja verificado.
- Defina o valor de
Etapa 6: Executar o aplicativo de exemplo
Crie um ambiente virtual para o aplicativo:
- Windows
- macOS/Linux
py -m venv .venv .venv\scripts\activate
Instale os requisitos usando
pip
:pip install -r requirements.txt
Execute o aplicativo na linha de comando. Verifique se o aplicativo está em execução na mesma porta que o URI de redirecionamento configurado anteriormente.
flask run --debug --host=localhost --port=5000
Copie a URL https que aparece no terminal, por exemplo, https://localhost:5000e cole-a em um navegador. É recomendável usar uma sessão de navegador privada ou anônima.
Siga as etapas e insira os detalhes necessários para entrar com sua conta da Microsoft. É solicitado que você forneça um endereço de email e uma senha para entrar.
O aplicativo solicita permissão para manter o acesso aos dados que você autorizou, assim como para fazer login e ler seu perfil, conforme mostrado. Selecione Aceitar.
- A captura de tela a seguir é exibida, indicando que você entrou com êxito no aplicativo.
Como funciona
O diagrama a seguir demonstra como o aplicativo de exemplo funciona:
O aplicativo usa o pacote
identity
para obter um token de acesso da plataforma de identidade da Microsoft. Esse pacote é criado com base na MSAL (Biblioteca de Autenticação da Microsoft) para Python para simplificar a autenticação e a autorização em aplicativos Web.O token de acesso obtido na etapa anterior é usado como um token de portador para autenticar o usuário ao chamar a API do Microsoft Graph.
Próximas etapas
Saiba mais criando um aplicativo Web Python que conecta usuários e chama uma API Web protegida na seguinte série de tutoriais de várias partes: