Azure Data Studio: conectividad de Azure

Azure Data Studio usa la Biblioteca de autenticación de Microsoft (MSAL) de forma predeterminada para adquirir un token de acceso de Microsoft Entra ID. La configuración que se aplica a la autenticación de Microsoft Entra se describe, junto con problemas observados habitualmente y sus soluciones.

Nota:

Aunque Microsoft Entra ID es el nuevo nombre de Azure Active Directory (Azure AD), para evitar interrumpir los entornos existentes, Azure AD sigue estando en algunos elementos codificados de forma rígida como campos de interfaz de usuario, proveedores de conexiones, códigos de error y cmdlets. En este artículo, los dos nombres son intercambiables.

Azure: Biblioteca de autenticación

Esta configuración solo está disponible en Azure Data Studio 1.41 a 1.45. Ya no está disponible en Azure Data Studio 1.46 y versiones posteriores.

Esta configuración controla la biblioteca de autenticación que usa Azure Data Studio al agregar una cuenta de Microsoft Entra. La Biblioteca de autenticación de Microsoft (MSAL) ofrece servicios de autenticación y autorización mediante implementaciones compatibles con los estándares de OAuth 2.0 y OpenID Connect (OIDC) 1.0. Obtenga más información sobre la Biblioteca de autenticación de Microsoft (MSAL). En Azure Data Studio 1.46 y versiones posteriores, MSAL es la única biblioteca en uso, ya que ADAL (biblioteca de autenticación de Active Directory) está en desuso.

Método de autenticación de Azure

Azure Data Studio admite la autenticación multifactor (MFA) de Microsoft Entra mediante los siguientes modos:

  • Autenticación con Concesión de código (habilitada de forma predeterminada)
  • Autenticación con Código de dispositivo

Cuentas > Azure> Auth: Concesión de código

Settings.json

"accounts.azure.auth.codeGrant": true

Screenshot of Azure authentication Code Grant option.

Cuando se selecciona el método de Concesión de código, se pide a los usuarios que se realicen una autenticación basada en explorador. Esta opción está habilitada de manera predeterminada.

Cuentas > Azure > Auth: Código de dispositivo

Settings.json

"accounts.azure.auth.deviceCode": true

Screenshot of Azure authentication Device Code option.

Cuando el método de Código de dispositivo está habilitado, se les proporciona a los usuarios un código y una dirección URL a la que acceder para iniciar sesión.

Cuando se activan ambas opciones, se pide a los usuarios que seleccionen uno de los dos modos de autenticación al agregar una cuenta de Microsoft Entra.

Configuración de la nube de Azure

Azure Data Studio admite la autenticación de Microsoft Entra con nubes nacionales. La nube pública de Azure está habilitada de forma predeterminada, pero los usuarios pueden habilitar otras nubes nacionales según sea necesario:

Settings.json

"accounts.azure.cloud.enableChinaCloud": false,
"accounts.azure.cloud.enablePublicCloud": true,
"accounts.azure.cloud.enableUsGovCloud": false

Screenshot of Azure authentication National Clouds.

También se pueden definir puntos de conexión de nube personalizados. Consulte Configuración de puntos de conexión de nube personalizados.

Configuración de recurso de Azure

Esta configuración aplica filtros en los recursos e inquilinos de Azure.

  • Filtro de configuración de recursos: aplica el filtro de inclusión a los recursos que se deben mostrar.
  • Filtro de configuración de inquilinos: aplica el filtro de exclusión a los inquilinos que se deben omitir.

Settings.json

"azure.resource.config.filter": [],
"azure.tenant.config.filter": [
    "313b5f9e-9b92-414c-8d87-a317e42d0222"
]

Screenshot of Azure authentication resource configuration options.

Configuración del proxy para la autenticación de Microsoft Entra

Si usa Azure Data Studio detrás de un proxy, los usuarios deben especificar la configuración de proxy para que Azure Data Studio se comunique con puntos de conexión externos. Hay dos maneras de proporcionar la configuración de proxy para que Azure Data Studio use:

  • Establecer la configuración de proxy en Azure Data Studio (Configuración > HTTP: Configuración de Proxy)
  • Establecer variables de entorno para la configuración de proxy

La configuración de Azure Data Studio tiene prioridad sobre las variables de entorno.

Configuración de proxy de Azure Data Studio

Las siguientes opciones están disponibles en Azure Data Studio:

Settings.json

"http.proxy": "https://userName@fqdn:yourPassword@yourProxyURL.com:8080",
"http.proxyStrictSSL": true,
"http.proxyAuthorization": "",
"http.proxySupport" : "override"

Screenshot of Azure authentication proxy settings.

Variables de entorno admitidas para proxy

  • 'HTTP_PROXY': 'http://userName@fqdn:yourPassword@yourProxyURL.com:8080'
  • 'HTTPS_PROXY': 'https://userName@fqdn:yourPassword@yourProxyURL.com:8080'

Direcciones URL en la lista de permitidos

En un entorno de proxy, es posible que las aplicaciones de usuario necesiten permitir dominios específicos que use Azure Data Studio. Los nombres de host a través de los que necesitará o será conveniente que permita la comunicación son:

Azure público

  • https://management.azure.com
  • https://login.microsoftonline.com/

Azure (Administración pública de EE. UU.)

  • https://management.core.usgovcloudapi.net/
  • https://login.microsoftonline.us/

Azure operado por 21Vianet

  • https://management.core.chinacloudapi.cn/
  • https://login.partner.microsoftonline.cn/

Las direcciones URL que es recomendable permitir a veces pueden variar de caso a caso. Para comprobar que no está bloqueando el paso de ninguna dirección URL, vaya a Ayuda > Alternar herramientas de desarrollo y seleccione la pestaña Red. Se mostrará una lista de las direcciones URL bloqueadas. Es posible que tenga que permitirlas para añadir la cuenta correctamente.

Configuración de puntos de conexión de nube personalizados

Azure Data Studio 1.46 presenta compatibilidad para agregar puntos de conexión personalizados para nubes no publicadas.

Agregar puntos de conexión de nube personalizados

Abra Configuración en Azure Data Studio (Ctrl/Cmd + Shift + P) y escriba Azure: Configuración de Proveedor personalizada y, a continuación, seleccione Editar en settings.json, que abre el archivo settings.json automáticamente, y agregue azure.customProviderSettings:

Screenshot of azure.customProviderSettings added to settings.json file.

Las siguientes entradas son necesarias para que el punto de conexión funcione:

  • host
  • clientId
  • scopes
  • sqlResource
  • microsoftResource
  • armResource
  • graphResource
  • azureStorageResource

Se presenta un ejemplo de entrada JSON para un proveedor como guía:

"azure.customProviderSettings": [
    {
        "name": "Azure Custom",
        "settings": {
            "metadata": {
                "displayName": "Azure Custom Cloud",
                "id": "azure_customCloud",
                "endpoints": {
                    "host": "https://hostendpoint.com/",
                    "clientId": "test",
                    "microsoftResource": "https://microsoftresource.com/",
                    "graphResource": "https://graphresource.com/",
                    "msGraphResource": "https://msgraphresource.com/",
                    "armResource": "https://armresource.com/",
                    "sqlResource": "https://sqlresource.net/",
                    "azureKeyVaultResource": "https://azurekeyvault.net/",
                    "azureLogAnalyticsResource": "https://azure.loganalytic.io/",
                    "azureStorageResource": {
                        "endpoint": "",
                        "endpointSuffix": ".azurestorage.net/"
                    },
                    "azureKustoResource": "https://kusto.net/",
                    "powerBiResource": "https://powerbi.net/",
                    "scopes": "https://management.net/scopes",
                    "portalEndpoint": "https://portal.azure.com"
                }
            }
        }
    }
]

Después de agregar el punto de conexión, guarde el archivo settings.json. Azure Data Studio le notifica que vuelva a cargar la aplicación. Una vez que se haya vuelto a cargar, se le notificará que se han cargado los puntos de conexión personalizados:

Screenshot after reloading Azure Data Studio indicating custom endpoints have been loaded.

Si este mensaje no aparece, compruebe que existen todas las entradas del punto de conexión y que se rellenan.

Después de agregar una nube personalizada, abra el panel Cuentas vinculadas de Azure y podrá ver el viewlet en la nube personalizada. Seleccione Agregar una cuenta y elija el modo de autenticación si se le solicita. Se le lleva al punto de conexión de host para autenticarse.

Screenshot of a custom cloud provider in the Azure accounts pane.

Varios proveedores de nube personalizados

Se pueden agregar proveedores de nube adicionales al archivo settings.json con el mismo formato.

"azure.customProviderSettings": [
    {
        "name": "Azure Custom",
        "settings": {
            "metadata": {
                "displayName": "Azure Custom Cloud",
                "id": "azure_customCloud",
                "endpoints": {
                    "host": "https://hostendpoint.com/",
                    "clientId": "test",
                    "microsoftResource": "https://microsoftresource.com/",
                    "graphResource": "https://graphresource.com/",
                    "msGraphResource": "https://msgraphresource.com/",
                    "armResource": "https://armresource.com/",
                    "sqlResource": "https://sqlresource.net/",
                    "azureKeyVaultResource": "https://azurekeyvault.net/",
                    "azureLogAnalyticsResource": "https://azure.loganalytic.io/",
                    "azureStorageResource": {
                        "endpoint": "",
                        "endpointSuffix": ".azurestorage.net/"
                    },
                    "azureKustoResource": "https://kusto.net/",
                    "powerBiResource": "https://powerbi.net/",
                    "scopes": "https://management.net/scopes",
                    "portalEndpoint": "https://portal.azure.com"
                }
            }
        }
    },
    {
        "name": "Azure Custom 2",
        "settings": {
            "metadata": {
                "displayName": "Azure Custom Cloud 2",
                "id": "azure_customCloud2",
                "endpoints": {
                    "host": "https://hostendpoint.com/",
                    "clientId": "test",
                    "microsoftResource": "https://microsoftresource.com/",
                    "graphResource": "https://graphresource.com/",
                    "msGraphResource": "https://msgraphresource.com/",
                    "armResource": "https://armresource.com/",
                    "sqlResource": "https://sqlresource.net/",
                    "azureKeyVaultResource": "https://azurekeyvault.net/",
                    "azureLogAnalyticsResource": "https://azure.loganalytic.io/",
                    "azureStorageResource": {
                        "endpoint": "",
                        "endpointSuffix": ".azurestorage.net/"
                    },
                    "azureKustoResource": "https://kusto.net/",
                    "powerBiResource": "https://powerbi.net/",
                    "scopes": "https://management.net/scopes",
                    "portalEndpoint": "https://portal.azure.com"
                }
            }
        }
    }
]

Problemas de autenticación frecuentes

Se describen los posibles problemas y soluciones al agregar una cuenta de Azure.

Problema: Error de SSL en la página localhost (ERR_SSL_PROTOCOL_ERROR)

Es posible que los usuarios vean un error SSL al iniciar sesión en su cuenta. Este flujo abre una página web externa en localhost, la cual suele solicitar a los usuarios que inicien sesión a través de las solicitudes de autenticación estándar de Microsoft. La dirección URL de esta página es similar a http://localhost:50055/signin?nonce=...

Es posible que algunos exploradores estén configurados para redirigir automáticamente todos los vínculoshttp a https, lo cual interrumpe este proceso, ya que el servidor local de la página web no admite https. Si el vínculo de la barra de direcciones comienza por https, obtendrá un error SSL y la página no se cargará. En ese caso, las soluciones enumeradas aquí pueden solucionar el problema.

Cambiar la dirección URL a http

En primer lugar, cambie manualmente la dirección URL de https:// a http://. Puede que el explorador la vuelva a cambiar a https, en cuyo caso es necesario probar otra opción.

Deshabilitar HSTS (Seguridad de transporte estricta de HTTP)

En el caso de los exploradores Edge o Chrome, puede deshabilitar HSTS para localhost.

  1. Abra Edge o Chrome y, en la barra de direcciones, escriba edge://net-internals/#hsts (o chrome://net-internals/#hsts en Chrome).
  2. Desplácese hasta la parte inferior de la página y, en la sección Delete domain security policies, escriba localhost y presione Delete.

Una vez completado, debería poder iniciar sesión el explorador ya no debería redirigir los vínculos localhost automáticamente a https.

Problema: No se puede agregar una cuenta detrás de un proxy

Si la aplicación de usuario se ejecuta en un entorno detrás de un proxy, es posible que la autenticación de usuario no se complete. Puede usar estos pasos para resolver el problema.

  1. Vuelva a comprobar las variables de entorno y la configuración de http.proxy en Azure Data Studio. Si el proxy requiere autenticación de usuario, proporcionar un nombre de usuario o contraseña en la dirección URL http.proxy puede resolver problemas de autenticación; de lo contrario, Azure Data Studio no puede leer las credenciales de usuario que ha iniciado sesión. Como alternativa, puede intentar ejecutar Azure Data Studio como un usuario diferente, ya que puede ayudar a resolver problemas de autenticación con el proxy. Sin embargo, este último paso solo funciona en algunos escenarios.

  2. Las direcciones URL que es recomendable permitir pueden variar de caso a caso. Para comprobar que no está bloqueando el paso de ninguna dirección URL, vaya a Ayuda > Alternar herramientas de desarrollo y seleccione la pestaña Red. Aquí verá las direcciones URL bloqueadas que es posible que tenga que permitir para añadir la cuenta correctamente.

  3. Desactive Http: SSL estricta de proxy. Es posible que el certificado de proxy no sea verificable en la lista de entidades con certificación de confianza. Deshabilitar la SSL estricta puede descartar que el problema sea el certificado del proxy.

En conclusión:

Como aplicación multiplataforma, la resolución de proxy de Azure Data Studio captura el proxy de cualquier configuración dentro de la aplicación o a través de variables de entorno. El objetivo es evitar la interacción con la configuración del sistema, la cual puede variar significativamente en diferentes sistemas operativos.

Problema: La extensión de Azure Core está deshabilitada

La extensión Azure Core es una extensión integrada en Azure Data Studio. Asegúrese de que no está deshabilitado o desinstalado accidentalmente. Esta extensión es necesaria para autenticar las cuentas de Microsoft Entra y conectarse a los recursos mediante MFA.

Screenshot of built-in Azure Core extension.

Problema: Los certificados de entidad de certificación (CA) del sistema han expirado

Como parte de su comportamiento predeterminado, Azure Data Studio valida los certificados de CA raíz del sistema cuando se realizan llamadas a la API REST con el protocolo HTTPS. La validación se controla con la configuración http:systemCertificates, que está habilitada de forma predeterminada:

Screenshot of system certificates setting.

"http.systemCertificates": true

Si el certificado de ca raíz de un sistema ha expirado, se producirá un error en las solicitudes de autenticación al identificador de Entra de Microsoft y se capturará un error en los registros de la cuenta de Azure:

error: certificate is expired

Para mitigar este error, debe quitar los certificados de CA raíz expirados o deshabilitar la configuración para que no se validen los certificados del sistema.

Registros de captura de la autenticación de Azure

Azure Data Studio captura eventos de error para la actividad de la cuenta de Microsoft Entra de forma predeterminada. Para habilitar seguimientos más detallados, los usuarios pueden modificar estas opciones de configuración:

Azure: Nivel de registro

Esta configuración configura el nivel de registro de la información del núcleo de Azure que se puede capturar en Azure Data Studio. Cámbiela a Detallado o Todo para capturar registros detallados que pueden ser útiles a la hora de diagnosticar errores de autenticación. Para más información, consulte Registros y ubicación de Azure Data Studio para obtener información sobre cómo capturar información de registro.

Settings.json

"azure.loggingLevel": "Verbose"

Screenshot of Azure authentication logging Level configuration.

Azure: registro de DCP

Los usuarios pueden habilitar el registro de DCP (datos de carácter personal) para fines de prueba y depuración locales. Esta configuración permite un registro más exhaustivo del proceso de autenticación, pero puede contener información confidencial, como tokens de acceso o identificadores de usuario al autenticarse con el identificador de Microsoft Entra. Dado que este registro captura información confidencial, se recomienda:

  • No compartir estos registros con nadie más, especialmente al agregar registros a incidencias de GitHub
  • Deshabilitar la configuración una vez recopilada la información necesaria
  • Eliminar los archivos de registro una vez deshabilitada la configuración

Settings.json

"azure.piiLogging": true

Screenshot of Azure authentication PII logging option.

Azure: Sin lista de claves del sistema

Esta configuración deshabilita la integración de listas de claves del sistema para evitar solicitudes repetidas de acceso a claves en macOS. Las credenciales de usuario se almacenan alternativamente en un archivo plano en el directorio principal del usuario.

Settings.json

"azure.noSystemKeychain": true

Screenshot of Azure authentication keychain configuration.

Borrar la caché de tokens de la cuenta de Microsoft Entra

Azure Data Studio mantiene una memoria caché de tokens de acceso para evitar la limitación de solicitudes de token a Microsoft Entra ID. Es posible que la caché de tokens de Azure Data Studio esté obsoleta, lo cual requiere limpiar los tokens de acceso expirados de la caché de aplicaciones.

Ejecute este comando desde la paleta de comandos (Ctrl/CMD + Mayús + P) para borrar los tokens de acceso de las cuentas vinculadas de Microsoft Entra:

Azure Accounts: Clear Azure Account Token Cache (accounts.clearTokenCache)

Borrar todas las cuentas guardadas de Microsoft Entra

Ejecute este comando desde la paleta de comandos (Ctrl/CMD + Mayús + P) para quitar todas las cuentas de Microsoft Entra vinculadas de Azure Data Studio:

Borrar todas las cuentas guardadas (clearSavedAccounts)