Masalah autentikasi di Azure HDInsight
Artikel ini menjelaskan langkah-langkah pemecahan masalah dan kemungkinan resolusi untuk masalah saat berinteraksi dengan kluster Azure HDInsight.
Pada kluster aman yang didukung oleh Azure Data Lake (Gen1 atau Gen2), saat pengguna domain masuk ke layanan kluster melalui HDI Gateway (seperti masuk ke portal Apache Ambari), HDI Gateway mencoba mendapatkan token OAuth dari Microsoft Entra terlebih dahulu, lalu mendapatkan tiket Kerberos dari Microsoft Entra Domain Services. Autentikasi dapat gagal dalam salah satu tahap ini. Artikel ini ditujukan untuk penelusuran kesalahan beberapa masalah tersebut.
Saat autentikasi gagal, Anda akan dimintai kredensial. Jika Anda membatalkan dialog ini, pesan kesalahan akan dicetak. Berikut adalah beberapa pesan kesalahan umum:
invalid_grant atau unauthorized_client, 50126
Masalah
Gagal masuk untuk pengguna federasi dengan kode kesalahan 50126 (berhasil masuk untuk pengguna cloud). Pesan kesalahan mirip dengan:
Reason: Bad Request, Detailed Response: {"error":"invalid_grant","error_description":"AADSTS70002: Error validating credentials. AADSTS50126: Invalid username or password\r\nTrace ID: 09cc9b95-4354-46b7-91f1-efd92665ae00\r\n Correlation ID: 4209bedf-f195-4486-b486-95a15b70fbe4\r\nTimestamp: 2019-01-28 17:49:58Z","error_codes":[70002,50126], "timestamp":"2019-01-28 17:49:58Z","trace_id":"09cc9b95-4354-46b7-91f1-efd92665ae00","correlation_id":"4209bedf-f195-4486-b486-95a15b70fbe4"}
Penyebab
Kode kesalahan Microsoft Entra 50126 berarti AllowCloudPasswordValidation
kebijakan tidak ditetapkan oleh penyewa.
Resolusi
Administrator Global penyewa Microsoft Entra harus mengaktifkan ID Microsoft Entra untuk menggunakan hash kata sandi untuk pengguna yang didukung ADFS. Terapkan AllowCloudPasswordValidationPolicy
seperti yang ditunjukkan dalam artikel Menggunakan Paket Keamanan Enterprise di HDInsight.
invalid_grant atau unauthorized_client, 50034
Masalah
Gagal masuk dengan kode kesalahan 50034. Pesan kesalahan mirip dengan:
{"error":"invalid_grant","error_description":"AADSTS50034: The user account Microsoft.AzureAD.Telemetry.Diagnostics.PII doesn't exist in the 0c349e3f-1ac3-4610-8599-9db831cbaf62 directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: bbb819b2-4c6f-4745-854d-0b72006d6800\r\nCorrelation ID: b009c737-ee52-43b2-83fd-706061a72b41\r\nTimestamp: 2019-04-29 15:52:16Z", "error_codes":[50034],"timestamp":"2019-04-29 15:52:16Z","trace_id":"bbb819b2-4c6f-4745-854d-0b72006d6800", "correlation_id":"b009c737-ee52-43b2-83fd-706061a72b41"}
Penyebab
Nama pengguna salah (tidak ada). Pengguna tidak menggunakan nama pengguna yang sama yang digunakan dalam portal Azure.
Resolusi
Gunakan nama pengguna yang sama dan berfungsi di portal tersebut.
invalid_grant atau unauthorized_client, 50053
Masalah
Akun pengguna dikunci, kode kesalahan 50053. Pesan kesalahan mirip dengan:
{"error":"unauthorized_client","error_description":"AADSTS50053: You've tried to sign in too many times with an incorrect user ID or password.\r\nTrace ID: 844ac5d8-8160-4dee-90ce-6d8c9443d400\r\nCorrelation ID: 23fe8867-0e8f-4e56-8764-0cdc7c61c325\r\nTimestamp: 2019-06-06 09:47:23Z","error_codes":[50053],"timestamp":"2019-06-06 09:47:23Z","trace_id":"844ac5d8-8160-4dee-90ce-6d8c9443d400","correlation_id":"23fe8867-0e8f-4e56-8764-0cdc7c61c325"}
Penyebab
Terlalu banyak upaya masuk dengan kata sandi yang salah.
Resolusi
Tunggu selama atau kira-kira 30 menit, hentikan aplikasi apa pun yang mungkin mencoba melakukan autentikasi.
invalid_grant atau unauthorized_client, 50053 (#2)
Masalah
Kata sandi kedaluwarsa, kode kesalahan 50053. Pesan kesalahan mirip dengan:
{"error":"user_password_expired","error_description":"AADSTS50055: Password is expired.\r\nTrace ID: 241a7a47-e59f-42d8-9263-fbb7c1d51e00\r\nCorrelation ID: c7fe4a42-67e4-4acd-9fb6-f4fb6db76d6a\r\nTimestamp: 2019-06-06 17:29:37Z","error_codes":[50055],"timestamp":"2019-06-06 17:29:37Z","trace_id":"241a7a47-e59f-42d8-9263-fbb7c1d51e00","correlation_id":"c7fe4a42-67e4-4acd-9fb6-f4fb6db76d6a","suberror":"user_password_expired","password_change_url":"https://portal.microsoftonline.com/ChangePassword.aspx"}
Penyebab
Kata sandi kedaluwarsa.
Resolusi
Ubah kata sandi di portal Microsoft Azure (pada sistem lokal Anda) lalu tunggu 30 menit agar sinkronisasi dapat mengikutinya.
interaction_required
Masalah
Menerima pesan kesalahan interaction_required
.
Penyebab
Kebijakan akses bersyarat atau MFA sedang diterapkan ke pengguna. Karena autentikasi interaktif belum didukung, pengguna atau kluster perlu dikecualikan dari akses MFA / Bersyarkat. Jika Anda memilih untuk mengecualikan kluster (kebijakan pengecualian berbasis alamat IP), maka pastikan bahwa ServiceEndpoints
AD diaktifkan untuk vnet tersebut.
Resolusi
Gunakan kebijakan akses bersyarat dan bebaskan kluster HDInsight dari MFA seperti yang ditunjukkan dalam Mengonfigurasi kluster HDInsight dengan Paket Keamanan Perusahaan dengan menggunakan Microsoft Entra Domain Services.
Rincian masuk ditolak
Masalah
Masuk ditolak.
Penyebab
Untuk sampai ke tahap ini, autentikasi OAuth Anda bukan masalah, tetapi autentikasi Kerberos adalah. Jika kluster ini didukung oleh ADLS, masuk OAuth telah berhasil sebelum autentikasi Kerberos dicoba. Pada kluster WASB, masuk OAuth tidak dicoba. Mungkin ada banyak alasan kegagalan Kerberos - seperti hash kata sandi tidak sinkron, akun pengguna terkunci di Microsoft Entra Domain Services, dan sebagainya. Hash kata sandi hanya disinkronkan ketika pengguna mengubah kata sandi. Saat Anda membuat instans Microsoft Entra Domain Services, instans tersebut akan mulai menyinkronkan kata sandi yang diubah setelah pembuatan. Ini tidak dapat secara retroaktif menyinkronkan kata sandi yang ditetapkan sebelum awalnya.
Resolusi
Jika menurut Anda kata sandi mungkin tidak sinkron, coba ubah kata sandi dan tunggu beberapa menit untuk menyinkronkan.
Cobalah untuk SSH ke dalam Anda perlu mencoba mengautentikasi (kinit) menggunakan kredensial pengguna yang sama, dari komputer yang bergabung ke domain. SSH ke dalam node head / tepi dengan pengguna lokal dan kemudian jalankan kinit.
kinit gagal
Masalah
Kinit gagal.
Penyebab
Beragam.
Resolusi
Agar kinit berhasil, Anda perlu tahu sAMAccountName
Anda (ini adalah nama akun pendek tanpa realm). sAMAccountName
biasanya awalan akun (seperti bob masuk bob@contoso.com
). Bagi beberapa pengguna, itu bisa berbeda. Anda memerlukan kemampuan untuk menelusuri / mencari direktori untuk mempelajari sAMAccountName
.
Cara untuk menemukan sAMAccountName
:
Jika Anda dapat masuk ke Ambari menggunakan admin Ambari lokal, lihat daftar pengguna.
Jika Anda memiliki komputer Windows dengan gabungan domain, Anda dapat menggunakan alat Windows AD standar untuk menelusuri. Ini memerlukan akun kerja di domain.
Dari node head, Anda dapat menggunakan perintah SAMBA untuk mencari. Ini memerlukan sesi Kerberos yang valid (kinit berhasil). pencarian iklan net "(userPrincipalName=bob*)"
Hasil pencarian / penelusuran akan menunjukkan atribut
sAMAccountName
. Juga, Anda dapat melihat atribut lain sepertipwdLastSet
,badPasswordTime
,userPrincipalName
dll. untuk melihat apakah properti tersebut sesuai dengan harapan Anda.
kinit gagal dengan kegagalan preautentikasi
Masalah
Kinit gagal dengan kegagalan Preauthentication
.
Penyebab
Nama pengguna atau kata sandi salah.
Resolusi
Periksa nama pengguna dan kata sandi Anda. Periksa juga properti lain yang dijelaskan. Untuk mengaktifkan penelusuran kesalahan verbose, jalankan export KRB5_TRACE=/tmp/krb.log
dari sesi sebelum mencoba kinit.
Perintah pekerjaan / HDFS gagal karena TokenNotFoundException
Masalah
Perintah Pekerjaan / HDFS gagal karena TokenNotFoundException
.
Penyebab
Token akses OAuth yang diperlukan tidak ditemukan agar pekerjaan/ perintah berhasil. Driver ADLS / ABFS mencoba mengambil token akses OAuth dari layanan kredensial sebelum membuat permintaan penyimpanan. Token ini akan didaftarkan ketika Anda masuk ke portal Ambari menggunakan pengguna yang sama.
Resolusi
Pastikan Anda telah berhasil masuk ke portal Ambari sekali melalui nama pengguna yang identitasnya digunakan untuk menjalankan pekerjaan.
Kesalahan saat mengambil token akses
Masalah
Pengguna menerima pesan kesalahan Error fetching access token
.
Penyebab
Kesalahan ini terjadi secara terputus-putus ketika pengguna mencoba mengakses ADLS Gen2 menggunakan ACL dan token Kerberos telah kedaluwarsa.
Resolusi
Untuk Azure Data Lake Storage Gen1, bersihkan cache browser dan masuk lagi ke Ambari.
Untuk Azure Data Lake Storage Gen2, Jalankan
/usr/lib/hdinsight-common/scripts/RegisterKerbTicketAndOAuth.sh <upn>
untuk pengguna yang mencoba masuk sebagai
Langkah berikutnya
Jika Anda tidak melihat masalah atau tidak dapat memecahkan masalah, kunjungi salah satu saluran berikut untuk mendapatkan dukungan lebih lanjut:
Dapatkan jawaban dari para ahli Azure melalui Dukungan Komunitas Azure.
Hubungi @AzureSupport - akun Microsoft Azure resmi untuk meningkatkan pengalaman pelanggan. Menghubungkan komunitas Microsoft Azure ke sumber daya yang tepat: jawaban, dukungan, dan pakar.
Jika Anda memerlukan bantuan lainnya, Anda dapat mengirimkan permintaan dukungan dari portal Microsoft Azure. Pilih Dukungan dari bilah menu atau buka hub Bantuan + Dukungan. Untuk informasi selengkapnya, tinjau Cara membuat permintaan dukungan Microsoft Azure. Akses ke Manajemen Langganan dan dukungan tagihan disertakan dengan langganan Microsoft Azure, dan Dukungan Teknis disediakan melalui salah satu Paket Dukungan Azure.