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.

Requisitos previos

Paso 1: Registrar su aplicación

Sugerencia

Los pasos de este artículo pueden variar ligeramente en función del portal desde donde comienza.

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 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 el nombre de la 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 redirección de http://localhost:5000/getAToken. Puedes 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, elija Nuevo secreto de cliente.
  3. Escriba una descripción para el secreto de cliente, deje el valor de expiración predeterminado y seleccione Agregar.
  4. Guarde el valor del secreto de cliente en una ubicación segura. Necesitará este valor para configurar el código y no podrá 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 más información sobre cómo usar un certificado, consulte estas instrucciones.

Paso 3: Agregar un ámbito

Dado que esta aplicación inicia la sesión de los usuarios, es necesario 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 User.Read esté seleccionado. Si es necesario, utilice el cuadro de búsqueda.
  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.py y se mantienen 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 identificador URI de redireccionamiento que ha configurado anteriormente.

    flask run --debug --host=localhost --port=5000
    
  4. Copie la URL https que aparece en el terminal, por ejemplo, https://localhost:5000, y péguela en un navegador. Recomendamos utilizar una sesión de navegador privada o de incógnito.

  5. Siga los pasos e introduzca los datos 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.

Funcionamiento

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

Diagrama que muestra el funcionamiento de la aplicación de ejemplo que se ha generado en este inicio rápido.

  1. La aplicación usa el identity paquete 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: