Azure HDInsight ID Broker (HIB)

Artikel ini menjelaskan cara menyiapkan dan menggunakan fitur Azure HDInsight ID Broker. Anda dapat menggunakan fitur ini untuk mendapatkan autentikasi OAuth modern ke Apache Ambari sambil memiliki penegakan autentikasi multifaktor tanpa memerlukan hash kata sandi warisan di Microsoft Entra Domain Services.

Gambaran Umum

HDInsight ID Broker memudahkan penyiapan autentikasi yang rumit dalam skenario berikut:

  • Organisasi Anda bergantung pada federasi untuk mengautentikasi pengguna guna mengakses sumber daya cloud. Sebelumnya, untuk menggunakan kluster HdInsight Enterprise Security Package, Anda harus mengaktifkan sinkronisasi hash kata sandi dari lingkungan lokal Anda ke ID Microsoft Entra. Persyaratan ini mungkin berat atau tidak diinginkan oleh beberapa organisasi.
  • Organisasi Anda ingin memberlakukan autentikasi multifaktor untuk akses berbasis web atau berbasis HTTP ke Apache Ambari dan sumber daya kluster lain.

HDInsight ID Broker menyediakan infrastruktur autentikasi yang memungkinkan transisi protokol dari OAuth (modern) ke Kerberos (warisan) tanpa perlu menyinkronkan hash kata sandi ke Microsoft Entra Domain Services. Infrastruktur ini terdiri dari komponen yang berjalan pada komputer virtual (VM) Windows Server dengan simpul HDInsight ID Broker diaktifkan, bersama dengan simpul gateway kluster.

Gunakan tabel berikut untuk menentukan opsi autentikasi terbaik berdasarkan kebutuhan organisasi Anda.

Opsi autentikasi Konfigurasi HDInsight Faktor-faktor yang perlu dipertimbangkan
OAuth Penuh Paket Keamanan Perusahaan + HDInsight ID Broker Opsi paling aman. (Autentikasi multifaktor didukung.) Sinkronisasi hash pass tidak diperlukan. Tidak ada akses ssh/kinit/keytab untuk akun lokal, yang tidak memiliki hash kata sandi di Microsoft Entra Domain Services. Akun khusus cloud masih dapat ssh/kinit/keytab. Akses berbasis web ke Ambari melalui OAuth. Memerlukan pembaruan aplikasi lama (seperti, JDBC/ODBC) untuk mendukung OAuth.
OAuth + Autentikasi Dasar Paket Keamanan Perusahaan + HDInsight ID Broker Akses berbasis web ke Ambari melalui OAuth. Aplikasi lama terus menggunakan autentikasi dasar. Autentikasi multifaktor harus dinonaktifkan untuk akses autentikasi dasar. Sinkronisasi hash pass tidak diperlukan. Tidak ada akses ssh/kinit/keytab untuk akun lokal, yang tidak memiliki hash kata sandi di Microsoft Entra Domain Services. Akun khusus cloud masih dapat ssh/kinit.
Autentikasi Dasar Penuh Enterprise Security Package Paling mirip dengan penyiapan lokal. Sinkronisasi hash kata sandi ke Microsoft Entra Domain Services diperlukan. Akun lokal dapat ssh/kinit atau menggunakan keytab. Autentikasi multifaktor harus dinonaktifkan jika penyimpanan pendukungnya adalah Azure Data Lake Storage Gen2.

Diagram berikut menunjukkan alur autentikasi berbasis OAuth modern untuk semua pengguna, termasuk pengguna gabungan, setelah HDInsight ID Broker diaktifkan:

Diagram that shows authentication flow with HDInsight ID Broker.

Dalam diagram ini, klien (yaitu, browser atau aplikasi) harus memperoleh token OAuth terlebih dahulu. Kemudian menyampaikan token ke gateway dalam permintaan. Jika sudah masuk ke layanan Azure lain, seperti portal Microsoft Azure, Anda dapat masuk ke kluster HDInsight Anda dengan pengalaman akses menyeluruh.

Mungkin masih ada banyak aplikasi lama yang hanya mendukung autentikasi dasar (yaitu, nama pengguna dan kata sandi). Untuk skenario tersebut, Anda masih dapat menggunakan autentikasi dasar HTTP untuk menyambungkan ke gateway kluster. Dalam penyiapan ini, Anda harus memastikan konektivitas jaringan dari simpul gateway ke titik akhir Layanan Federasi Direktori Aktif (AD FS) untuk memastikan garis pandang langsung dari simpul gateway.

Diagram berikut ini menunjukkan alur autentikasi dasar untuk pengguna gabungan. Pertama, gateway mencoba menyelesaikan autentikasi dengan menggunakan alur ROPC. Jika tidak ada hash kata sandi yang disinkronkan ke ID Microsoft Entra, hash tersebut kembali menemukan titik akhir Layanan Federasi Direktori Aktif dan menyelesaikan autentikasi dengan mengakses titik akhir Layanan Federasi Direktori Aktif.

Diagram that shows architecture with basic authentication.

Mengaktifkan HDInsight ID Broker

Untuk membuat kluster Paket Keamanan Perusahaan dengan HDInsight ID Broker diaktifkan,

  1. Masuk ke portal Azure.
  2. Ikuti langkah-langkah pembuatan dasar untuk kluster Paket Keamanan Perusahaan. Untuk informasi selengkapnya, lihat Membuat kluster HDInsight dengan Paket Keamanan Perusahaan.
  3. Pilih Aktifkan HDInsight ID Broker.

Fitur HDInsight ID Broker menambahkan satu VM tambahan ke kluster. VM ini adalah simpul HDInsight ID Broker, dan menyertakan komponen server untuk mendukung autentikasi. Simpul HDInsight ID Broker adalah domain yang bergabung ke domain Microsoft Entra Domain Services.

Diagram that shows option to enable HDInsight ID Broker.

Menggunakan templat Azure Resource Manager

Jika Anda menambahkan peran baru yang disebut idbrokernode dengan atribut berikut ke profil komputasi templat Anda, kluster dibuat dengan node HDInsight ID Broker diaktifkan:

.
.
.
"computeProfile": {
    "roles": [
        {
            "autoscale": null,
            "name": "headnode",
           ....
        },
        {
            "autoscale": null,
            "name": "workernode",
            ....
        },
        {
            "autoscale": null,
            "name": "idbrokernode",
            "targetInstanceCount": 2,
            "hardwareProfile": {
                "vmSize": "Standard_A2_V2"
            },
            "virtualNetworkProfile": {
                "id": "string",
                "subnet": "string"
            },
            "scriptActions": [],
            "dataDisksGroups": null
        }
    ]
}
.
.
.

Untuk melihat sampel lengkap templat ARM, lihat templat yang diterbitkan di sini.

Integrasi alat

Alat HDInsight diperbarui untuk mendukung OAuth secara native. Gunakan alat ini untuk akses berbasis OAuth modern ke kluster. Plug-in IntelliJ HDInsight dapat digunakan untuk aplikasi berbasis Java, seperti Scala. Alat Spark dan Apache Hive untuk Visual Studio Code dapat digunakan untuk pekerjaan PySpark dan Apache Hive. Alat-alat ini mendukung pekerjaan batch dan interaktif.

Akses SSH tanpa hash kata sandi di Microsoft Entra Domain Services

Opsi SSH Faktor-faktor yang perlu dipertimbangkan
Akun VM lokal (misalnya, sshuser) Anda menyediakan akun ini pada saat pembuatan kluster. Tidak ada autentikasi Kerberos untuk akun ini.
Akun khusus cloud (misalnya, alice@contoso.onmicrosoft.com) Hash kata sandi tersedia di Microsoft Entra Domain Services. Autentikasi Kerberos dimungkinkan melalui SSH Kerberos.
Akun lokal (misalnya, alice@contoso.com) Autentikasi SSH Kerberos hanya dimungkinkan jika hash kata sandi tersedia di Microsoft Entra Domain Services. Jika tidak, pengguna ini tidak dapat SSH ke kluster.

Untuk SSH ke VM yang bergabung dengan domain atau untuk menjalankan perintah kinit, Anda harus memberikan sandi. Autentikasi SSH Kerberos mengharuskan hash tersedia di Microsoft Entra Domain Services. Jika ingin menggunakan SSH hanya untuk skenario administratif, Anda dapat membuat satu akun khusus cloud dan menggunakannya untuk SSH ke kluster. Pengguna lokal lainnya masih dapat menggunakan alat Ambari atau HDInsight atau autentikasi dasar HTTP tanpa memiliki hash kata sandi yang tersedia di Microsoft Entra Domain Services.

Jika organisasi Anda tidak menyinkronkan hash kata sandi ke Microsoft Entra Domain Services, sebagai praktik terbaik, buat satu pengguna khusus cloud di ID Microsoft Entra. Kemudian, tetapkan pengguna tersebut sebagai admin kluster ketika Anda membuat kluster, dan gunakan untuk keperluan administrasi. Anda dapat menggunakannya untuk mendapatkan akses root ke VM melalui SSH.

Untuk memecahkan masalah autentikasi, lihat panduan ini.

Klien yang menggunakan OAuth untuk tersambung ke gateway HDInsight dengan HDInsight ID Broker

Di HDInsight ID Broker yang disiapkan, aplikasi kustom dan klien yang terhubung ke gateway dapat diperbarui untuk memperoleh token OAuth yang diperlukan terlebih dahulu. Untuk informasi selengkapnya, lihat Cara mengautentikasi aplikasi .NET dengan layanan Azure. Nilai kunci yang diperlukan untuk mengotorisasi akses ke gateway HDInsight adalah:

  • URI sumber daya OAuth: https://hib.azurehdinsight.net
  • AppId: 7865c1d2-f040-46cc-875f-831a1ef6a28a
  • Izin: (name: Cluster.ReadWrite, id: 8f89faa0-ffef-4007-974d-4989b39ad77d)

Setelah Anda memperoleh token OAuth, gunakan token tersebut di header otorisasi permintaan HTTP ke gateway kluster (misalnya, https://<clustername>-int.azurehdinsight.net). Sampel perintah curl ke Apache Livy API mungkin terlihat seperti contoh ini:

curl -k -v -H "Authorization: Bearer Access_TOKEN" -H "Content-Type: application/json" -X POST -d '{ "file":"wasbs://mycontainer@mystorageaccount.blob.core.windows.net/data/SparkSimpleTest.jar", "className":"com.microsoft.spark.test.SimpleFile" }' "https://<clustername>-int.azurehdinsight.net/livy/batches" -H "X-Requested-By:<username@domain.com>"

Untuk menggunakan Beeline dan Livy, Anda juga dapat mengikuti kode sampel yang disediakan di sini untuk menyiapkan klien Anda untuk menggunakan OAuth dan terhubung ke kluster.

FAQ

Aplikasi apa yang dibuat oleh HDInsight di Microsoft Entra ID?

Untuk setiap kluster, aplikasi pihak ketiga terdaftar di MICROSOFT Entra ID dengan uri kluster sebagai identifierUri (seperti https://clustername.azurehdinsight.net).

Di ID Microsoft Entra, persetujuan diperlukan untuk semua aplikasi pihak ketiga sebelum dapat mengautentikasi pengguna atau mengakses data.

Microsoft Graph api memungkinkan Anda mengotomatiskan persetujuan, lihat dokumentasi API Urutan untuk mengotomatiskan persetujuan adalah:

  • Daftarkan aplikasi dan berikan izin Application.ReadWrite.All untuk aplikasi, guna mengakses Microsoft Graph
  • Setelah cluster dibuat, kueri untuk aplikasi cluster berdasarkan pengidentifikasi uri
  • Mendaftarkan persetujuan untuk aplikasi

Saat kluster dihapus, HDInsight menghapus aplikasi, dan tidak perlu membersihkan persetujuan apa pun.

Langkah berikutnya