Menguasai Graph Explorer: Melacak Jejak Pengguna secara Menyeluruh
By Mirko Peters ·
Selamat datang kembali di blog pendamping podcast! Pada artikel kali ini, kita akan melangkah jauh melampaui antarmuka admin yang terfragmentasi, yang sudah kita kenal dan terkadang cukup membuat frustrasi…
Automatically translated with AI from the original post. Read the English original
Selamat datang kembali di blog pendamping podcast! Pada artikel kali ini, kita akan melangkah jauh melampaui antarmuka admin yang terfragmentasi, yang sudah kita kenal dan terkadang cukup membuat frustrasi. Jika Anda pernah mencoba menyusun jejak audit lengkap tentang apa saja yang diakses, dibagikan, atau disentuh oleh pengguna tertentu di Microsoft 365, Anda tentu tahu betapa terpecah-pecahnya pusat admin bawaan. Itulah sebabnya kita akan membahas Microsoft Graph secara mendalam. Dengan memanfaatkan Graph API, kita dapat berpindah dengan mulus dari pengguna individual ke grup, situs SharePoint, file, tautan eksternal, bahkan penampil aktif. Jika Anda ingin mengikuti diskusi audio yang berpasangan langsung dengan panduan ini, pastikan untuk menyimak episode terkait Map Microsoft 365 Users, Groups, Files, and Shares with Graph.
Mengapa M365 tidak terisolasi
Salah satu kesalahpahaman paling umum di kalangan administrator dan tim keamanan adalah anggapan bahwa setiap layanan Microsoft 365 beroperasi sebagai silo yang aman dan berdiri sendiri. Kenyataannya, chat Teams, pustaka dokumen SharePoint, dan folder OneDrive terus saling terhubung melalui keanggotaan grup dan pewarisan izin yang mendasarinya.
- Chat Teams, pustaka SharePoint, dan folder OneDrive saling terhubung melalui keanggotaan grup.
- Satu tindakan sederhana "tambahkan satu pengguna ke satu grup" diam-diam dapat membuka akses ke banyak situs, saluran, dan berbagi eksternal, tanpa meninggalkan jejak audit yang jelas di tampilan standar.
- Risiko kepatuhan Anda berasal dari jalur-jalur tak kasatmata ini, misalnya tautan tamu yang dikirim ke chat privat, file yang tercermin di beberapa pustaka, dan berbagi yatim yang tertinggal jauh setelah proyek selesai.
Pemetaan jejak dengan Graph Explorer (titik sentuh dari pengguna ke file)
Untuk benar-benar memahami bagaimana akses menyebar ke seluruh penyewa Anda, Anda memerlukan pola kueri yang dapat diulang. Kita dapat menjalankan rangkaian panggilan API yang terarah di Graph Explorer untuk memetakan jejak titik sentuh pengguna secara lengkap:
- Tentukan pengguna target:
GET /v1.0/users/{userPrincipalName}?$select=id,displayName,userPrincipalName - Telusuri keanggotaan langsung dan tidak langsung mereka:
GET /v1.0/users/{id}/memberOf?$select=id,displayName - Telusuri balik ke sumber daya yang dimiliki grup-grup tersebut. Untuk M365 Groups dan Teams, targetkan situs SharePoint yang mendasarinya:
GET /v1.0/groups/{groupId}/drive/root/children?$select=id,name,lastModifiedDateTime,webUrl
Atau telusuri drive dan pustaka situs secara langsung:
GET /v1.0/sites/{siteId}/drives - Ambil izin item dan tautan berbagi:
GET /v1.0/drives/{driveId}/items/{itemId}/permissions?$select=id,grantedToV2,link,roles,shareId - Lacak siapa yang mengakses apa dan kapan, jika tersedia, menggunakan log audit dan log masuk:
GET /v1.0/auditLogs/signIns atau /security/alerts, dipadukan dengan konteks file, situs, atau berbagi. - Tutup lingkaran dengan kembali ke postingan Teams dan pesan saluran:
GET /v1.0/teams/{teamId}/channels/{channelId}/messages?$search="filename" (memerlukan endpoint beta dan izin yang sesuai).
Filter pengurang kebisingan yang benar-benar akan Anda gunakan
Menarik data mentah dari Microsoft Graph bisa terasa seperti minum dari selang pemadam kebakaran. Untuk mengubah kumpulan data besar menjadi informasi yang dapat ditindaklanjuti, Anda harus menggunakan parameter kueri yang presisi.
- Isolasi berbagi eksternal yang dibuat dalam 7 hari terakhir dengan menerapkan filter cakupan:
GET /v1.0/drives/{driveId}/items/{itemId}/permissions?$filter=link/scope eq 'anonymous' or link/scope eq 'organization'&$select=… - Isolasi jenis file berisiko dengan menambahkan ekstensi nama file:
Tambahkan $filter=endsWith(resourceReference/name,'.xlsm') or endsWith(resourceReference/name,'.pst') - Lacak penyebutan istilah sensitif di saluran Teams di luar jam kerja:
GET /v1.0/teams/{teamId}/channels/{channelId}/messages?$search="confidential", lalu saring ulang hasilnya berdasarkan createdDateTime di luar jam kerja normal. - Jaga agar payload tetap ringan dan efisien dengan selalu menambahkan $select untuk hanya mengembalikan ID, nama, URL web, cap waktu terakhir diubah, dan bidang izin yang minimal.
- Batasi hasil untuk triase cepat dengan menggunakan $top=50 untuk pemeriksaan singkat, tetapi ingat untuk menghapus batasan ini saat mengekspor data ke penyimpanan permanen.
Hal wajib untuk skala enterprise (paginasi dan throttling)
Saat Anda menskalakan kueri ini dari satu pengguna uji ke penyewa enterprise yang berisi ratusan ribu objek, performa dan keandalan menjadi hal yang sangat penting.
- Pengambilan data belum selesai sampai Anda secara eksplisit mengikuti properti @odata.nextLink untuk setiap halaman hasil.
- Patuhi respons pembatasan laju HTTP 429 dengan menerapkan rutinitas exponential backoff dan pastikan skrip Anda dapat melanjutkan dengan aman dari titik terakhir.
- Gabungkan kueri Anda dengan cermat. Utamakan permintaan yang lebih sedikit, lebih besar, dan terstruktur dengan baik daripada rentetan panggilan kecil yang banyak, dan simpan pemetaan grup-ke-situs dalam cache secara agresif.
- Pisahkan penelusuran penyewa berskala besar berdasarkan ID situs SharePoint tertentu atau rentang tanggal untuk menghindari timeout permintaan, dan jadwalkan operasi berat ini di luar jam sibuk.
Jebakan umum (dan perbaikan cepat)
Bahkan administrator berpengalaman pun menghadapi hambatan saat membangun pipeline kueri Graph otomatis. Perhatikan jebakan umum berikut beserta perbaikan cepatnya:
- Jebakan: Ekspor CSV menyimpang dan rusak seiring skema yang mendasarinya berubah dari waktu ke waktu.
Perbaikan: Gunakan Graph API secara langsung dengan transformasi berversi dan penanganan field "unknown" yang andal. - Jebakan: Identifier campuran seperti GUID dan User Principal Name merusak join database.
Perbaikan: Normalisasi data Anda ke dalam model semantik yang kohesif yang mencakup Users, Groups, Sites, Drives, Items, dan Permissions. - Jebakan: "Page 1 bias" membutakan pemantauan Anda dan menyembunyikan insiden keamanan besar yang tersembunyi di halaman yang lebih dalam.
Perbaikan: Selalu catat total halaman yang diproses dan picu peringatan jika volume record yang diharapkan turun secara tidak terduga. - Jebakan: Dibanjiri file tidak relevan dalam jumlah yang sulit dikelola.
Perbaikan: Filter secara eksplisit berdasarkan cakupan tautan, jendela waktu pembuatan/modifikasi tertentu, dan daftar istilah sensitif yang ditargetkan. - Jebakan: Berbagi di Teams yang gagal terhubung kembali ke file yang mendasarinya.
Perbaikan: Korelasikan URL web pesan saluran langsung ke item drive dan simpan kedua identifier unik tersebut.
KPI tingkat eksekutif yang dapat dibuka
Mengubah output mentah Graph API menjadi metrik terstruktur memberi pimpinan visibilitas yang sangat mereka butuhkan. Indikator kinerja utama yang dapat Anda buka antara lain:
- Kecepatan eksposur eksternal: mengukur tautan tamu baru yang dihasilkan per minggu, dikelompokkan berdasarkan situs atau tim.
- Tingkat sentuhan file sensitif: melacak pengguna unik yang melihat konten berlabel, dengan memisahkan pengguna internal dari tamu eksternal.
- Riak risiko grup: mengidentifikasi file yang tiba-tiba dapat diakses dalam 24 jam setelah perubahan keanggotaan grup.
- Sirkulasi bayangan: melacak file sensitif yang menyebar ke banyak tim dan situs dalam satu sprint.
- Efektivitas pembersihan: menghitung tautan berbagi yang dicabut dan mengukur waktu keseluruhan hingga remediasi.
Resep kueri cepat (alur salin dan tempel)
Jika Anda ingin memulai penelusuran end-to-end pertama di Graph Explorer sekarang juga, gunakan alur kerja salin dan tempel berurutan berikut:
- Kueri detail inti dan grup pengguna:
/users/{upn}?$select=id,displayName
/users/{id}/memberOf?$select=id,displayName - Untuk setiap grup Microsoft 365 yang ditemukan, ambil drive children:
/groups/{groupId}/drive/root/children?$select=id,name,webUrl,lastModifiedDateTime&$top=200
Pastikan untuk mengikuti @odata.nextLink - Untuk setiap item file, periksa izin:
/drives/{driveId}/items/{itemId}/permissions?$select=id,roles,grantedToV2,link
Filter agar link/scope berada dalam ('anonymous','organization') - Ekspor baris yang sudah bersih ke data warehouse Anda, termasuk waktu penyewa, ID situs, ID drive, ID item, URL web, pemilik, cakupan, dan data kedaluwarsa.
- Visualisasikan data yang sudah diagregasi di Power BI untuk pengawasan organisasi yang berkelanjutan.
Menjadikan ini dasbor yang hidup
Kueri satu kali di Graph Explorer sangat berguna untuk investigasi, tetapi tata kelola yang sebenarnya memerlukan otomatisasi. Ubah kueri Anda menjadi dasbor operasional yang hidup dengan membangun dataflow yang andal, menormalkan tabel untuk users, groups, sites, drives, items, permissions, dan messages, serta membangun star schema yang berpusat pada item file Anda. Atur penyegaran data inkremental berdasarkan tanggal modifikasi, dan konfigurasikan peringatan real-time yang dipicu setiap kali tautan eksternal baru muncul pada konten sensitif yang diberi label.
Rencana penerapan 30 hari
Siap menerapkan ini di seluruh organisasi Anda? Ikuti kerangka penerapan empat minggu yang terstruktur berikut:
- Minggu 1: Selesaikan pendaftaran aplikasi Anda, tetapkan izin Graph API dengan hak akses paling minimal, dan buat kueri dasar menggunakan parameter $select dan $filter yang tepat.
- Minggu 2: Bangun skrip paginasi, terapkan normalisasi identifier dari ID ke UPN, dan jalankan ekspor data pertama Anda yang berhasil.
- Minggu 3: Susun model data Power BI dan KPI dasar Anda, termasuk pelacakan paparan eksternal dan analisis risiko riak.
- Minggu 4: Otomatiskan penyegaran data Anda, konfigurasikan peringatan anomali, dan dokumentasikan prosedur operasional standar untuk tim keamanan dan kepatuhan Anda.
Siapa yang sebaiknya menyimak
Metodologi ini dirancang khusus untuk peran tertentu di dalam perusahaan Anda:
- Administrator Microsoft 365 dan pimpinan SecOps yang mencurigai dasbor administratif default mereka menyembunyikan area abu-abu yang kritis.
- Tim kepatuhan yang membutuhkan visibilitas berbagi dari ujung ke ujung tanpa menambah sprawl perangkat lunak pihak ketiga yang mahal.
- Pemilik kolaborasi yang pada akhirnya bertanggung jawab memastikan praktik berbagi eksternal yang aman dan terkendali.
Tips lapangan
Simpan tips lapangan praktis ini di dekat Anda selama membangun perjalanan otomatisasi Graph Anda:
- Selalu mulai investigasi Anda dari pengguna atau file, lalu telusuri ke luar ke kedua arah untuk menghilangkan titik buta.
- Perlakukan setiap tindakan "tambahkan ke grup" sebagai peristiwa perubahan berisiko tinggi, dan tinjau implikasi akses hilir dalam waktu 24 jam.
- Pertahankan daftar pendek istilah sensitif yang aktif untuk dicari di pesan Teams dan nama file, dan tinjau daftar tersebut secara berkala.
- Catat jumlah halaman dan volume rekaman yang diproses dengan saksama—terkadang, keheningan total di log Anda justru menjadi sinyal bahwa pekerjaan pipeline Anda rusak.
Kesimpulan
Menguasai Microsoft Graph untuk melacak jejak pengguna dari ujung ke ujung menjembatani kesenjangan antara tampilan administratif yang terfragmentasi dan visibilitas perusahaan yang sesungguhnya. Dengan mengubah pola pikir dari silo yang terisolasi menjadi pemetaan akses relasional, Anda dapat secara proaktif mengamankan data sensitif, menghilangkan sirkulasi bayangan, dan memberikan pimpinan KPI yang dapat ditindaklanjuti. Untuk mendengarkan lebih banyak pembahasan ahli, contoh dunia nyata, dan kupasan mendalam tentang skenario seperti ini, pastikan Anda menyimak episode lengkapnya di Map Microsoft 365 Users, Groups, Files, and Shares with Graph.
Berlangganan
Untuk pembahasan yang lebih mendalam dan resep Graph dunia nyata, dapatkan episode baru di m365.show/subscribe