Praktik terbaik dan rekomendasi platform identitas Microsoft
Artikel ini menyoroti praktik terbaik, rekomendasi, dan pengawasan umum saat berintegrasi dengan platform identitas Microsoft. Daftar periksa ini akan memandu Anda ke integrasi berkualitas tinggi dan aman. Tinjau daftar ini secara berkala untuk memastikan Anda mempertahankan kualitas dan keamanan integrasi aplikasi Anda dengan platform identitas. Daftar periksa tidak dimaksudkan untuk meninjau seluruh aplikasi Anda. Isi daftar periksa dapat berubah saat kami melakukan penyempurnaan pada platform.
Jika Anda baru saja memulai, lihat dokumentasi platform identitas Microsoft untuk mempelajari dasar-dasar autentikasi, skenario aplikasi di platform identitas Microsoft, dan banyak lagi.
Gunakan daftar periksa berikut untuk memastikan bahwa aplikasi Anda terintegrasi secara efektif dengan platform identitas Microsoft.
Tip
Asisten Integrasi dapat membantu Anda menerapkan banyak praktik dan rekomendasi terbaik ini. Pilih salah satu pendaftaran aplikasi Anda, lalu pilih item menu Asisten integrasi untuk mulai menggunakan asisten.
Dasar
Membaca dan memahami Kebijakan Platform Microsoft. Pastikan aplikasi Anda mematuhi persyaratan yang dijabarkan saat dirancang untuk melindungi pengguna dan platform.
Kepemilikan
Pastikan informasi yang terkait dengan akun yang Anda gunakan untuk mendaftar dan mengelola aplikasi sudah diperbarui.
Branding
Mematuhi pedoman Branding untuk aplikasi.
Berikan nama dan logo yang bermakna untuk aplikasi Anda. Informasi ini muncul pada permintaan persetujuan aplikasi Anda. Pastikan nama dan logo Anda mewakili perusahaan/produk Anda sehingga pengguna dapat membuat keputusan dengan informasi yang baik. Pastikan Anda tidak melanggar merek dagang apa pun.
Privasi
Berikan tautan ke ketentuan layanan dan pernyataan privasi aplikasi Anda.
Keamanan
Mengelola URI pengalihan Anda:
- Pertahankan kepemilikan semua URI pengalihan Anda dan selalu pertahankan catatan DNS agar selalu diperbarui.
- Jangan gunakan kartubebas (*) di URI Anda.
- Untuk aplikasi web, pastikan semua URI aman dan terenkripsi (misalnya, menggunakan skema https).
- Untuk klien publik, gunakan URI pengalihan khusus platform jika berlaku (terutama untuk iOS dan Android). Jika tidak, gunakan URI pengalihan dengan jumlah keacakan yang tinggi untuk mencegah tabrakan saat memanggil kembali ke aplikasi Anda.
- Jika aplikasi Anda digunakan dari agen web yang terisolasi, Anda dapat menggunakan
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Tinjau dan pangkas semua URI pengalihan yang tidak digunakan atau tidak perlu secara teratur.
Jika aplikasi Anda terdaftar di direktori, minimalkan dan pantau daftar pemilik pendaftaran aplikasi secara manual.
Jangan aktifkan dukungan untuk alur pemberian implisit OAuth2 kecuali diperlukan secara eksplisit. Pelajari skenario yang valid di sini.
Berpindah di luar nama pengguna/kata sandi. Jangan gunakan alur kredensial kata sandi pemilik sumber daya (ROPC), yang secara langsung menangani kata sandi pengguna. Alur ini membutuhkan tingkat kepercayaan dan paparan pengguna yang tinggi dan hanya boleh digunakan ketika alur lain, yang lebih aman, tidak dapat digunakan. Alur ini masih diperlukan dalam beberapa skenario (seperti DevOps), tetapi berhati-hatilah bahwa menggunakannya akan memberlakukan batasan pada aplikasi Anda. Untuk pendekatan yang lebih modern, baca Alur autentikasi dan skenario aplikasi.
Lindungi dan kelola kredensial aplikasi rahasia Anda untuk aplikasi web, API web, dan aplikasi daemon. Gunakan informasi masuk sertifikat, bukan informasi masuk kata sandi (rahasia klien). Jika Anda harus menggunakan informasi masuk kata sandi, jangan atur secara manual. Jangan menyimpan informasi masuk dalam kode atau konfigurasi, dan jangan pernah mengizinkannya ditangani oleh manusia. Jika memungkinkan, gunakan identitas terkelola untuk sumber daya Azure atau Azure Key Vault untuk menyimpan dan merotasi informasi masuk Anda secara teratur.
Pastikan aplikasi Anda meminta izin hak istimewa paling sedikit. Hanya minta izin yang benar-benar dibutuhkan aplikasi Anda, dan hanya ketika Anda membutuhkannya. Memahami berbagai jenis izin. Hanya gunakan izin aplikasi jika perlu; gunakan izin yang didelegasikan jika memungkinkan. Untuk daftar lengkap izin Microsoft Graph, lihat referensi izin ini.
Jika Anda mengamankan API menggunakan platform identitas Microsoft, pikirkan dengan cermat izin yang harus diekspos. Pertimbangkan granularitas yang tepat untuk solusi Anda dan izin mana yang memerlukan persetujuan admin. Periksa izin yang diharapkan dalam token masuk sebelum membuat keputusan otorisasi apa pun.
implementasi
Gunakan solusi autentikasi modern (OAuth 2.0, OpenID Connect) untuk memasukkan pengguna dengan aman.
Jangan memprogram secara langsung terhadap protokol seperti OAuth 2.0 dan Open ID. Alih-alih, manfaatkan Microsoft Authentication Library (MSAL). Pustaka MSAL membungkus protokol keamanan dengan aman dalam suatu pustaka yang mudah digunakan, dan Anda mendapat dukungan bawaan untuk skenario Akses Bersyarat, masuk tunggal (SSO) di seluruh perangkat, dan dukungan cache token bawaan. Untuk informasi selengkapnya, lihat daftar pustaka klien yang didukung Microsoft. Jika Anda harus membuat kode tangan untuk protokol autentikasi, Anda harus mengikuti Microsoft SDL atau metodologi pengembangan serupa. Perhatikan dengan cermat pertimbangan keamanan dalam spesifikasi standar untuk setiap protokol.
JANGAN melihat nilai token akses, atau mencoba mengurainya sebagai klien. Mereka dapat mengubah nilai, format, atau bahkan menjadi dienkripsi tanpa peringatan - selalu gunakan token ID jika klien Anda perlu mempelajari sesuatu tentang pengguna. Hanya API web yang harus memparsing token akses (karena API itulah yang mendefinisikan format dan mengatur kunci enkripsi). Mengirim token akses langsung ke API oleh klien adalah risiko keamanan, karena merupakan kredensial sensitif yang memberikan akses ke sumber daya tertentu. Pengembang tidak boleh berasumsi bahwa klien dapat dipercaya untuk memvalidasi token akses.
Migrasikan aplikasi yang ada dari Azure Active Directory Authentication Library (ADAL) ke Microsoft Authentication Library. MSAL adalah solusi platform identitas terbaru Microsoft dan tersedia di .NET, JavaScript, Android, iOS, macOS, Python, dan Java. Baca selengkapnya tentang memigrasikan aplikasi ADAL.NET, ADAL.js, dan ADAL.NET dan broker iOS.
Untuk aplikasi seluler, konfigurasikan setiap platform menggunakan pengalaman pendaftaran aplikasi. Agar aplikasi Anda dapat memanfaatkan Microsoft Authenticator atau Microsoft Company Portal untuk akses menyeluruh, aplikasi Anda memerlukan "URI pengalihan broker" yang dikonfigurasi. Ini memungkinkan Microsoft untuk mengembalikan kontrol ke aplikasi Anda setelah autentikasi. Saat mengonfigurasi setiap platform, pengalaman pendaftaran aplikasi akan memandu Anda melalui proses. Gunakan mulai cepat untuk mengunduh contoh yang berfungsi. Di iOS, gunakan broker dan webview sistem jika memungkinkan.
Di aplikasi web atau API web, simpan satu cache token per akun. Untuk aplikasi web, cache token harus dimasukkan oleh ID akun. Untuk API web, akun harus dimasukkan oleh hash token yang digunakan untuk memanggil API. MSAL.NET menyediakan serialisasi cache token kustom di .NET dan .NET Framework. Untuk alasan keamanan dan kinerja, rekomendasi kami adalah menyerialisasikan satu cache per pengguna. Untuk informasi selengkapnya, baca tentang serialisasi cache token.
Jika data yang diperlukan aplikasi Anda tersedia melalui Microsoft Graph, minta izin untuk data ini menggunakan titik akhir Microsoft Graph daripada API individual.
Pengalaman pengguna akhir
Pahami pengalaman persetujuan dan konfigurasikan potongan permintaan persetujuan aplikasi Anda sehingga pengguna akhir dan admin memiliki informasi yang cukup untuk menentukan apakah mereka mempercayai aplikasi Anda.
Minimalkan berapa kali pengguna perlu memasukkan kredensial masuk saat menggunakan aplikasi Anda dengan mencoba autentikasi senyap (akuisisi token senyap) sebelum alur interaktif.
Jangan gunakan "prompt=consent" untuk setiap rincian masuk. Hanya gunakan prompt=consent jika Anda telah menentukan bahwa Anda perlu meminta persetujuan untuk izin tambahan (misalnya, jika Anda telah mengubah izin yang diperlukan aplikasi).
Jika berlaku, perkaya aplikasi Anda dengan data pengguna. Menggunakan Microsoft Graph API adalah cara mudah untuk melakukan ini. Alat Graph Explorer yang dapat membantu Anda memulai.
Daftarkan sekumpulan izin lengkap yang diperlukan aplikasi Anda sehingga admin dapat memberikan persetujuan dengan mudah kepada penyewa mereka. Gunakan persetujuan inkremental pada runtime untuk membantu pengguna memahami mengapa aplikasi Anda meminta izin yang mungkin menjadi perhatian atau membingungkan pengguna saat diminta pada awalnya.
Terapkan pengalaman keluar tunggal yang bersih. Ini adalah privasi dan persyaratan keamanan, dan membuat pengalaman pengguna yang baik.
Pengujian
Uji kebijakan Akses Bersyar yang dapat memengaruhi kemampuan pengguna Anda untuk menggunakan aplikasi Anda.
Uji aplikasi Anda dengan semua akun yang mungkin Anda rencanakan untuk didukung (misalnya, akun kantor atau sekolah, akun Microsoft pribadi, akun anak, dan akun berdaulat).
Sumber Daya Tambahan:
Jelajahi informasi mendalam tentang v2.0: