Azure Data Studio - Konektivitas Azure

Azure Data Studio menggunakan Microsoft Authentication Library (MSAL) secara default untuk memperoleh token akses dari ID Microsoft Entra. Pengaturan yang berlaku untuk autentikasi Microsoft Entra dibahas, bersama dengan masalah yang umum diamati dan solusinya.

Catatan

Meskipun ID Microsoft Entra adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

Azure: Pustaka autentikasi

Pengaturan ini hanya tersedia di Azure Data Studio 1.41 hingga 1.45. Ini tidak lagi tersedia di Azure Data Studio 1.46 dan versi yang lebih baru.

Pengaturan ini mengontrol pustaka autentikasi yang digunakan oleh Azure Data Studio saat menambahkan akun Microsoft Entra. Microsoft Authentication Library (MSAL) menawarkan layanan autentikasi dan otorisasi menggunakan implementasi OAuth 2.0 dan OpenID Koneksi (OIDC) 1.0 yang sesuai standar. Baca selengkapnya tentang Microsoft Authentication Library (MSAL). Di Azure Data Studio 1.46 dan versi yang lebih baru, MSAL adalah satu-satunya pustaka yang digunakan, karena ADAL (Pustaka Autentikasi Direktori Aktif) tidak digunakan lagi.

Metode autentikasi Azure

Azure Data Studio mendukung autentikasi multifaktor Microsoft Entra (MFA) menggunakan mode berikut:

  • Menggunakan autentikasi Code Grant (diaktifkan secara default)
  • Menggunakan autentikasi Kode Perangkat

Akun > Azure > Auth: Pemberian Kode

Settings.json

"accounts.azure.auth.codeGrant": true

Screenshot of Azure authentication Code Grant option.

Ketika metode Code Grant dicentang, pengguna diminta untuk mengautentikasi dengan autentikasi berbasis browser. Pemadatan diaktifkan secara default.

Akun > Azure > Auth: Kode Perangkat

Settings.json

"accounts.azure.auth.deviceCode": true

Screenshot of Azure authentication Device Code option.

Ketika metode Kode Perangkat diaktifkan, pengguna disediakan dengan kode dan URL untuk dimasukkan yang kemudian dapat digunakan untuk masuk.

Saat kedua opsi dicentang, pengguna diminta untuk memilih salah satu dari dua mode autentikasi saat menambahkan akun Microsoft Entra.

Konfigurasi cloud Azure

Azure Data Studio mendukung autentikasi Microsoft Entra dengan cloud nasional. Azure Public Cloud diaktifkan secara default, tetapi pengguna dapat mengaktifkan cloud nasional lainnya sesuai kebutuhan:

Settings.json

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

Screenshot of Azure authentication National Clouds.

Titik akhir cloud kustom juga dapat ditentukan. Lihat Mengonfigurasi titik akhir cloud kustom.

Konfigurasi sumber daya Azure

Pengaturan ini menerapkan filter pada sumber daya dan penyewa Azure.

  • Filter Konfigurasi Sumber Daya: Menerapkan filter penyertaan ke sumber daya yang harus ditampilkan.
  • Filter Konfigurasi Penyewa: Menerapkan filter pengecualian ke penyewa yang harus diabaikan.

Settings.json

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

Screenshot of Azure authentication resource configuration options.

Penyiapan proksi untuk autentikasi Microsoft Entra

Jika menggunakan Azure Data Studio di belakang proksi, pengguna harus menentukan pengaturan proksi untuk Azure Data Studio untuk berkomunikasi dengan titik akhir eksternal. Ada dua cara untuk menyediakan pengaturan proksi untuk digunakan Azure Data Studio:

  • Mengatur konfigurasi proksi di Azure Data Studio (Pengaturan > Http: Proxy Pengaturan)
  • Mengatur variabel lingkungan untuk konfigurasi proksi

Pengaturan Azure Data Studio lebih diutamakan daripada variabel lingkungan.

Pengaturan proksi Azure Data Studio

Pengaturan berikut ini tersedia di 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.

Variabel lingkungan yang didukung untuk proksi

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

URL Daftar Izin

Di lingkungan proksi, aplikasi pengguna mungkin perlu mengizinkan domain tertentu yang digunakan oleh Azure Data Studio. Nama host yang mungkin Anda perlukan atau ingin izinkan komunikasinya adalah:

Azure Public

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

Azure (Pemerintah AS)

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

Azure dioperasikan oleh 21Vianet

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

URL yang diizinkan terkadang dapat bervariasi berdasarkan kasus per kasus. Untuk memverifikasi bahwa Anda tidak memblokir URL apa pun, buka Bantuan > Alihkan Alat Pengembang dan pilih tab Jaringan . SETIAP URL yang diblokir tercantum, dan Anda mungkin perlu mengizinkan URL tersebut untuk berhasil menambahkan akun Anda.

Mengonfigurasi titik akhir cloud kustom

Azure Data Studio 1.46 memperkenalkan dukungan untuk menambahkan titik akhir kustom untuk cloud nonpublik.

Menambahkan titik akhir cloud kustom

Buka Pengaturan di Azure Data Studio (Ctrl/Cmd + Shift + P) dan masukkan Azure: Penyedia Kustom Pengaturan, lalu pilih Edit di settings.json, yang membuka settings.json file secara otomatis dan menambahkan azure.customProviderSettings:

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

Entri berikut diperlukan agar titik akhir berfungsi:

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

Contoh entri JSON untuk satu penyedia disajikan sebagai panduan:

"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"
                }
            }
        }
    }
]

Setelah menambahkan titik akhir, simpan settings.json file. Azure Data Studio memberi tahu Anda untuk memuat ulang aplikasi. Setelah dimuat ulang, Anda diberi tahu bahwa titik akhir kustom telah dimuat:

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

Jika pesan ini tidak muncul, periksa apakah semua entri untuk titik akhir ada, dan diisi.

Setelah menambahkan cloud kustom, buka panel Akun tertaut Azure, dan tampilan cloud kustom muncul. Pilih Tambahkan akun dan pilih mode autentikasi jika diminta. Anda dibawa ke titik akhir host untuk mengautentikasi.

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

Beberapa penyedia cloud kustom

Penyedia cloud tambahan dapat ditambahkan ke settings.json file menggunakan format yang sama.

"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"
                }
            }
        }
    }
]

Masalah autentikasi umum

Kemungkinan masalah dan solusi saat menambahkan akun Azure dibahas.

Masalah: Kesalahan SSL di halaman localhost (ERR_SSL_PROTOCOL_ERROR)

Pengguna mungkin melihat kesalahan SSL saat masuk ke akun mereka. Alur ini membuka halaman web eksternal ke localhost, biasanya meminta pengguna untuk masuk melalui perintah autentikasi Microsoft standar. URL untuk halaman ini terlihat mirip dengan http://localhost:50055/signin?nonce=...

Beberapa browser dapat disiapkan untuk mengalihkan semua http tautan secara otomatis ke https, yang merusak proses ini karena server lokal yang melayani halaman web tidak mendukung https. Jika tautan di bilah alamat dimulai dengan https, maka Anda mendapatkan kesalahan SSL dan halaman tidak dapat dimuat. Dalam hal ini, solusi yang tercantum di sini dapat mengatasi masalah tersebut.

Ubah URL ke http

Pertama, ubah URL secara manual dari https:// ke http://. Browser dapat mengubahnya kembali ke https, dalam hal ini perlu untuk mencoba opsi lain.

Nonaktifkan HSTS (Keamanan Transportasi Ketat HTTP)

Untuk browser Edge/Chrome, Anda dapat menonaktifkan HSTS untuk localhost.

  1. Buka Edge/Chrome, dan di bilah alamat, ketik edge://net-internals/#hsts (atau chrome://net-internals/#hsts untuk Chrome).
  2. Gulir ke bagian bawah halaman dan di bagian Delete domain security policies , masukkan localhost dan tekan Delete.

Setelah selesai, Anda harus dapat masuk, dan tidak memiliki browser mengalihkan tautan Anda localhost secara otomatis ke https.

Masalah: Tidak dapat menambahkan akun di belakang proksi

Jika aplikasi pengguna berjalan di lingkungan di belakang proksi, autentikasi pengguna mungkin tidak selesai, dan langkah-langkah ini dapat digunakan untuk mengatasi masalah tersebut.

  1. Centang ulang variabel lingkungan dan pengaturan http.proxy di Azure Data Studio. Jika proksi memerlukan autentikasi pengguna, memberikan nama pengguna/kata sandi di URL http.proxy dapat mengatasi masalah autentikasi; jika tidak, Azure Data Studio tidak dapat membaca kredensial pengguna yang masuk. Atau, Anda dapat mencoba menjalankan Azure Data Studio sebagai pengguna yang berbeda, karena dapat membantu mengatasi masalah autentikasi dengan proksi. Namun, yang terakhir hanya berfungsi untuk beberapa skenario.

  2. URL yang diizinkan dapat bervariasi berdasarkan kasus per kasus. Untuk memverifikasi bahwa Anda tidak memblokir URL apa pun, buka Bantuan > Alihkan Alat Pengembang dan pilih tab Jaringan . Di sini Anda melihat URL apa pun yang diblokir yang mungkin perlu Anda izinkan untuk berhasil menambahkan akun Anda.

  3. Hapus centang Http: Proksi SSL Ketat. Ada kemungkinan bahwa sertifikat proksi tidak dapat diverifikasi terhadap daftar CA tepercaya. Menonaktifkan SSL Ketat dapat mengesampingkan sertifikat proksi sebagai masalah.

Untuk menyimpulkan:

Sebagai aplikasi lintas platform, resolusi proksi Azure Data Studio mengambil proksi dari pengaturan dalam aplikasi, atau melalui variabel lingkungan. Tujuannya adalah untuk menghindari interaksi dengan pengaturan sistem, yang dapat bervariasi secara signifikan pada sistem operasi yang berbeda.

Masalah: Ekstensi Azure Core dinonaktifkan

Ekstensi Azure Core adalah ekstensi bawaan di Azure Data Studio. Pastikan tidak dinonaktifkan atau dihapus instalasinya secara tidak sengaja. Ekstensi ini diperlukan untuk mengautentikasi akun Microsoft Entra dan menyambungkan ke sumber daya menggunakan MFA.

Screenshot of built-in Azure Core extension.

Masalah: Sertifikat OS sistem kedaluwarsa

Perilaku default Azure Data Studio mencakup memvalidasi sertifikat OS akar sistem saat melakukan panggilan REST API menggunakan Protokol HTTPS. Validasi dikontrol dengan http:systemCertificates pengaturan, yang diaktifkan secara default:

Screenshot of system certificates setting.

"http.systemCertificates": true

Jika sertifikat OS akar sistem kedaluwarsa, permintaan autentikasi ke ID Microsoft Entra gagal, dan kesalahan diambil di log akun Azure:

error: certificate is expired

Untuk mengurangi kesalahan ini, Anda harus menghapus Sertifikat OS Akar yang kedaluwarsa atau menonaktifkan pengaturan untuk tidak memvalidasi sertifikat sistem.

Mengambil log untuk autentikasi Azure

Azure Data Studio menangkap peristiwa Kesalahan untuk aktivitas akun Microsoft Entra secara default. Untuk mengaktifkan jejak yang lebih rinci, pengguna dapat mengubah pengaturan ini:

Azure: Tingkat pengelogan

Pengaturan ini mengonfigurasi tingkat pengelogan untuk informasi dari inti Azure yang dapat diambil di Azure Data Studio. Ubah ke Verbose atau Semua untuk menangkap log terperinci yang dapat berguna untuk mendiagnosis kegagalan autentikasi. Untuk informasi selengkapnya, lihat Log dan lokasi Azure Data Studio untuk mempelajari cara mengambil informasi pengelogan.

Settings.json

"azure.loggingLevel": "Verbose"

Screenshot of Azure authentication logging Level configuration.

Azure: Pengelogan PII

Pengguna dapat mengaktifkan pengelogan PII (Informasi Identitas Pribadi) untuk tujuan pengujian dan penelusuran kesalahan lokal. Pengaturan ini memungkinkan pengelogan proses autentikasi yang lebih menyeluruh, tetapi mungkin berisi informasi sensitif seperti token akses atau ID pengguna saat mengautentikasi dengan ID Microsoft Entra. Karena pengelogan ini menangkap informasi sensitif, disarankan untuk:

  • Tidak berbagi log ini dengan orang lain, terutama saat menambahkan log ke masalah GitHub
  • Nonaktifkan pengaturan setelah informasi yang diperlukan dikumpulkan
  • Hapus file log setelah pengaturan dinonaktifkan

Settings.json

"azure.piiLogging": true

Screenshot of Azure authentication PII logging option.

Azure: Tidak ada rantai kunci sistem

Pengaturan ini menonaktifkan integrasi rantai kunci sistem untuk mencegah permintaan akses rantai kunci berulang di macOS. Kredensial Pengguna secara alternatif disimpan dalam file datar di direktori beranda pengguna.

Settings.json

"azure.noSystemKeychain": true

Screenshot of Azure authentication keychain configuration.

Menghapus cache token akun Microsoft Entra

Azure Data Studio mempertahankan cache token akses untuk mencegah pembatasan permintaan token ke ID Microsoft Entra. Ada kemungkinan bahwa cache token Azure Data Studio mungkin kedaluwarsa, yang memerlukan pembersihan token akses kedaluwarsa dari cache aplikasi.

Jalankan perintah ini dari Palet Perintah (Ctrl/CMD + Shift + P) untuk menghapus token akses untuk akun Microsoft Entra yang ditautkan:

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

Menghapus semua akun Microsoft Entra yang disimpan

Jalankan perintah ini dari Palet Perintah (Ctrl/CMD + Shift + P) untuk menghapus semua akun Microsoft Entra yang ditautkan dari Azure Data Studio:

Menghapus semua akun tersimpan (clearSavedAccounts)