Topik keamanan ASP.NET Core

ASP.NET Core memungkinkan pengembang untuk mengkonfigurasi dan mengelola keamanan. Daftar berikut ini menyediakan tautan ke artikel tentang bekerja dengan keamanan di ASP.NET Core:

Fitur keamanan ini memungkinkan Anda membuat aplikasi ASP.NET Core yang kuat dan aman.

Untuk Blazor cakupan keamanan, yang melengkapi atau menggantikan panduan di node ini, lihat autentikasi dan otorisasi ASP.NET Core Blazor serta artikel lainnya di node Keamanan dan Identity milik Blazor.

Fitur keamanan ASP.NET Core

ASP.NET Core menyediakan banyak alat dan pustaka untuk mengamankan aplikasi ASP.NET Core, seperti penyedia identitas bawaan dan layanan identitas non-Microsoft seperti Facebook, Twitter, dan LinkedIn. ASP.NET Core menyediakan beberapa pendekatan untuk menyimpan rahasia aplikasi.

Autentikasi vs. Otorisasi

Autentikasi adalah proses di mana pengguna menyediakan kredensial yang dibandingkan dengan kredensial yang disimpan dalam sistem operasi, database, aplikasi, atau sumber daya. Ketika dua set kredensial cocok, pengguna berhasil mengautentikasi. Mereka kemudian dapat melakukan tindakan yang diotorisasi. Proses otorisasi menentukan tindakan yang diizinkan pengguna untuk dilakukan.

Cara lain untuk memikirkan autentikasi adalah dengan mempertimbangkannya sebagai cara untuk memasukkan ruang, di mana ruang tersebut adalah server, database, aplikasi, atau sumber daya. Otorisasi menentukan tindakan apa yang dapat dilakukan pengguna ke objek mana di dalam ruang tersebut (server, database, atau aplikasi).

Kerentanan umum dalam perangkat lunak

ASP.NET Core dan Entity Framework berisi fitur yang membantu Anda mengamankan aplikasi dan mencegah pelanggaran keamanan. Daftar tautan berikut membawa Anda ke teknik perincian dokumentasi untuk menghindari kerentanan keamanan paling umum di aplikasi web:

Ada lebih banyak kerentanan yang harus Anda waspadai. Untuk informasi lebih lanjut, lihat artikel lainnya di bagian Keamanan dan Identity dari daftar isi.

Alur autentikasi aman

Sebaiknya gunakan opsi autentikasi yang paling aman. Untuk layanan Azure, autentikasi yang paling aman adalah identitas terkelola.

Hindari menggunakan pemberian Info Masuk Kata Sandi Pemilik Sumber Daya (ROPG):

  • Ini mengekspos kata sandi pengguna ke klien.
  • Ini adalah risiko keamanan yang signifikan.
  • Gunakan hanya jika alur autentikasi lain tidak dimungkinkan.

Identitas terkelola adalah cara aman untuk mengautentikasi ke layanan tanpa perlu menyimpan kredensial dalam kode, variabel lingkungan, atau file konfigurasi. Identitas terkelola tersedia untuk layanan Azure, dan dapat digunakan dengan Azure SQL, Azure Storage, dan layanan Azure lainnya:

Saat aplikasi disebarkan ke server pengujian, variabel lingkungan dapat digunakan untuk mengatur string koneksi ke server database pengujian. Untuk informasi lebih lanjut, lihat Konfigurasi. Variabel lingkungan umumnya disimpan dalam teks biasa dan tidak terenkripsi. Jika mesin atau proses disusupi, variabel lingkungan mungkin dapat diakses oleh pihak yang tidak tepercaya. Sebaiknya jangan gunakan variabel lingkungan untuk menyimpan string koneksi produksi karena ini bukan pendekatan yang paling aman.

Panduan data konfigurasi:

  • Jangan pernah menyimpan kata sandi atau data sensitif lainnya dalam kode penyedia konfigurasi atau dalam file konfigurasi teks biasa. Alat Secret Manager dapat digunakan untuk menyimpan rahasia dalam pengembangan.
  • Jangan gunakan rahasia produksi di lingkungan pengembangan atau pengujian.
  • Tentukan rahasia di luar proyek sehingga tidak dapat diterapkan secara tidak sengaja ke repositori kode sumber.

Untuk informasi selengkapnya, lihat:

Untuk informasi tentang penyedia cloud lainnya, lihat:

Pola aplikasi web perusahaan

Untuk panduan tentang membuat aplikasi ASP.NET Core yang andal, aman, berkinerja, dapat diuji, dan dapat diskalakan, lihat pola aplikasi web Enterprise. Aplikasi web sampel kualitas produksi lengkap yang mengimplementasikan pola tersedia.