managed_identity Módulo

Clases

ArcPlatformNotSupportedError
ManagedIdentity

Alimente una instancia de esta clase para <xref:msal.ManagedIdentityClient> adquirir el token de la identidad administrada especificada.

ManagedIdentityClient

Esta API encapsula varios back-ends de identidad administrada: VM, App Service, Azure Automation (Runbooks), Azure Function, Service Fabric y Azure Arc.

También proporciona compatibilidad con la caché de tokens.

Note

Cloud Shell compatibilidad no se implementa en esta clase.

Desde MSAL Python 1.18 en mayo de 2022, se ha implementado en

<xref:PublicClientApplication.acquire_token_interactive> a través del patrón de llamada

PublicClientApplication(...). acquire_token_interactive(scopes=[...], prompt="none").

Esto es adecuado, ya que Cloud Shell produce un token con

permisos delegados para el usuario final que ha iniciado sesión en el Azure Portal

(como lo que hace publicClientApplication),

no un token con permisos de aplicación para una aplicación.

Cree un cliente de identidad administrada.

Receta 1: Codificación rígida de una identidad administrada para la aplicación:


   import msal, requests
   client = msal.ManagedIdentityClient(
       msal.UserAssignedManagedIdentity(client_id="foo"),
       http_client=requests.Session(),
       )
   token = client.acquire_token_for_client("resource")

Receta 2: Escribir una vez, correr por todas partes. Si usa una identidad administrada diferente en una implementación diferente, puede usar una variable de entorno (por ejemplo, MY_MANAGED_IDENTITY_CONFIG) para almacenar un blob json como {"ManagedIdentityIdType": "ClientId", "Id": "foo"} o {"ManagedIdentityIdType": "SystemAssigned", "Id": null}. La aplicación siguiente puede cargar la configuración de identidad administrada dinámicamente:


   import json, os, msal, requests
   config = os.getenv("MY_MANAGED_IDENTITY_CONFIG")
   assert config, "An ENV VAR with value should exist"
   client = msal.ManagedIdentityClient(
       json.loads(config),
       http_client=requests.Session(),
       )
   token = client.acquire_token_for_client("resource")
ManagedIdentityError
SystemAssignedManagedIdentity

Representa una identidad administrada asignada por el sistema.

Es equivalente a un Python dict de:


   {"ManagedIdentityIdType": "SystemAssigned", "Id": None}

o un blob JSON de:


   {"ManagedIdentityIdType": "SystemAssigned", "Id": null}
UserAssignedManagedIdentity

Representa una identidad administrada asignada por el usuario.

Depende del identificador proporcionado, el resultado es equivalente a uno de los siguientes:


   {"ManagedIdentityIdType": "ClientId", "Id": "foo"}
   {"ManagedIdentityIdType": "ResourceId", "Id": "foo"}
   {"ManagedIdentityIdType": "ObjectId", "Id": "foo"}

Funciones

get_managed_identity_source

Detecte el entorno actual y devuelva el origen de identidad probable.

Cuando esta función devuelve CLOUD_SHELL, debe usar <xref:msal.PublicClientApplication.acquire_token_interactive> con prompt="none" para obtener un token.

get_managed_identity_source()