Início Rápido: Fazer login de usuários e chamar o Microsoft Graph a partir de um aplicativo web do Flask em Python
Nesse início rápido, você vai baixar e executar uma amostra de aplicativo web do Flask em Python 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, confira como obter um locatário do Microsoft Entra.
- Python 3+
Etapa 1: Registre seu aplicativo
Dica
As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.
Siga essas 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 Aplicativo de nuvem.
- Se você tiver acesso a vários locatários, use o ícone de Configurações no menu superior para alternar para o locatário no qual deseja registrar o aplicativo no menu Diretórios + assinaturas.
- Navegue até Identidade>Aplicativos>Registros de aplicativos e selecione Novo registro.
- Insira um Nome 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
A amostra de aplicativo usa um segredo do cliente para provar sua identidade quando solicita tokens. Siga essas etapas para criar um segredo do cliente para o seu aplicativo web em 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ê vai precisar desse valor para configurar o código e não poderá recuperá-lo mais tarde.
Ao criar credenciais para um aplicativo de cliente confidencial, a Microsoft recomenda que você use um certificado em vez de um segredo do cliente antes de migrar o aplicativo para um ambiente de produção. Para saber mais sobre como usar um certificado, confira estas instruções.
Etapa 3: adicionar um escopo
Como esse aplicativo faz login de usuários, você precisa adicionar permissões delegadas:
- Em Gerenciar, selecione Permissões de 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 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 que você baixou em um IDE e navegue até a pasta raiz da amostra de aplicativo.
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 no app_config.py e 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:
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:5000 e 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 Microsoft. Você será solicitado a fornecer um endereço de email e uma senha para fazer o login.
O aplicativo solicita permissão para manter o acesso aos dados para os quais você lhe deu acesso e também para fazer seu login e ler seu perfil, conforme mostrado. Selecione Aceitar.
- A seguinte captura de tela é exibida, indicando que seu login no aplicativo foi bem-sucedido.
Como ele funciona
O diagrama a seguir demonstra como funciona a amostra de aplicativo:
O aplicativo usa o
identity
pacote para obter um token de acesso da plataforma de identidade do Microsoft. Esse pacote é criado tendo por base a Biblioteca de Autenticação da Microsoft (MSAL) para Python com o objetivo de simplificar a autenticação e a autorização em aplicativos web.O token de acesso que você obteve 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 em Python que faz o login de usuários e chama uma API web protegida na seguinte série de tutoriais com várias partes: