Gambaran Umum Kusto Access Control
Access Control di Azure Data Explorer didasarkan pada dua faktor kunci.
- Autentikasi: Memvalidasi identitas prinsipal keamanan yang membuat permintaan
- Otorisasi: Memvalidasi bahwa prinsipal keamanan yang membuat permintaan diizinkan untuk membuat permintaan itu pada sumber daya target
Kueri atau perintah kontrol pada kluster, database, atau tabel Azure Data Explorer, harus melewati pemeriksaan autentikasi dan otorisasi.
Autentikasi
Azure Active Directory (Azure AD) adalah layanan direktori cloud multipenyewa pilihan Azure. Ini dapat mengautentikasi prinsipal keamanan atau federasi dengan penyedia identitas lainnya.
Azure AD adalah metode yang disukai untuk mengautentikasi ke Azure Data Explorer di Microsoft. Ini mendukung sejumlah skenario autentikasi.
- Autentikasi pengguna (masuk interaktif): Digunakan untuk mengautentikasi prinsipal manusia.
- Autentikasi aplikasi (masuk non-interaktif): Digunakan untuk mengautentikasi layanan dan aplikasi yang harus berjalan atau mengautentikasi tanpa adanya pengguna manusia.
Autentikasi pengguna
Autentikasi pengguna dilakukan saat pengguna menunjukkan info masuk ke:
- Microsoft Azure Active Directory
- penyedia identitas yang bekerja dengan Azure AD
Jika berhasil, pengguna menerima token keamanan yang dapat diberikan ke layanan Azure Data Explorer. Layanan Azure Data Explorer tidak peduli cara token keamanan diperoleh. Layanan ini peduli tentang apakah token itu valid dan informasi apa yang disimpan di sana oleh Azure AD (atau IdP federasi).
Di sisi klien, Azure Data Explorer mendukung autentikasi interaktif, tempat Pustaka Autentikasi Microsoft atau kode serupa, meminta pengguna untuk memasukkan info masuk. Ini juga mendukung autentikasi berbasis token, saat aplikasi yang menggunakan Azure Data Explorer memperoleh token pengguna yang valid. Aplikasi yang menggunakan Azure Data Explorer juga dapat memperoleh token pengguna yang valid untuk layanan lain. Token pengguna hanya dapat diperoleh jika ada hubungan kepercayaan antara sumber daya tersebut dan Azure Data Explorer.
Untuk informasi selengkapnya, lihat String koneksi Kusto untuk detail tentang cara menggunakan pustaka klien Kusto dan mengautentikasi dengan menggunakan Azure AD ke Azure Data Explorer.
Autentikasi aplikasi
Gunakan alur autentikasi aplikasi Azure AD saat permintaan tidak terkait dengan pengguna tertentu atau tidak ada pengguna yang tersedia untuk memasukkan info masuk. Dalam alur, aplikasi mengautentikasi ke Azure AD (atau IdP federasi) dengan menyajikan beberapa informasi rahasia. Skenario berikut didukung oleh berbagai klien Azure Data Explorer.
Autentikasi aplikasi menggunakan sertifikat X.509v2 yang diinstal secara lokal
Autentikasi aplikasi menggunakan sertifikat X.509v2 yang diberikan ke pustaka klien sebagai aliran byte
Autentikasi aplikasi menggunakan ID aplikasi Azure AD dan kunci aplikasi Azure AD.
Catatan
ID dan kunci setara dengan nama pengguna dan kata sandi
Autentikasi aplikasi menggunakan token Azure AD yang valid yang diperoleh sebelumnya, dikeluarkan ke Azure Data Explorer.
Autentikasi aplikasi menggunakan token Azure AD yang valid yang diperoleh sebelumnya, dikeluarkan ke beberapa sumber daya lainnya. Metode ini akan berfungsi jika ada hubungan kepercayaan antara sumber daya tersebut dan Azure Data Explorer.
Akun Microsoft (MSA)
Microsoft Account (MSA) adalah istilah yang digunakan untuk semua akun pengguna non-organisasi yang dikelola Microsoft, seperti hotmail.com, live.com, outlook.com.
Kusto mendukung autentikasi pengguna untuk MSA (tidak ada konsep kelompok keamanan) yang diidentifikasi oleh Nama Prinsipal Pengguna (UPN) mereka.
Saat prinsipal MSA dikonfigurasi pada sumber daya Azure Data Explorer, Azure Data Explorer tidak akan mencoba menyelesaikan UPN yang disediakan.
Panggilan SDK atau REST yang diautentikasi
- Saat menggunakan REST API, autentikasi dilakukan dengan header
AuthorizationHTTP standar - Saat menggunakan salah satu pustaka Azure Data Explorer .NET, autentikasi dikontrol dengan menentukan metode autentikasi dan parameter dalam string koneksi. Metode lain adalah mengatur properti pada objek properti permintaan klien.
SDK klien Azure Data Explorer sebagai aplikasi klien Azure AD
Saat pustaka klien Kusto memanggil Pustaka Autentikasi Microsoft untuk memperoleh token guna berkomunikasi dengan Kusto, pustaka klien Kusto menyediakan informasi berikut:
- Sumber Daya (URI Kluster, seperti,
https://Cluster-and-region.kusto.windows.net) - ID Aplikasi Klien Azure AD
- URI Pengalihan Aplikasi Klien Azure AD
- Penyewa Azure AD, yang memengaruhi titik akhir Azure AD yang digunakan untuk autentikasi. Misalnya, untuk penyewa Azure AD
microsoft.com, titik akhir Azure AD adalahhttps://login.microsoftonline.com/microsoft.com)
Token yang ditampilkan oleh Pustaka Autentikasi Microsoft ke Pustaka Klien Azure Data Explorer memiliki URL kluster Azure Data Explorer yang sesuai sebagai audiens, dan izin "Akses Azure Data Explorer" sebagai cakupan.
Contoh: Mendapatkan token Pengguna Azure AD untuk kluster Azure Data Explorer
// Create Auth Context for Azure AD (common or tenant-specific endpoint):
AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/{Azure AD TenantID or name}");
// Provide your Application ID and redirect URI
var clientAppID = "{your client app id}";
var redirectUri = new Uri("{your client app redirect uri}");
// acquireTokenTask will receive the bearer token for the authenticated user
var acquireTokenTask = authContext.AcquireTokenAsync(
$"https://{clusterNameAndRegion}.kusto.windows.net",
clientAppID,
redirectUri,
new PlatformParameters(PromptBehavior.Auto, null)).GetAwaiter().GetResult();
Authorization
Semua prinsipal yang diautentikasi menjalani pemeriksaan otorisasi sebelum mereka dapat melakukan tindakan pada sumber daya Azure Data Explorer. Azure Data Explorer menggunakan model otorisasi berbasis peran, yaitu saat prinsipal dianggap berasal dari satu atau beberapa peran keamanan. Otorisasi berhasil selama salah satu peran prinsipal diotorisasi.
Misalnya, peran pengguna database memberikan prinsipal keamanan, pengguna, atau layanan, hak untuk:
- membaca data database tertentu
- membuat tabel dalam database
- membuat fungsi dalam database
Asosiasi prinsipal keamanan untuk peran keamanan dapat didefinisikan secara individual, atau dengan menggunakan grup keamanan yang ditentukan di Azure AD. Perintah didefinisikan dalam Menetapkan aturan otorisasi berbasis peran.