M365Con 2027 – konferensi online gratis · 11–22 Jan 2027 · 120 sessions→ m365con.net

Blog · Mirko Peters

Menguasai Celah Persetujuan Microsoft Graph: Yang Dilewatkan Tutorial

By ·

Selamat datang di panduan pendamping kami untuk podcast ini! Jika Anda pernah menyiapkan *background job*, mengklik persetujuan admin, lalu berharap semuanya berjalan lancar, Anda pasti tidak sendirian. …

Automatically translated with AI from the original post. Read the English original

▶ BLOGMastering the MicrosoftGraph Consent Gap: What…M365.FM
Titelbild: Mastering the Microsoft Graph Consent Gap: What Tutorials Leave Out

Selamat datang di panduan pendamping podcast kami! Jika Anda pernah menyiapkan background job, menekan admin consent, lalu berharap semuanya berjalan lancar, Anda tentu tidak sendirian. Banyak developer dan administrator mengikuti tutorial standar, mengonfigurasi layanan background mereka, dan menganggap pekerjaan keamanan selesai begitu kode berjalan. Namun, ada jurang yang sangat besar antara membuat integrasi berfungsi di lingkungan uji dan menjaganya tetap aman, andal, serta siap diaudit di lingkungan produksi. Dalam artikel ini, kami membahas lebih dalam risiko tersembunyi dari akses app-only, ketika izin berlaku di seluruh penyewa tanpa konteks pengguna; mengapa persetujuan satu kali dapat terus membebani postur keamanan jangka panjang Anda; dan bagaimana perubahan kebijakan dapat diam-diam merusak background job yang berjalan tanpa pengawasan. Untuk menyelami topik ini lebih dalam, pastikan Anda mendengarkan episode podcast terkait kami, Microsoft Graph App-Only Consent Explained.

Untuk Siapa Panduan Ini

Celah Persetujuan (Yang Dilewatkan Tutorial)

  • Delegated vs Application: Hanya-aplikasi berarti tanpa konteks pengguna; cakupan berlaku di seluruh penyewa setelah disetujui.
  • Persetujuan sekali, dampak jangka panjang: Peran luas (misalnya, Sites.ReadWrite.All) tetap aktif hingga dicabut secara eksplisit.
  • Perubahan kebijakan merusak aplikasi: Pengaturan persetujuan atau penyesuaian Conditional Access dapat diam-diam menghentikan perolehan token.
  • Visibilitas audit terbatas kecuali Anda sengaja mencatat dan meninjau izin aplikasi perusahaan.

Izin Minimal Terlebih Dahulu (Pemilihan Izin)

  • Utamakan cakupan sumber daya yang sempit daripada *.ReadWrite.All jika memungkinkan.
  • Contoh yang perlu dicermati:
    • Direktori: Utamakan User.Read.All (profil dasar) sebelum Directory.Read.All.
    • SharePoint: Coba pola akses per situs atau katalog aplikasi sebelum Sites.ReadWrite.All.
    • Mail/Kalender: Gunakan Mail.Read / Calendars.Read kecuali akses tulis benar-benar diperlukan.
  • Jangan melakukan "persiapan masa depan" dengan memberikan cakupan berlebih. Tambahkan cakupan hanya ketika sebuah fitur memerlukannya.

Mendaftarkan Aplikasi dengan Benar (Langkah demi Langkah)

  1. Daftarkan aplikasi di Entra ID → catat Application (client) ID dan Tenant ID.
  2. Autentikasi: Pilih metode client credential:
    • Sertifikat (direkomendasikan) yang disimpan dan dirotasi melalui Key Vault, atau
    • Client secret (masa berlaku singkat + kebijakan rotasi), atau
    • Managed identity (paling baik untuk beban kerja yang di-host di Azure).
  3. Izin API → tab Application → tambahkan cakupan Graph minimal saja.
  4. Berikan persetujuan admin secara sengaja (dokumentasikan siapa/mengapa/kapan).
  5. Aplikasi Perusahaan: kunci assignment required, pemilik, serta pencatatan sign-in/audit.

Persetujuan Admin, Kebijakan, dan Kontrol

  • Hanya admin dengan hak istimewa yang dapat memberikan izin aplikasi.
  • Perlakukan persetujuan admin sebagai penerimaan risiko: catat tujuan, data yang disentuh, tanggal kedaluwarsa/pembaruan.
  • Selaraskan dengan Tenant Restrictions, Permission Grant Policies, dan Conditional Access untuk service principal.

Token di Lapangan (Bagaimana Autentikasi Sebenarnya Gagal)

  • Kegagalan umum: secret/sertifikat kedaluwarsa, resource yang salah (cakupan .default), peran yang hilang, ketidaksesuaian penyewa.
  • Perkuat alur token:
    • Gunakan kredensial sertifikat atau managed identity daripada secret berumur panjang.
    • Rotasi secret/sertifikat jauh sebelum kedaluwarsa (pengingat Key Vault + otomasi).
    • Coba ulang dengan backoff dan tampilkan telemetri 401/403 beserta ID korelasi.
    • Simpan token dalam cache per proses—tetapi jangan pernah lintas penyewa atau melewati masa berlaku yang aman.

Pemantauan & Audit (Siap untuk Audit)

  • Dasbor/peringatan untuk: kegagalan token, perubahan persetujuan, izin baru yang ditambahkan, aplikasi yang tidak aktif.
  • Tinjauan triwulanan: daftar aplikasi perusahaan, izin, dan stempel waktu terakhir digunakan; hapus registrasi yang sudah tidak terpakai.
  • Log: siapa yang memberikan persetujuan, tanggal/waktu, justifikasi, dan domain data yang terdampak.
  • Key Vault: aktifkan peringatan kredensial yang akan kedaluwarsa dan rotasi otomatis sertifikat jika memungkinkan.

Pola Izin Minimal (Matriks Awal)

  • Inventaris/pelaporan pengguna → User.Read.All
  • Analitik penggunaan Teams → Reports.Read.All
  • Ekspor kotak surat hanya-baca → Mail.Read
  • Sinkronisasi kalender (baca) → Calendars.Read
  • Baca SharePoint (cakupan luas) → Sites.Read.All (hindari ReadWrite kecuali benar-benar diperlukan)
  • Sinkronisasi profil ke HR → User.Read.All (+ cakupan tulis tertentu hanya jika benar-benar diperlukan)

Aturan praktis: jika cakupan berakhir dengan .ReadWrite.All, berhenti dan evaluasi ulang. Jika tetap harus digunakan, isolasi aplikasinya, dokumentasikan justifikasinya, dan tambahkan pemantauan ekstra.

Kesalahan Umum & Perbaikan Cepat

  • invalid_client / invalid_grant → rahasia/sertifikat klien sudah kedaluwarsa; rotasi di Key Vault lalu terapkan ulang.
  • insufficient privileges to complete the operation → izin Application yang diperlukan belum ada, atau admin consent belum diberikan di penyewa ini.
  • 403 pada SharePoint dengan hanya aplikasi → cakupan terlalu luas atau akses level situs belum selaras; verifikasi izin situs atau pendekatan katalog aplikasi.
  • 401 yang muncul sesekali → ada perubahan Akses Bersyarat atau kebijakan persetujuan; periksa log masuk dan log audit untuk perwakilan layanan.

Pagar Pengaman Keamanan & Kepatuhan

  • Pisahkan tugas: pemilik yang berbeda untuk registrasi aplikasi, persetujuan izin, dan operasional.
  • Beri tag pada aplikasi perusahaan dengan klasifikasi data (misalnya menyentuh data HR, Keuangan, atau PHI).
  • PIM untuk pemberi persetujuan; wajibkan tiket atau catatan perubahan untuk setiap cakupan baru.
  • Hapus aplikasi yang tidak digunakan dan nonaktifkan endpoint autentikasi lama.
  • Dokumentasikan alur data untuk setiap aplikasi; simpan satu halaman catatan untuk setiap integrasi.

Pertanyaan Umum Singkat

  • Apakah izin hanya-aplikasi mewarisi ACL pengguna? Tidak. Hanya-aplikasi bekerja secara independen dari konteks pengguna.
  • Dapatkah pengguna biasa memberikan cakupan hanya-aplikasi? Tidak. Diperlukan persetujuan admin.
  • Apakah token otomatis kedaluwarsa saat akses dicabut? Token memang cepat kedaluwarsa, tetapi izin yang sudah diberikan tetap berlaku sampai dicabut.
  • Pilihan autentikasi terbaik? Identitas terkelola (di Azure) atau sertifikat + Key Vault; hindari rahasia yang berlaku lama.

Rencana Aksi (Sprint Penguatan Keamanan 90 Menit)

  1. Inventarisasi aplikasi perusahaan + izin aplikasi Graph.
  2. Tandai aplikasi *.ReadWrite.All dan Directory.* untuk ditinjau.
  3. Rotasi setiap rahasia yang kedaluwarsa dalam <30 hari; pindahkan ke sertifikat/identitas terkelola jika memungkinkan.
  4. Aktifkan peringatan untuk perubahan persetujuan dan kedaluwarsanya Key Vault.
  5. Tulis satu halaman ringkasan untuk setiap aplikasi: tujuan, data yang disentuh, cakupan, pemilik, dan tanggal rotasi.
  6. Jadwalkan tinjauan triwulanan bersama SecOps dan pemilik aplikasi.

Kesimpulan

Mengamankan integrasi Microsoft Graph bukanlah tugas pengaturan sekali jalan. Dengan memahami dampak nyata dari celah persetujuan, menerapkan pola izin dengan hak akses minimal, meninggalkan rahasia klien yang rapuh, serta membangun rutinitas pemantauan yang ketat, Anda dapat meningkatkan postur keamanan penyewa Anda secara signifikan. Jangan biarkan pekerjaan latar belakang Anda rentan terhadap kegagalan diam-diam atau perluasan akses yang tidak terkendali. Luangkan waktu hari ini untuk menjalankan sprint penguatan keamanan 90 menit dan audit aplikasi perusahaan Anda. Untuk pembahasan lengkap tentang konsep-konsep ini serta diskusi lebih dalam tentang akses hanya-aplikasi, simak episode podcast terkait: Microsoft Graph App-Only Consent Explained.

Entities in this article

Microsoft Graph Azure Key Vault Microsoft Entra ID SharePoint Conditional Access Managed identity Client secret Azure Functions Azure Logic Apps Exchange Online

Related articles

RSS