Compartir a través de


Inicio rápido: Adquisición de un token y llamada a Microsoft Graph API desde una aplicación de consola en Python mediante la identidad de la aplicación

¡Bienvenido! Probablemente esta no sea la página que esperaba. Mientras trabajamos en una corrección, este vínculo debería llevarle al artículo correcto:

Inicio rápido: Adquisición de un token y llamada a Microsoft Graph desde una aplicación demonio de Python

Lamentamos las molestias y agradecemos su paciencia mientras trabajamos para resolverlo.

En este inicio rápido descargará y ejecutará un código de ejemplo que muestra cómo una aplicación de Python puede obtener un token de acceso mediante la identidad de la aplicación para llamar a Microsoft Graph API y mostrar una lista de usuarios del directorio. En el ejemplo de código se muestra cómo se puede ejecutar un trabajo desatendido o un servicio de Windows con una identidad de aplicación, en lugar de la identidad de un usuario.

Requisitos previos

Para ejecutar esta muestra, necesita:

Descarga y configuración de la aplicación de inicio rápido

Paso 1: Configuración de la aplicación en Azure Portal

Para que el ejemplo de código de este inicio rápido funcione, cree un secreto de cliente y agregue el permiso de aplicación User.Read.All de Graph API.

Already configured La aplicación está configurada con estos atributos.

Paso 2: Descarga del proyecto de Python

Nota:

Enter_the_Supported_Account_Info_Here

Si intenta ejecutar la aplicación en este momento, recibirá un error HTTP 403 - Prohibido: Insufficient privileges to complete the operation. Este error se produce porque cualquier permiso de solo aplicación requiere consentimiento del administrador: un administrador global del directorio debe dar su consentimiento a la aplicación. Seleccione una de las opciones siguientes según el rol:

Administrador de inquilinos global

Si es administrador global, vaya a la página Permisos de API, seleccione Conceder consentimiento del administrador para Enter_the_Tenant_Name_Here.

Usuario estándar

Si es usuario estándar de su inquilino, pídale a un administrador global que conceda consentimiento del administrador para su aplicación. Para ello, proporcione la siguiente dirección URL a su administrador:

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Paso 4: Ejecución de la aplicación

Deberá instalar las dependencias de este ejemplo una vez.

pip install -r requirements.txt

A continuación, ejecute la aplicación a través del símbolo del sistema o la consola:

python confidential_client_secret_sample.py parameters.json

Debería ver en la salida de la consola algún fragmento de JSON que represente una lista de los usuarios del directorio de Microsoft Entra.

Importante

Esta aplicación de inicio rápido usa un secreto de cliente para identificarse como cliente confidencial. Como el secreto de cliente se agrega como texto sin formato a los archivos del proyecto, por motivos de seguridad, se recomienda que use un certificado en lugar de un secreto de cliente antes de considerar el uso de la aplicación en producción. Para más información sobre cómo usar un certificado, consulte estas instrucciones en el mismo repositorio de GitHub que este ejemplo, pero en la segunda carpeta, 2-Call-MsGraph-WithCertificate.

Más información

Python de MSAL

MSAL para Python es la biblioteca que se usa para iniciar la sesión de los usuarios y solicitar los tokens que se usan para acceder a una API protegida por la Plataforma de identidad de Microsoft. Como se ha descrito, en este inicio rápido se solicitan tokens mediante la propia identidad de la aplicación, en lugar de permisos delegados. El flujo de autenticación usado en este caso se conoce como flujo de OAuth de credenciales de cliente . Para obtener más información sobre cómo usar MSAL para Python con aplicaciones de demonio, consulte este artículo.

Para instalar MSAL para Python, ejecute el siguiente comando pip:

pip install msal

Inicialización de MSAL

Puede agregar la referencia de MSAL con el código siguiente:

import msal

A continuación, realice la inicialización de MSAL con el siguiente código:

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Donde: Descripción
config["secret"] Es el secreto de cliente creado para la aplicación en Azure Portal.
config["client_id"] Es el Identificador de aplicación (cliente) de la aplicación registrada en Azure Portal. Puede encontrar este valor en la página Información general de la aplicación en Azure Portal.
config["authority"] El punto de conexión STS para el usuario que se autenticará. Normalmente https://login.microsoftonline.com/{tenant} en la nube pública, donde {tenant} es el nombre o el identificador del inquilino.

Para más información, consulte la documentación de referencia de ConfidentialClientApplication.

Solicitud de tokens

Para solicitar un token mediante la identidad de la aplicación, use el método AcquireTokenForClient:

result = None
result = app.acquire_token_silent(config["scope"], account=None)

if not result:
    logging.info("No suitable token exists in cache. Let's get a new one from Azure AD.")
    result = app.acquire_token_for_client(scopes=config["scope"])
Donde: Descripción
config["scope"] Contiene los ámbitos solicitados. Con clientes confidenciales se debe usar un formato similar a {Application ID URI}/.default para indicar que los ámbitos que se solicitan son los definidos estáticamente en el objeto de aplicación establecido en Azure Portal (con Microsoft Graph, {Application ID URI} apunta a https://graph.microsoft.com). Con API web personalizadas, {Application ID URI} se define en la sección Exponer una API en Registros de aplicaciones de Azure Portal.

Para más información, consulte la documentación de referencia de AcquireTokenForClient.

Ayuda y soporte técnico

Si necesita ayuda, desea informar de un problema o desea obtener información sobre las opciones de soporte técnico, consulte Opciones de ayuda y soporte técnico para desarrolladores.

Pasos siguientes

Para más información sobre las aplicaciones demonio, consulte la página de aterrizaje del escenario.