Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
| Produk/Layanan | Artikel |
|---|---|
| Batas Kepercayaan Mesin | |
| Aplikasi Web |
|
| Basis data | |
| IoT Cloud Gateway | |
| Azure Event Hub | |
| Database Dokumen Azure | |
| Batas Kepercayaan Microsoft Azure | |
| Batas Kepercayaan Service Fabric | |
| Dynamics CRM | |
| Dynamics CRM Portal | |
| Azure Storage | |
| Aplikasi Seluler | |
| WCF | |
| API Web | |
| Perangkat IoT | |
| Gateway Bidang IoT |
Pastikan ACL yang tepat dikonfigurasi untuk membatasi akses tidak sah ke data di perangkat
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Batas Kepercayaan Komputer |
| Fase SDL | Penyebaran |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Pastikan ACL yang tepat dikonfigurasi untuk membatasi akses tidak sah ke data di perangkat |
Pastikan konten aplikasi khusus pengguna yang sensitif disimpan di direktori profil pengguna
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Batas Kepercayaan Komputer |
| Fase SDL | Penyebaran |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Pastikan konten aplikasi khusus pengguna yang sensitif disimpan dalam direktori profil pengguna. Ini untuk mencegah banyak pengguna mesin mengakses data satu sama lain. |
Pastikan bahwa aplikasi yang disebarkan dijalankan dengan hak istimewa paling sedikit
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Batas Kepercayaan Komputer |
| Fase SDL | Penyebaran |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Pastikan bahwa aplikasi yang disebarkan dijalankan dengan hak istimewa paling sedikit. |
Terapkan urutan langkah berurutan saat memproses alur logika bisnis
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Aplikasi Web |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Untuk memverifikasi bahwa tahap ini dijalankan oleh pengguna asli, Anda ingin menerapkan aplikasi untuk hanya memproses alur logika bisnis dalam urutan langkah berurutan, dengan semua langkah diproses dalam waktu manusia yang realistis, dan tidak memproses tidak berurutan, langkah yang dilewati, langkah yang diproses dari pengguna lain, atau transaksi yang dikirimkan terlalu cepat. |
Terapkan mekanisme pembatasan kecepatan untuk mencegah pencacahan
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Aplikasi Web |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Pastikan bahwa pengidentifikasi sensitif bersifat acak. Terapkan kontrol CAPTCHA pada halaman anonim. Pastikan bahwa kesalahan dan pengecualian tidak boleh mengungkapkan data tertentu |
Pastikan bahwa otorisasi yang tepat ada dan prinsip hak istimewa paling sedikit diikuti
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Aplikasi Web |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Prinsipnya berarti memberikan akun pengguna hanya hak istimewa yang penting untuk pengguna bekerja. Misalnya, pengguna cadangan tidak perlu menginstal perangkat lunak: karenanya, pengguna cadangan hanya memiliki hak untuk menjalankan aplikasi terkait pencadangan dan pencadangan. Hak istimewa lainnya, seperti menginstal perangkat lunak baru, diblokir. Prinsip ini juga berlaku untuk pengguna komputer pribadi yang biasanya bekerja di akun pengguna normal, dan membuka akun istimewa yang dilindungi kata sandi (yaitu, pengguna super) hanya ketika situasinya benar-benar menuntutnya. Prinsip ini juga dapat diterapkan pada aplikasi web Anda. Alih-alih hanya bergantung pada metode otentikasi berbasis peran menggunakan sesi, kami lebih suka menetapkan hak istimewa kepada pengguna melalui sistem Otentikasi Database-Based. Kami masih menggunakan sesi untuk mengidentifikasi apakah pengguna masuk dengan benar, hanya sekarang alih-alih menetapkan pengguna tersebut dengan peran tertentu, kami memberinya hak istimewa untuk memverifikasi tindakan mana yang memiliki hak istimewa untuk dilakukan di sistem. Juga kelebihan besar dari metode ini adalah, setiap kali pengguna harus diberi lebih sedikit hak istimewa, perubahan Anda akan diterapkan dengan cepat karena penetapan tidak bergantung pada sesi yang harus kedaluwarsa terlebih dahulu. |
Logika bisnis dan keputusan otorisasi akses sumber daya tidak boleh didasarkan pada parameter permintaan masuk
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Aplikasi Web |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Setiap kali Anda memeriksa apakah pengguna dibatasi untuk meninjau data tertentu, pembatasan akses harus diproses di sisi server. ID pengguna harus disimpan di dalam variabel sesi saat login dan harus digunakan untuk mengambil data pengguna dari database |
Contoh
SELECT data
FROM personaldata
WHERE userID=:id < - session var
Sekarang kemungkinan penyerang tidak dapat merusak dan mengubah operasi aplikasi karena pengidentifikasi untuk mengambil data ditangani di sisi server.
Pastikan konten dan sumber daya tidak dapat dihitung atau dapat diakses melalui penjelajahan paksa
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Aplikasi Web |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | File statis dan konfigurasi sensitif tidak boleh disimpan di web-root. Untuk konten yang tidak diharuskan bersifat publik, kontrol akses yang tepat harus diterapkan atau penghapusan konten itu sendiri. Selain itu, penjelajahan paksa biasanya dikombinasikan dengan teknik Brute Force untuk mengumpulkan informasi dengan mencoba mengakses URL sebanyak mungkin untuk menghitung direktori dan file di server. Penyerang dapat memeriksa semua variasi file yang umum ada. Misalnya, pencarian file kata sandi akan mencakup file termasuk psswd.txt, password.htm, password.dat, dan variasi lainnya. Untuk mengurangi hal ini, kemampuan untuk mendeteksi upaya brute force harus disertakan. |
Pastikan bahwa akun dengan hak istimewa paling rendah digunakan untuk terhubung ke server Database
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Basis data |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Hierarki izin SQL, keamanan SQL |
| Langkah-langkah | Akun dengan hak istimewa paling rendah harus digunakan untuk terhubung ke database. Login aplikasi harus dibatasi dalam database dan hanya boleh menjalankan prosedur tersimpan yang dipilih. Login aplikasi tidak boleh memiliki akses meja langsung. |
Menerapkan RLS Keamanan Tingkat Baris untuk mencegah penyewa mengakses data satu sama lain
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Basis data |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Sql Azure, OnPrem |
| Atribut | Versi SQL - V12, Versi SQL - MsSQL2016 |
| Referensi | Keamanan Row-Level SQL Server (RLS) |
| Langkah-langkah | Row-Level Security memungkinkan pelanggan mengontrol akses ke baris dalam tabel database berdasarkan karakteristik pengguna yang menjalankan kueri (misalnya, keanggotaan grup atau konteks eksekusi). Row-Level Security (RLS) menyederhanakan desain dan pengkodean keamanan dalam aplikasi Anda. RLS memungkinkan Anda mengimplementasikan pembatasan akses baris data. Misalnya, memastikan bahwa pekerja hanya dapat mengakses baris data yang relevan dengan departemen mereka, atau membatasi akses data pelanggan hanya untuk data yang relevan dengan perusahaan mereka. Logika pembatasan akses terletak di tingkat database daripada jauh dari data di tingkat aplikasi lain. Sistem database menerapkan pembatasan akses setiap kali akses data dicoba dari tingkat mana pun. Hal ini membuat sistem keamanan lebih andal dan kuat dengan mengurangi luas permukaan sistem keamanan. |
Harap dicatat bahwa RLS sebagai fitur database siap pakai hanya berlaku untuk SQL Server mulai 2016, Azure SQL Database, dan SQL Managed Instance. Jika fitur RLS out-of-the-box tidak diterapkan, harus dipastikan bahwa akses data dibatasi Menggunakan Tampilan dan Prosedur
Peran sysadmin hanya boleh memiliki pengguna yang valid yang diperlukan
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Basis data |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Hierarki izin SQL, keamanan SQL |
| Langkah-langkah | Anggota peran server tetap SysAdmin harus sangat terbatas dan tidak pernah berisi akun yang digunakan oleh aplikasi. Silakan tinjau daftar pengguna dalam peran dan hapus akun yang tidak perlu |
Menyambungkan ke Cloud Gateway menggunakan token dengan hak istimewa paling rendah
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | IoT Cloud Gateway |
| Fase SDL | Penyebaran |
| Teknologi yang Berlaku | Umum |
| Atribut | Pilihan gateway - Azure IoT Hub |
| Referensi | Kontrol Akses IoT Hub |
| Langkah-langkah | Berikan izin hak istimewa paling sedikit ke berbagai komponen yang terhubung ke Cloud Gateway (IoT Hub). Contoh umumnya adalah – Komponen manajemen/provisi perangkat menggunakan registryread/write, Event Processor (ASA) menggunakan Service Connect. Masing-masing perangkat terhubung menggunakan kredensial Perangkat |
Menggunakan Kunci SAS izin khusus kirim untuk menghasilkan token perangkat
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Azure Event Hub |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Gambaran umum autentikasi dan model keamanan Azure Event Hubs |
| Langkah-langkah | Kunci SAS digunakan untuk menghasilkan token perangkat individual. Gunakan kunci SAS izin khusus kirim saat membuat token perangkat untuk penerbit tertentu |
Jangan gunakan token akses yang menyediakan akses langsung ke Event Hub
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Azure Event Hub |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Gambaran umum autentikasi dan model keamanan Azure Event Hubs |
| Langkah-langkah | Token yang memberikan akses langsung ke pusat peristiwa tidak boleh diberikan ke perangkat. Menggunakan token dengan hak istimewa paling rendah untuk perangkat yang hanya memberikan akses ke penerbit akan membantu mengidentifikasi dan melarangnya jika ditemukan sebagai perangkat nakal atau disusupi. |
Menyambungkan ke Event Hub menggunakan kunci SAS yang memiliki izin minimum yang diperlukan
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Azure Event Hub |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Gambaran umum autentikasi dan model keamanan Azure Event Hubs |
| Langkah-langkah | Berikan izin hak istimewa paling sedikit ke berbagai aplikasi back-end yang terhubung ke Pusat Peristiwa. Hasilkan kunci SAS terpisah untuk setiap aplikasi back-end dan hanya berikan izin yang diperlukan - Kirim, Terima, atau Kelola kepada mereka. |
Gunakan token sumber daya untuk terhubung ke Azure Cosmos DB bila memungkinkan
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Database Dokumen Azure |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Token sumber daya dikaitkan dengan sumber daya izin Azure Cosmos DB dan menangkap hubungan antara pengguna database dan izin yang dimiliki pengguna untuk sumber daya aplikasi Azure Cosmos DB tertentu (misalnya koleksi, dokumen). Selalu gunakan token sumber daya untuk mengakses Azure Cosmos DB jika klien tidak dapat dipercaya dengan menangani kunci master atau baca-saja - seperti aplikasi pengguna akhir seperti klien seluler atau desktop. Gunakan kunci Master atau kunci hanya-baca dari aplikasi backend yang dapat menyimpan kunci ini dengan aman. |
Mengaktifkan manajemen akses terperinci ke Langganan Azure menggunakan Azure RBAC
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Batas Kepercayaan Azure |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tetapkan peran Azure untuk mengelola akses ke sumber daya langganan Azure Anda |
| Langkah-langkah | Kontrol akses berbasis peran Azure (Azure RBAC) memungkinkan manajemen akses terperinci untuk Azure. Dengan menggunakan Azure RBAC, Anda hanya dapat memberikan jumlah akses yang diperlukan pengguna untuk melakukan pekerjaan mereka. |
Membatasi akses klien ke operasi kluster menggunakan Service Fabric RBAC
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Batas Kepercayaan Service Fabric |
| Fase SDL | Penyebaran |
| Teknologi yang Berlaku | Umum |
| Atribut | Lingkungan - Azure |
| Referensi | Kontrol akses berbasis peran Service Fabric untuk klien Service Fabric |
| Langkah-langkah | Azure Service Fabric mendukung dua jenis kontrol akses yang berbeda untuk klien yang terhubung ke klaster Kain Layanan: administrator dan pengguna. Kontrol akses memungkinkan administrator kluster untuk membatasi akses ke operasi kluster tertentu untuk berbagai kelompok pengguna, membuat kluster lebih aman. Administrator memiliki akses penuh ke kemampuan manajemen (termasuk kemampuan baca/tulis). Pengguna, secara default, hanya memiliki akses baca ke kemampuan manajemen (misalnya, kemampuan kueri), dan kemampuan untuk menyelesaikan aplikasi dan layanan. Anda menentukan dua peran klien (administrator dan klien) pada saat pembuatan kluster dengan memberikan sertifikat terpisah untuk masing-masing. |
Lakukan pemodelan keamanan dan gunakan Keamanan Tingkat Bidang jika diperlukan
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Dynamics CRM |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Lakukan pemodelan keamanan dan gunakan Keamanan Tingkat Bidang jika diperlukan |
Lakukan pemodelan keamanan akun portal dengan mengingat bahwa model keamanan untuk portal berbeda dari CRM lainnya
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Dynamics CRM Portal |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Lakukan pemodelan keamanan akun portal dengan mengingat bahwa model keamanan untuk portal berbeda dari CRM lainnya |
Berikan izin terperinci pada rentang entitas di Azure Table Storage
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Azure Storage |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | StorageType - Tabel |
| Referensi | Cara mendelegasikan akses ke objek di akun penyimpanan Azure Anda menggunakan SAS |
| Langkah-langkah | Dalam skenario bisnis tertentu, Azure Table Storage mungkin diperlukan untuk menyimpan data sensitif yang melayani pihak yang berbeda. Misalnya, data sensitif yang berkaitan dengan berbagai negara/wilayah. Dalam kasus seperti itu, tanda tangan SAS dapat dibuat dengan menentukan rentang kunci partisi dan baris, sehingga pengguna dapat mengakses data khusus untuk negara/wilayah tertentu. |
Mengaktifkan kontrol akses berbasis peran Azure (Azure RBAC) ke akun penyimpanan Azure menggunakan Azure Resource Manager
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Azure Storage |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Cara mengamankan akun penyimpanan Anda dengan kontrol akses berbasis peran Azure (Azure RBAC) |
| Langkah-langkah | Saat Anda membuat akun penyimpanan baru, Anda memilih model penyebaran Klasik atau Azure Resource Manager. Model Klasik untuk membuat sumber daya di Azure hanya mengizinkan akses semua atau tidak sama sekali ke langganan, dan pada gilirannya, akun penyimpanan. Dengan model Azure Resource Manager, Anda menempatkan akun penyimpanan dalam grup sumber daya dan mengontrol akses ke sarana manajemen akun penyimpanan tertentu menggunakan ID Microsoft Entra. Misalnya, Anda dapat memberi pengguna tertentu kemampuan untuk mengakses kunci akun penyimpanan, sementara pengguna lain dapat melihat informasi tentang akun penyimpanan, tetapi tidak dapat mengakses kunci akun penyimpanan. |
Menerapkan deteksi jailbreak atau rooting implisit
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Aplikasi Seluler |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Aplikasi harus melindungi konfigurasi dan data penggunanya sendiri jika ponsel di-root atau rusak. Rooting/jailbreaking menyiratkan akses yang tidak sah, yang tidak akan dilakukan pengguna normal di ponsel mereka sendiri. Oleh karena itu aplikasi harus memiliki logika deteksi implisit pada startup aplikasi, untuk mendeteksi apakah ponsel telah di-root. Logika deteksi dapat berupa akses file yang biasanya hanya dapat diakses oleh pengguna root, misalnya:
Jika aplikasi dapat mengakses salah satu file ini, itu menunjukkan bahwa aplikasi berjalan sebagai pengguna root. |
Referensi Kelas Lemah di WCF
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | WCF |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Generik, NET Framework 3 |
| Atribut | Tidak tersedia |
| Referensi | MSDN, Kerajaan Fortify |
| Langkah-langkah | Sistem menggunakan referensi kelas yang lemah, yang mungkin memungkinkan penyerang untuk mengeksekusi kode yang tidak sah. Program ini mereferensikan kelas yang ditentukan pengguna yang tidak diidentifikasi secara unik. Saat .NET memuat kelas yang diidentifikasi lemah ini, pemuat jenis CLR mencari kelas di lokasi berikut dalam urutan yang ditentukan:
Jika penyerang mengeksploitasi urutan pencarian CLR dengan membuat kelas alternatif dengan nama yang sama dan menempatkannya di lokasi alternatif yang akan dimuat CLR terlebih dahulu, CLR akan secara tidak sengaja mengeksekusi kode yang disediakan penyerang |
Contoh
Elemen <behaviorExtensions/> file konfigurasi WCF di bawah ini menginstruksikan WCF untuk menambahkan kelas perilaku kustom ke ekstensi WCF tertentu.
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name=""myBehavior"" type=""MyBehavior"" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
Menggunakan nama yang sepenuhnya memenuhi syarat (kuat) secara unik mengidentifikasi jenis dan selanjutnya meningkatkan keamanan sistem Anda. Gunakan nama rakitan yang sepenuhnya memenuhi syarat saat mendaftarkan jenis dalam file machine.config dan app.config.
Contoh
Elemen <behaviorExtensions/> file konfigurasi WCF di bawah ini menginstruksikan WCF untuk menambahkan kelas perilaku kustom yang sangat direferensikan ke ekstensi WCF tertentu.
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name=""myBehavior"" type=""Microsoft.ServiceModel.Samples.MyBehaviorSection, MyBehavior,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
WCF-Implement Kontrol otorisasi
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | WCF |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Generik, NET Framework 3 |
| Atribut | Tidak tersedia |
| Referensi | MSDN, Kerajaan Fortify |
| Langkah-langkah | Layanan ini tidak menggunakan kontrol otorisasi. Saat klien memanggil layanan WCF tertentu, WCF menyediakan berbagai skema otorisasi yang memverifikasi bahwa pemanggil memiliki izin untuk menjalankan metode layanan di server. Jika kontrol otorisasi tidak diaktifkan untuk layanan WCF, pengguna yang diautentikasi dapat mencapai eskalasi hak istimewa. |
Contoh
Konfigurasi berikut menginstruksikan WCF untuk tidak memeriksa tingkat otorisasi klien saat menjalankan layanan:
<behaviors>
<serviceBehaviors>
<behavior>
...
<serviceAuthorization principalPermissionMode=""None"" />
</behavior>
</serviceBehaviors>
</behaviors>
Gunakan skema otorisasi layanan untuk memverifikasi bahwa pemanggil metode layanan berwenang untuk melakukannya. WCF menyediakan dua mode dan memungkinkan definisi skema otorisasi khusus. Mode UseWindowsGroups menggunakan peran dan pengguna Windows dan mode UseAspNetRoles menggunakan penyedia peran ASP.NET, seperti SQL Server, untuk mengautentikasi.
Contoh
Konfigurasi berikut menginstruksikan WCF untuk memastikan bahwa klien adalah bagian dari grup Administrator sebelum menjalankan layanan Tambahkan:
<behaviors>
<serviceBehaviors>
<behavior>
...
<serviceAuthorization principalPermissionMode=""UseWindowsGroups"" />
</behavior>
</serviceBehaviors>
</behaviors>
Layanan kemudian dideklarasikan sebagai berikut:
[PrincipalPermission(SecurityAction.Demand,
Role = ""Builtin\\Administrators"")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
Menerapkan mekanisme otorisasi yang tepat di ASP.NET Web API
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | API untuk Web |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Generik, MVC5 |
| Atribut | T/A, Penyedia Identitas - ADFS, Penyedia Identitas - ID Microsoft Entra |
| Referensi | Autentikasi dan Otorisasi di ASP.NET Web API |
| Langkah-langkah | Informasi peran untuk pengguna aplikasi dapat diturunkan dari klaim Microsoft Entra ID atau ADFS jika aplikasi mengandalkannya sebagai penyedia Identitas atau aplikasi itu sendiri mungkin menyediakannya. Dalam salah satu kasus ini, implementasi otorisasi kustom harus memvalidasi informasi peran pengguna. Informasi peran untuk pengguna aplikasi dapat diturunkan dari klaim Microsoft Entra ID atau ADFS jika aplikasi mengandalkannya sebagai penyedia Identitas atau aplikasi itu sendiri mungkin menyediakannya. Dalam salah satu kasus ini, implementasi otorisasi kustom harus memvalidasi informasi peran pengguna. |
Contoh
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class ApiAuthorizeAttribute : System.Web.Http.AuthorizeAttribute
{
public async override Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
if (actionContext == null)
{
throw new Exception();
}
if (!string.IsNullOrEmpty(base.Roles))
{
bool isAuthorized = ValidateRoles(actionContext);
if (!isAuthorized)
{
HandleUnauthorizedRequest(actionContext);
}
}
base.OnAuthorization(actionContext);
}
public bool ValidateRoles(actionContext)
{
//Authorization logic here; returns true or false
}
}
Semua pengontrol dan metode tindakan yang perlu dilindungi harus dihiasi dengan atribut di atas.
[ApiAuthorize]
public class CustomController : ApiController
{
//Application code goes here
}
Lakukan pemeriksaan otorisasi di perangkat jika mendukung berbagai tindakan yang memerlukan tingkat izin yang berbeda
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Perangkat IoT |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Perangkat harus mengizinkan pemanggil untuk memeriksa apakah pemanggil memiliki izin yang diperlukan untuk melakukan tindakan yang diminta. Misalnya katakanlah perangkat tersebut adalah Smart Door Lock yang dapat dipantau dari cloud, ditambah lagi menyediakan fungsionalitas seperti Mengunci pintu dari jarak jauh. Smart Door Lock menyediakan fungsionalitas membuka kunci hanya ketika seseorang secara fisik mendekati pintu dengan Kartu. Dalam hal ini, penerapan perintah dan kontrol jarak jauh harus dilakukan sedemikian rupa sehingga tidak menyediakan fungsionalitas apa pun untuk membuka kunci pintu karena gateway cloud tidak berwenang untuk mengirim perintah untuk membuka kunci pintu. |
Lakukan pemeriksaan otorisasi di Field Gateway jika mendukung berbagai tindakan yang memerlukan tingkat izin yang berbeda
| Judul | Detail lebih lanjut |
|---|---|
| Komponen | Gateway Bidang IoT |
| Fase SDL | Membangun |
| Teknologi yang Berlaku | Umum |
| Atribut | Tidak tersedia |
| Referensi | Tidak tersedia |
| Langkah-langkah | Field Gateway harus mengizinkan pemanggil untuk memeriksa apakah pemanggil memiliki izin yang diperlukan untuk melakukan tindakan yang diminta. Misalnya, harus ada izin yang berbeda untuk antarmuka pengguna admin/API yang digunakan untuk mengonfigurasi gateway bidang v/s perangkat yang terhubung dengannya. |