Compartir a través de


Inicio rápido: Inicio de sesión de usuarios y llamada a Microsoft Graph desde una aplicación web de Python Flask

En este inicio rápido, descargará y ejecutará un ejemplo de aplicación web de Python Flask que muestra cómo autenticar a los usuarios y llamar a Microsoft Graph API. Los usuarios de su organización de Microsoft Entra pueden iniciar sesión en la aplicación.

Prerrequisitos

Paso 1: Registrar la aplicación

Siga estos pasos para registrar la aplicación en el Centro de administración de Microsoft Entra:

  1. Inicie sesión en el centro de administración de Microsoft Entra como al menos un administrador de aplicaciones en la nube.
  2. Si tiene acceso a varios inquilinos, use el icono Configuración del menú superior para cambiar al inquilino en el que desea registrar la aplicación desde el menú Directorios y suscripciones.
  3. Vaya a Identidad>Aplicaciones>Registros de aplicaciones y seleccione Nuevo registro.
  4. Escriba un nombre para tu aplicación, por ejemplo python-webapp.
  5. En Tipos de cuenta admitidos, seleccione Solo las cuentas de este directorio organizativo.
  6. En URI de redirección, seleccione Web para la plataforma.
  7. Escriba un URI de redireccionamiento de http://localhost:5000/getAToken. Puede cambiar este valor más adelante.
  8. Seleccione Registrar.

Paso 2: Agregar un secreto de cliente

La aplicación de ejemplo usa un secreto de cliente para demostrar su identidad cuando solicita tokens. Siga estos pasos para crear un secreto de cliente para la aplicación web de Python:

  1. En la página de información general de la aplicación, anote el valor del Identificador de aplicación (cliente) para su uso posterior.
  2. En Administrar, seleccione Certificados & y secretos y, en la sección Secretos de cliente, seleccione Nuevo secreto de cliente.
  3. Escriba una descripción para el secreto de cliente, deje la expiración predeterminada y seleccione Agregar.
  4. Guarde el valor del secreto de cliente en una ubicación segura. Necesita este valor para configurar el código y no puede recuperarlo más adelante.

Al crear credenciales para una aplicación cliente confidencial, Microsoft recomienda usar un certificado en lugar de un secreto de cliente antes de mover la aplicación a un entorno de producción. Para obtener más información sobre cómo usar un certificado, consulte estas instrucciones.

Paso 3: Agregar un ámbito

Dado que esta aplicación inicia sesión para los usuarios, debe agregar permisos delegados:

  1. En Administrar, seleccione Permisos de API>Add a permission (Agregar un permiso).
  2. Asegúrese de que la pestaña API de Microsoft está seleccionada.
  3. En la sección API de Microsoft más usadas, seleccione Microsoft Graph.
  4. En la sección Permisos delegados, asegúrese de que se haya seleccionado User.Read. Use el cuadro de búsqueda si es necesario.
  5. Seleccione Agregar permisos.

Paso 4: Descargar la aplicación de ejemplo

Descargue el ejemplo de código de Python o clone el repositorio:

git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/

Paso 5: Configuración de la aplicación de ejemplo

  1. Abra la aplicación que descargó en un IDE y vaya a la carpeta raíz de la aplicación de ejemplo.

    cd flask-web-app
    
  2. Cree un archivo .env en la carpeta raíz del proyecto usando .env.sample como guía.

    # 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>
    
    • Establezca el valor de CLIENT_ID en el identificador de aplicación (cliente) de la aplicación registrada, disponible en la página de información general.
    • Establezca el valor de CLIENT_SECRET en el secreto de cliente que ha creado en Certificados y secretos para la aplicación registrada.
    • Establezca el valor de AUTHORITY en un https://login.microsoftonline.com/<TENANT_GUID>. El id. de directorio (inquilino) está disponible en la página de información general del registro de la aplicación.

    Se hace referencia a las variables de entorno en app_config.pyy se conservan en un archivo .env independiente para mantenerlos fuera del control de código fuente. El archivo .gitignore proporcionado impide que el archivo .env se proteja.

Paso 6: Ejecución de la aplicación de ejemplo

  1. Cree un entorno virtual para la aplicación:

    py -m venv .venv
    .venv\scripts\activate
    
  2. Instale los requisitos mediante pip:

    pip install -r requirements.txt
    
  3. Ejecute la aplicación desde la línea de comandos. Asegúrese de que la aplicación se ejecuta en el mismo puerto que el URI de redirección que configuró anteriormente.

    flask run --debug --host=localhost --port=5000
    
  4. Copie la dirección URL https que aparece en el terminal, por ejemplo, https://localhost:5000y péguela en un explorador. Se recomienda usar una sesión privada o incógnita del explorador.

  5. Siga los pasos y escriba los detalles necesarios para iniciar sesión con su cuenta Microsoft. Se le pedirá que proporcione una dirección de correo electrónico y una contraseña para iniciar sesión.

  6. La aplicación solicita permiso para mantener el acceso a los datos a los que le ha concedido acceso y para iniciar sesión y leer el perfil, como se muestra. Seleccione Aceptar.

Diagrama que muestra la aplicación de ejemplo que solicita consentimiento para acceder a los permisos necesarios.

  1. Aparece la captura de pantalla siguiente, que indica que ha iniciado sesión correctamente en la aplicación.

Diagrama que muestra cómo la aplicación de ejemplo ha iniciado sesión correctamente en un usuario.

Cómo funciona

En el diagrama siguiente se muestra cómo funciona la aplicación de ejemplo:

Diagrama que muestra cómo funciona la aplicación de ejemplo generada por este inicio rápido.

  1. La aplicación usa el paquete de identity para obtener un token de acceso de la plataforma de identidad de Microsoft. Este paquete se basa en la biblioteca de autenticación de Microsoft (MSAL) para Python para simplificar la autenticación y la autorización en las aplicaciones web.

  2. El token de acceso que obtiene en el paso anterior se usa como token de portador para autenticar al usuario al llamar a Microsoft Graph API.

Pasos siguientes

Para más información, cree una aplicación web de Python que inicie sesión de usuarios y llame a una API web protegida en la siguiente serie de tutoriales de varias partes: