Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Note
La compatibilidad con el agente de autenticación de macOS se introduce con msal versión 1.31.0.
Usar un agente de autenticación en macOS te permite simplificar la forma en que los usuarios se autentican con Microsoft Entra ID desde tu aplicación, así como beneficiarte de futuras funcionalidades que protegen los tokens de actualización de Microsoft Entra ID frente a la exfiltración y el uso indebido.
Los intermediarios de autenticación no vienen preinstalados en macOS, sino que son aplicaciones desarrolladas por Microsoft, como Portal de empresa. Estas aplicaciones normalmente se instalan cuando un equipo macOS está inscrito en la flota de dispositivos de una empresa a través de una solución de administración de puntos de conexión como Microsoft Intune. Para obtener más información sobre la configuración de dispositivos Apple con la plataforma de identidad de Microsoft, consulte el complemento de inicio de sesión único (SSO) empresarial de Microsoft para dispositivos Apple.
Uso
Para usar el broker, deberá instalar los paquetes relacionados con el broker, además del paquete principal de MSAL disponible en PyPI:
pip install msal[broker]>=1.31,<2
Importante
Si los paquetes relacionados con el agente no están instalados y intentará usar el agente de autenticación, obtendrá un error: ImportError: You need to install dependency by: pip install "msal[broker]>=1.31,<2".
Normalmente, en macOS, sus aplicaciones de Python de cliente públicoobtendrían tokens a través del navegador del sistema. Para usar en su lugar los agentes de autenticación instalados en un sistema macOS, deberá pasar un argumento adicional en el constructor PublicClientApplication: enable_broker_on_mac
from msal import PublicClientApplication
app = PublicClientApplication(
"CLIENT_ID",
authority="https://login.microsoftonline.com/common",
enable_broker_on_mac =True)
Importante
Si va a escribir una aplicación multiplataforma, también tendrá que usar enable_broker_on_windows, como se describe en el artículo Uso de MSAL Python con el Administrador de cuentas web.
Además del cambio en el constructor, su aplicación debe admitir URI de redirección específicas del broker. En el caso de las aplicaciones sin firmar , el URI es:
msauth.com.msauth.unsignedapp://auth
Para las aplicaciones firmadas, el URI de redirección debe ser:
msauth.BUNDLE_ID://auth
Si los URI de redireccionamiento no están configurados correctamente en la configuración de la aplicación dentro del portal de Entra, recibirá un error similar al siguiente:
Error detected...
tag=508170375
context=AADSTS50011 Description: (pii), Domain: MSAIMSIDOAuthErrorDomain.Error was thrown in location: Broker
errorCode=-51411
status=Response_Status.Status_Unexpected
Una vez configurado, puede llamar a acquire_token_interactive para obtener un token.
result = app.acquire_token_interactive(["User.ReadBasic.All"],
parent_window_handle=app.CONSOLE_WINDOW_HANDLE)
Note
El parent_window_handle parámetro es necesario aunque en macOS no se use. Para las aplicaciones con interfaz gráfica, la ubicación de la ventana de inicio de sesión se determinará según el caso y actualmente no puede asociarse a una ventana específica. En una actualización futura, este parámetro se usará para determinar la ventana principal real .
Almacenamiento en caché de tokens
El intermediario de autenticación se encarga del almacenamiento en caché de los tokens de actualización y de acceso. No es necesario configurar el almacenamiento en caché personalizado.
Versiones y arquitecturas de macOS compatibles
El agente de macOS admite las siguientes configuraciones:
| Componente | Versiones compatibles |
|---|---|
| Arquitectura | ARM64 (Apple Silicon) y x64 (Intel) |
| Versión de macOS | macOS 10.15 (Catalina) y versiones posteriores |
Tip
Se recomienda actualizar a la versión más reciente de macOS para garantizar la compatibilidad con las características de seguridad y las funcionalidades de agente más recientes.