Autenticación de soluciones de administración de Batch con Active Directory

Las aplicaciones que llaman al servicio de Azure Batch Management se autentican con la biblioteca de autenticación de Microsoft (Microsoft Entra ID). Microsoft Entra ID es el directorio basado en la nube multiinquilino y el servicio de administración de identidades de Microsoft. El propio Azure usa Microsoft Entra ID para la autenticación de sus clientes, administradores de servicios y usuarios de la organización.

La biblioteca Batch Management .NET expone tipos para trabajar con cuentas, claves de cuenta, aplicaciones y paquetes de aplicaciones de Batch. La biblioteca Batch Management .NET es un cliente de proveedor de recursos de Azure y se utiliza junto con Azure Resource Manager para administrar estos recursos mediante programación. Se necesita Microsoft Entra ID para autenticar las solicitudes realizadas a través de cualquier cliente de proveedor de recursos de Azure, incluida la biblioteca Batch Management .NET y a través de Azure Resource Manager.

En este artículo, se describe el uso de Microsoft Entra ID para autenticar desde aplicaciones que utilizan la biblioteca Batch Management .NET. Se muestra cómo usar Microsoft Entra ID para autenticar a un administrador o coadministrador de la suscripción mediante la autenticación integrada. Se utiliza el proyecto de ejemplo AccountManagement, disponible en GitHub, para guiarle en el uso de Microsoft Entra ID con la biblioteca Batch Management .NET.

Para más información sobre el uso de la biblioteca Batch Management .NET y el ejemplo de AccountManagement, consulte Administración de cuentas y cuotas de Batch con la biblioteca cliente Batch Management .NET.

Registro de la aplicación con Microsoft Entra ID

La Biblioteca de autenticación de Microsoft (MSAL) proporciona una interfaz de programación para Microsoft Entra ID que puede usar en las aplicaciones. Para llamar a MSAL desde la aplicación, debe registrar la aplicación en un inquilino de Microsoft Entra. Al registrar la aplicación, se proporciona Microsoft Entra ID con información sobre la aplicación, incluido un nombre para ella en el inquilino de Microsoft Entra. Microsoft Entra ID proporciona un id. de aplicación, que se utiliza para asociar la aplicación con Microsoft Entra ID en tiempo de ejecución. Para obtener más información sobre el id. de aplicación, consulte Objetos de aplicación y entidad de servicio en Microsoft Entra ID.

Siga los pasos que aparecen en la sección Incorporación de una aplicación en Integración de aplicaciones con Microsoft Entra ID para registrar la aplicación de ejemplo AccountManagement. Especifique Aplicación de cliente nativo como tipo de aplicación. El identificador URI OAuth 2.0 estándar del sector para el URI de redireccionamiento es urn:ietf:wg:oauth:2.0:oob. Pero puede especificar cualquier identificador URI válido (como http://myaccountmanagementsample) para el URI de redirección, ya que no es necesario que sea un punto de conexión real.

Adding an application

Una vez completado el proceso de registro, verá que aparecen el identificador de la aplicación y el identificador de objeto (entidad de servicio) para la aplicación.

Completed registration process

Concesión a la API de Azure Resource Manager de acceso a la aplicación

A continuación, debe delegar el acceso a la aplicación a la API de Azure Resource Manager. El identificador de Microsoft Entra para la API de Resource Manager es Windows Azure Service Management API.

Siga estos pasos en Azure Portal:

  1. En el panel de navegación izquierdo de Azure Portal, elija Todos los servicios, haga clic en Registros de aplicacionesy, luego, en Agregar.

  2. Busque el nombre de la aplicación en la lista de registros de aplicación:

    Search for your application name

  3. Se mostrará la hoja Configuración. En la sección Acceso de API, seleccione Permisos necesarios.

  4. Haga clic en Agregar para agregar un nuevo permiso necesario.

  5. En el paso 1, escriba Windows Azure Service Management API, seleccione esa API en la lista de resultados y haga clic en el botón Seleccionar.

  6. En el paso 2, active la casilla de verificación situada junto a Access Azure classic deployment model as organization users (Acceder al modelo de implementación clásica como usuarios de la organización) y haga clic en el botón Seleccionar.

  7. Haga clic en el botón Listo.

La hoja Permisos necesarios ya muestra que se han concedido permisos a la aplicación para las API de MSAL y de Resource Manager. La primera vez que registra la aplicación con Microsoft Entra ID, se conceden permisos a MSAL de forma predeterminada.

Delegate permissions to the Azure Resource Manager API

Puntos de conexión de Microsoft Entra

Para autenticar sus soluciones de Batch Management con Microsoft Entra ID, necesitará dos puntos de conexión conocidos.

  • El punto de conexión común de Microsoft Entra proporciona una interfaz genérica de recopilación de credenciales cuando no se proporciona un inquilino específico, como en el caso de la autenticación integrada:

    https://login.microsoftonline.com/common

  • El punto de conexión de Azure Resource Manager se usa para adquirir un token para la autenticación de solicitudes en el servicio de administración de Batch:

    https://management.core.windows.net/

La aplicación de ejemplo de AccountManagement define las constantes para estos puntos de conexión. No cambie estas constantes:

// Azure Active Directory "common" endpoint.
private const string AuthorityUri = "https://login.microsoftonline.com/common";
// Azure Resource Manager endpoint
private const string ResourceUri = "https://management.core.windows.net/";

Referencia al identificador de aplicación

La aplicación cliente usa el identificador de aplicación (conocido también como Id. de cliente) para acceder a Microsoft Entra ID en tiempo de ejecución. Una vez que haya registrado la aplicación en Azure Portal, actualice el código para usar el identificador de aplicación proporcionado por Microsoft Entra ID para la aplicación registrada. En la aplicación de ejemplo AccountManagement, copie el identificador de la aplicación desde Azure Portal a la constante adecuada:

// Specify the unique identifier (the "Client ID") for your application. This is required so that your
// native client application (i.e. this sample) can access the Microsoft Graph API. For information
// about registering an application in Azure Active Directory, please see "Register an application with the Microsoft identity platform" here:
// https://learn.microsoft.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";

Copie también el URI de redirección especificado durante el proceso de registro. El identificador URI de redireccionamiento especificado en el código debe coincidir con el identificador URI de redireccionamiento que proporcionó al registrar la aplicación.

// The URI to which Azure AD will redirect in response to an OAuth 2.0 request. This value is
// specified by you when you register an application with AAD (see ClientId comment). It does not
// need to be a real endpoint, but must be a valid URI (e.g. https://accountmgmtsampleapp).
private const string RedirectUri = "http://myaccountmanagementsample";

Adquisición de un token de autenticación de Microsoft Entra

Después de registrar el ejemplo de AccountManagement en el inquilino de Microsoft Entra y actualizar el código fuente de ejemplo con sus valores, el ejemplo estará listo para autenticarse con Microsoft Entra ID. Cuando ejecute el ejemplo, MSAL intentará adquirir un token de autenticación. En este paso, le pedirá las credenciales de Microsoft:

// Obtain an access token using the "common" AAD resource. This allows the application
// to query AAD for information that lies outside the application's tenant (such as for
// querying subscription information in your Azure account).
AuthenticationContext authContext = new AuthenticationContext(AuthorityUri);
AuthenticationResult authResult = authContext.AcquireToken(ResourceUri,
                                                        ClientId,
                                                        new Uri(RedirectUri),
                                                        PromptBehavior.Auto);

Después de proporcionar sus credenciales, la aplicación de ejemplo emitirá las solicitudes autenticadas para el servicio de administración de Batch.

Pasos siguientes