Conexión a Azure China para Monitoreo y Escalado Automático

Para implementar el monitoreo de máquinas virtuales basado en Microsoft Azure Management Libraries, es esencial establecer una conexión con Azure. Este artículo detalla el proceso para conectarse al entorno de Azure en China utilizando credenciales de token.

La autenticación se realiza mediante OAuth a través de Azure AD. Los pasos incluyen registrar una aplicación en Azure AD, configurar un proyecto de C# y generar un token de acceso. A continuación, se describe el flujo completo.

1. Registro de la aplicación en Azure AD

Acceda al portal de administración de Azure China (https://manage.windowsazure.cn) con una cuenta que tanga permisos de Active Directory. Navegue a la sección de Directorio Activo, seleccione el directorio y agregue una nueva aplicación de cliente nativo. Configure la URL de redirección como http://localhost y guarde los cambios.

2. Configuración del proyecto y dependencias

Cree un proyecto de consola en C# e instale los paquetes NuGet necesarios: Microsoft Azure Management Libraries y Active Directory Authentication Library. Asegúrese de incluir la referencia a System.Configuration para acceder a los ajustes de la aplicación.

3. Implementación de la autenticación por token

Modifique el archivo App.config para incluir los parámetros de configuración, como el ID de suscripción, el ID de cliente de la aplicación, el ID de inquilino y los endpoints de autenticación específicos para Azure China:

  • URL de inicio de sesión: https://login.chinacloudapi.cn/{0}
  • Endpoint de API: https://management.core.chinacloudapi.cn/
  • URI de redirección: http://localhost/

Para gestionar la autenticación, cree una clase que obtenga el token de acceso y las credenciales de nube:

namespace AzureMonitoring
{
    using System.Configuration;
    using Microsoft.WindowsAzure;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;

    public class AzureConnectionManager
    {
        public static TokenCloudCredentials GenerateCredentials(string subscriptionIdentifier = "")
        {
            var accessToken = RetrieveAccessToken();
            if (string.IsNullOrEmpty(subscriptionIdentifier))
                subscriptionIdentifier = ConfigurationManager.AppSettings["subscriptionId"];
            return new TokenCloudCredentials(subscriptionIdentifier, accessToken);
        }

        private static string RetrieveAccessToken()
        {
            var authContext = new AuthenticationContext(
                string.Format(ConfigurationManager.AppSettings["login"],
                              ConfigurationManager.AppSettings["tenantId"]));

            var authResult = authContext.AcquireToken(
                ConfigurationManager.AppSettings["apiEndpoint"],
                ConfigurationManager.AppSettings["clientId"],
                new Uri(ConfigurationManager.AppSettings["redirectUri"]));

            if (authResult == null)
                throw new InvalidOperationException("Error al obtener el token JWT.");

            return authResult.AccessToken;
        }
    }
}

Utilice esta clase en el método principal para establecer la conexión y probar la funcionalidad de monitoreo:

static void Main(string[] args)
{
    var credentials = AzureConnectionManager.GenerateCredentials();
    var monitorClient = new MonitorClient(credentials);
    var metricDefinitions = monitorClient.GetMetricDefinitions();
    // Los detalles de uso del MonitorClient se explicarán en artículos posteriores.
    Console.ReadLine();
}

Con estos pasos, la conexión a Azure China queda establecida, permitiendo el acceso a métricas de rendiimento para el monitoreo y escalado automático de máquinas virtuales.

Etiquetas: Azure Microsoft Azure Management Libraries Token Cloud Credentials Azure AD C#

Publicado el 6-20 02:21