Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
| Ürün/Hizmet | Makale |
|---|---|
| Makine Güven Sınırı | |
| Web uygulaması |
|
| Veritabanı | |
| IoT Cloud Gateway | |
| Azure Olay Hub'ı | |
| Azure Belge VERITABANı | |
| Azure Güven Sınırı | |
| Service Fabric Güven Sınırı | |
| Dynamics CRM | |
| Dynamics CRM Portalı | |
| Azure Depolama | |
| Mobil İstemci | |
| WCF | |
| Web API'si | |
| IoT Cihazı | |
| IoT Alan Ağ Geçidi |
Cihazdaki verilere yetkisiz erişimi kısıtlamak için uygun ACL'lerin yapılandırıldığından emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Makine Güven Sınırı |
| SDL Aşaması | Dağıtım |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Cihazdaki verilere yetkisiz erişimi kısıtlamak için uygun ACL'lerin yapılandırıldığından emin olun |
Hassas kullanıcıya özgü uygulama içeriğinin kullanıcı profili dizininde depolandığından emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Makine Güven Sınırı |
| SDL Aşaması | Dağıtım |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Hassas kullanıcıya özgü uygulama içeriğinin kullanıcı profili dizininde depolandığından emin olun. Bu, makinenin birden çok kullanıcısının birbirlerinin verilerine erişmesini önlemek içindir. |
Dağıtılan uygulamaların en az ayrıcalıkla çalıştırıldığından emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Makine Güven Sınırı |
| SDL Aşaması | Dağıtım |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Dağıtılan uygulamanın en az ayrıcalıkla çalıştırıldığından emin olun. |
İş mantığı akışlarını işlerken sıralı adım sırasını zorunlu kılma
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Bu aşamanın gerçek bir kullanıcı tarafından gerçekleştirildiğini doğrulamak için, uygulamanın iş mantığı akışlarını yalnızca sıralı adım sırasına göre işlemesini, tüm adımların gerçekçi insan zamanında işlenmesini ve sıra dışı, atlanan adımları, başka bir kullanıcıdan işlenen adımları veya çok hızlı gönderilen işlemleri işlememesini sağlamak istersiniz. |
Numaralandırmayı önlemek için hız sınırlama mekanizmasını uygulayın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Hassas tanımlayıcıların rastgele olduğundan emin olun. Anonim sayfalarda CAPTCHA kontrolü uygulayın. Hata ve özel durumun belirli verileri açığa çıkarmaması gerektiğinden emin olun |
Uygun yetkilendirmenin yürürlükte olduğundan ve en az ayrıcalık ilkesine uyulduğundan emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | İlke, bir kullanıcı hesabına yalnızca o kullanıcının çalışması için gerekli olan ayrıcalıkları vermek anlamına gelir. Örneğin, bir yedekleme kullanıcısının yazılım yüklemesine gerek yoktur: bu nedenle, yedekleme kullanıcısının yalnızca yedekleme ve yedeklemeyle ilgili uygulamaları çalıştırma hakları vardır. Yeni yazılım yükleme gibi diğer ayrıcalıklar engellenir. Bu ilke, genellikle normal bir kullanıcı hesabında çalışan ve yalnızca durum kesinlikle gerektirdiğinde ayrıcalıklı, parola korumalı bir hesap (yani bir süper kullanıcı) açan bir kişisel bilgisayar kullanıcısı için de geçerlidir. Bu ilke web uygulamalarınıza da uygulanabilir. Oturumları kullanarak yalnızca rol tabanlı kimlik doğrulama yöntemlerine bağlı kalmak yerine, Database-Based bir Kimlik Doğrulama sistemi aracılığıyla kullanıcılara ayrıcalıklar atamak istiyoruz. Kullanıcının doğru bir şekilde oturum açıp açmadığını belirlemek için oturumları kullanmaya devam ediyoruz, ancak şimdi bu kullanıcıya belirli bir rol atamak yerine, sistemde hangi eylemleri gerçekleştirme ayrıcalığına sahip olduğunu doğrulamak için ona ayrıcalıklar atıyoruz. Ayrıca, bu yöntemin büyük bir profesyoneli, bir kullanıcıya daha az ayrıcalık atanması gerektiğinde, atama, aksi takdirde önce sona ermesi gereken oturuma bağlı olmadığından, değişiklikleriniz anında uygulanacaktır. |
İş mantığı ve kaynak erişim yetkilendirme kararları, gelen istek parametrelerine dayalı olmamalıdır
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Bir kullanıcının belirli verileri gözden geçirmesinin kısıtlanıp kısıtlanmadığını kontrol ettiğinizde, erişim kısıtlamaları sunucu tarafında işlenmelidir. Kullanıcı kimliği, oturum açma sırasında bir oturum değişkeninin içinde saklanmalı ve veritabanından kullanıcı verilerini almak için kullanılmalıdır |
Örnek
SELECT data
FROM personaldata
WHERE userID=:id < - session var
Artık olası bir saldırgan, verileri almak için tanımlayıcı sunucu tarafında işlendiğinden uygulama işlemini kurcalayamaz ve değiştiremez.
İçerik ve kaynakların numaralandırılabilir olmadığından veya zorla göz atma yoluyla erişilebilir olmadığından emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web Uygulaması |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Hassas statik ve yapılandırma dosyaları web kökünde tutulmamalıdır. Herkese açık olması gerekmeyen içerik için ya uygun erişim kontrolleri uygulanmalı ya da içeriğin kendisi kaldırılmalıdır. Ayrıca, bir sunucudaki dizinleri ve dosyaları numaralandırmak için mümkün olduğunca çok URL'ye erişmeye çalışarak bilgi toplamak için zorla tarama genellikle Kaba Kuvvet teknikleriyle birleştirilir. Saldırganlar, yaygın olarak bulunan dosyaların tüm varyasyonlarını kontrol edebilir. Örneğin, bir parola dosyası araması, psswd.txt, password.htm, password.dat ve diğer varyasyonları içeren dosyaları kapsar. Bunu azaltmak için, kaba kuvvet girişimlerinin algılanmasına yönelik yetenekler dahil edilmelidir. |
Veritabanı sunucusuna bağlanmak için en az ayrıcalıklı hesapların kullanıldığından emin olun
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Veritabanı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | SQL izinleri hiyerarşisi, SQL güvenliği sağlanabilir öğeleri |
| Adımlar | Veritabanına bağlanmak için en az ayrıcalıklı hesaplar kullanılmalıdır. Uygulama oturum açma veritabanında kısıtlanmalı ve yalnızca seçili saklı yordamları yürütmelidir. Uygulamanın oturum açma işleminde doğrudan tablo erişimi olmamalıdır. |
Kiracıların birbirlerinin verilerine erişmesini önlemek için Satır Düzeyi Güvenlik RLS'sini uygulama
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Veritabanı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Sql Azure, Şirket İçi |
| Öznitelikler | SQL Sürümü - V12, SQL Sürümü - MsSQL2016 |
| Referanslar | SQL Server Row-Level Güvenliği (RLS) |
| Adımlar | Row-Level Güvenlik, müşterilerin bir sorguyu yürüten kullanıcının özelliklerine (örneğin, grup üyeliği veya yürütme bağlamı) dayalı olarak bir veritabanı tablosundaki satırlara erişimi denetlemesine olanak tanır. Row-Level Güvenliği (RLS), uygulamanızdaki güvenlik tasarımını ve kodlamasını basitleştirir. RLS, veri satırı erişiminde kısıtlama uygulamanızı sağlar. Örneğin, çalışanların yalnızca departmanlarıyla ilgili veri satırlarına erişebilmesini sağlamak veya bir müşterinin veri erişimini yalnızca şirketleriyle ilgili verilerle kısıtlamak. Erişim kısıtlama mantığı, başka bir uygulama katmanındaki verilerden uzakta değil veritabanı katmanında bulunur. Veritabanı sistemi, herhangi bir katmandan veri erişimi denenen her durumda erişim kısıtlamalarını uygular. Bu, güvenlik sisteminin yüzey alanını azaltarak güvenlik sistemini daha güvenilir ve sağlam hale getirir. |
Kullanıma hazır bir veritabanı özelliği olarak RLS'nin yalnızca 2016'dan itibaren SQL Server, Azure SQL Veritabanı ve SQL Yönetilen Örneği için geçerli olduğunu lütfen unutmayın. Kullanıma hazır RLS özelliği uygulanmazsa, veri erişiminin kısıtlandığından emin olunmalıdır Görünümler ve Yordamlar Kullanılarak
Sysadmin rolü yalnızca geçerli gerekli kullanıcılara sahip olmalıdır
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Veritabanı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | SQL izinleri hiyerarşisi, SQL güvenliği sağlanabilir öğeleri |
| Adımlar | SysAdmin sabit sunucu rolünün üyeleri çok sınırlı olmalı ve hiçbir zaman uygulamalar tarafından kullanılan hesapları içermemelidir. Lütfen roldeki kullanıcıların listesini gözden geçirin ve gereksiz hesapları kaldırın |
En az ayrıcalıklı belirteçleri kullanarak Cloud Gateway'e bağlanın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | IoT Cloud Gateway |
| SDL Aşaması | Dağıtım |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Ağ geçidi seçimi - Azure IoT Hub |
| Referanslar | IoT Hub Erişim Denetimi |
| Adımlar | Cloud Gateway'e (IoT Hub) bağlanan çeşitli bileşenlere en az ayrıcalık izinleri sağlayın. Tipik bir örnek şudur: Cihaz yönetimi/sağlama bileşeni registryread/write kullanır, Olay İşlemcisi (ASA) Service Connect'i kullanır. Tek tek cihazlar, Cihaz kimlik bilgilerini kullanarak bağlanır |
Cihaz belirteçleri oluşturmak için yalnızca gönderme izinleri SAS Anahtarı kullanma
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Olay Hub'ı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Event Hubs kimlik doğrulama ve güvenlik modeli genel bakış |
| Adımlar | Tek tek cihaz belirteçleri oluşturmak için bir SAS anahtarı kullanılır. Belirli bir yayımcı için cihaz belirtecini oluştururken yalnızca gönderme izinleri SAS anahtarı kullanın |
Olay Hub'ına doğrudan erişim sağlayan erişim belirteçlerini kullanmayın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Olay Hub'ı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Event Hubs kimlik doğrulama ve güvenlik modeli genel bakış |
| Adımlar | Olay hub'ına doğrudan erişim izni veren bir belirteç cihaza verilmemelidir. Cihaz için yalnızca bir yayımcıya erişim sağlayan en az ayrıcalıklı belirteç kullanmak, cihazın sahte veya güvenliği ihlal edilmiş bir cihaz olduğu tespit edilirse tanımlanmasına ve izin verilmemesine yardımcı olur. |
Gereken en düşük izinlere sahip SAS anahtarlarını kullanarak Olay Hub'ına bağlanın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Olay Hub'ı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Event Hubs kimlik doğrulama ve güvenlik modeli genel bakış |
| Adımlar | Olay Hub'ına bağlanan çeşitli arka uç uygulamalarına en az ayrıcalık izinleri sağlayın. Her arka uç uygulaması için ayrı SAS anahtarları oluşturun ve yalnızca gerekli izinleri sağlayın (Gönderme, Alma veya Yönetme). |
Mümkün olduğunda Azure Cosmos DB'ye bağlanmak için kaynak belirteçlerini kullanın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Belge VERITABANı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Kaynak belirteci bir Azure Cosmos DB izin kaynağıyla ilişkilendirilir ve bir veritabanının kullanıcısı ile kullanıcının belirli bir Azure Cosmos DB uygulama kaynağı (ör. koleksiyon, belge) için sahip olduğu izin arasındaki ilişkiyi yakalar. İstemciye, mobil veya masaüstü istemcisi gibi bir son kullanıcı uygulaması gibi ana veya salt okunur anahtarları işleme konusunda güvenilemiyorsa, Azure Cosmos DB'ye erişmek için her zaman bir kaynak belirteci kullanın. Bu anahtarları güvenli bir şekilde depolayabilen arka uç uygulamalarından Ana anahtar veya salt okunur anahtarlar kullanın. |
Azure RBAC kullanarak Azure Aboneliğine ayrıntılı erişim yönetimini etkinleştirme
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Güven Sınırı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Azure abonelik kaynaklarınıza erişimi yönetmek için Azure rolleri atama |
| Adımlar | Azure rol tabanlı erişim denetimi (Azure RBAC), Azure için ayrıntılı erişim yönetimi sağlar. Azure RBAC kullanarak, yalnızca kullanıcıların işlerini gerçekleştirmek için ihtiyaç duydukları erişim miktarını verebilirsiniz. |
Service Fabric RBAC kullanarak istemcinin küme işlemlerine erişimini kısıtlama
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Service Fabric Güven Sınırı |
| SDL Aşaması | Dağıtım |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Ortam - Azure |
| Referanslar | Service Fabric istemcileri için Service Fabric rol tabanlı erişim denetimi |
| Adımlar | Azure Service Fabric, bir Service Fabric kümesine bağlı istemciler için iki farklı erişim denetimi türünü destekler: yönetici ve kullanıcı. Erişim denetimi, küme yöneticisinin farklı kullanıcı grupları için belirli küme işlemlerine erişimi sınırlamasına olanak tanıyarak kümeyi daha güvenli hale getirir. Yöneticilerin yönetim özelliklerine (okuma/yazma yetenekleri dahil) tam erişimi vardır. Kullanıcılar, varsayılan olarak, yönetim özelliklerine (örneğin, sorgu yetenekleri) yalnızca okuma erişimine ve uygulamaları ve hizmetleri çözümleme yeteneğine sahiptir. Küme oluşturma sırasında iki istemci rolünü (yönetici ve istemci) belirtirsiniz ve her biri için ayrı sertifikalar sağlarsınız. |
Güvenlik modellemesi gerçekleştirin ve gerektiğinde Alan Düzeyinde Güvenliği kullanın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Dynamics CRM |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Güvenlik modellemesi gerçekleştirin ve gerektiğinde Alan Düzeyinde Güvenliği kullanın |
Portalın güvenlik modelinin CRM'nin geri kalanından farklı olduğunu göz önünde bulundurarak portal hesaplarının güvenlik modellemesini gerçekleştirin
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Dynamics CRM Portalı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Portalın güvenlik modelinin CRM'nin geri kalanından farklı olduğunu göz önünde bulundurarak portal hesaplarının güvenlik modellemesini gerçekleştirin |
Azure Tablo Depolama'daki bir dizi varlık için ayrıntılı izin verme
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Depolama |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | StorageType - Tablo |
| Referanslar | SAS kullanarak Azure depolama hesabınızdaki nesnelere erişim yetkisi verme |
| Adımlar | Bazı iş senaryolarında, Azure Tablo Depolama'nın farklı taraflara hitap eden hassas verileri depolaması gerekebilir. Örneğin, farklı ülkelere/bölgelere ait hassas veriler. Bu gibi durumlarda, SAS imzaları, bir kullanıcının belirli bir ülkeye/bölgeye özgü verilere erişebilmesi için bölüm ve satır anahtarı aralıkları belirtilerek oluşturulabilir. |
Azure Resource Manager'ı kullanarak Azure depolama hesabına Azure rol tabanlı erişim denetimini (Azure RBAC) etkinleştirme
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Azure Depolama |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Azure rol tabanlı erişim denetimi (Azure RBAC) ile depolama hesabınızın güvenliğini sağlama |
| Adımlar | Yeni bir depolama hesabı oluşturduğunuzda, Klasik veya Azure Resource Manager bir dağıtım modeli seçersiniz. Azure'da kaynak oluşturmanın klasik modeli yalnızca aboneliğe ve dolayısıyla depolama hesabına ya hep ya hiç erişimine izin verir. Azure Resource Manager modeliyle, depolama hesabını bir kaynak grubuna yerleştirir ve Microsoft Entra ID'yi kullanarak söz konusu depolama hesabının yönetim düzlemine erişimi denetlersiniz. Örneğin, belirli kullanıcılara depolama hesabı anahtarlarına erişme olanağı verebilirken, diğer kullanıcılar depolama hesabıyla ilgili bilgileri görüntüleyebilir, ancak depolama hesabı anahtarlarına erişemez. |
Örtük jailbreak veya köklendirme algılaması uygulayın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Mobil İstemci |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Uygulama, telefonun rootlu veya jailbreak bozuk olması durumunda kendi yapılandırmasını ve kullanıcı verilerini korumalıdır. Köklendirme / hapis kırma, normal kullanıcıların kendi telefonlarında yapmayacakları yetkisiz erişim anlamına gelir. Bu nedenle, telefonun rootlanıp rootlanmadığını algılamak için uygulamanın başlangıçta örtük algılama mantığına sahip olması gerekir. Algılama mantığı, normalde yalnızca kök kullanıcının erişebileceği dosyalara basitçe erişmek olabilir, örneğin:
Uygulama bu dosyalardan herhangi birine erişebiliyorsa, uygulamanın kök kullanıcı olarak çalıştığını gösterir. |
WCF'de Zayıf Sınıf Başvurusu
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | WCF |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel, NET Framework 3 |
| Öznitelikler | Mevcut Değil |
| Referanslar | MSDN, Fortify Kingdom |
| Adımlar | Sistem, bir saldırganın yetkisiz kod yürütmesine izin verebilecek zayıf bir sınıf başvurusu kullanır. Program, benzersiz olarak tanımlanmamış, kullanıcı tanımlı bir sınıfa başvurur. .NET bu zayıf tanımlanmış sınıfı yüklediğinde, CLR türü yükleyicisi sınıfı belirtilen sırayla aşağıdaki konumlarda arar:
Bir saldırgan CLR arama sırasını kullanarak aynı ada sahip alternatif bir sınıf oluşturur ve bu sınıfı CLR'nin ilk olarak yükleyeceği alternatif bir konuma yerleştirirse, CLR istemeden saldırgan tarafından sağlanan kodu yürütür |
Örnek
<behaviorExtensions/> Aşağıdaki WCF yapılandırma dosyasının öğesi, WCF'ye belirli bir WCF uzantısına özel bir davranış sınıfı eklemesini söyler.
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name=""myBehavior"" type=""MyBehavior"" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
Tam nitelenmiş (güçlü) adların kullanılması, bir türü benzersiz bir şekilde tanımlar ve sisteminizin güvenliğini daha da artırır. machine.config ve app.config dosyalarında türleri kaydederken tam derleme adlarını kullanın.
Örnek
<behaviorExtensions/> Aşağıdaki WCF yapılandırma dosyasının öğesi, WCF'ye belirli bir WCF uzantısına kesin olarak başvurulan özel davranış sınıfı eklemesini söyler.
<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 Yetkilendirme kontrolü
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | WCF |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel, NET Framework 3 |
| Öznitelikler | Mevcut Değil |
| Referanslar | MSDN, Fortify Kingdom |
| Adımlar | Bu hizmet bir yetkilendirme denetimi kullanmaz. Bir istemci belirli bir WCF hizmetini çağırdığında, WCF, çağıranın sunucuda hizmet yöntemini yürütme iznine sahip olduğunu doğrulayan çeşitli yetkilendirme şemaları sağlar. WCF hizmetleri için yetkilendirme denetimleri etkinleştirilmemişse, kimliği doğrulanmış bir kullanıcı ayrıcalık yükseltme elde edebilir. |
Örnek
Aşağıdaki yapılandırma, WCF'ye hizmeti yürütürken istemcinin yetkilendirme düzeyini denetlememesini söyler:
<behaviors>
<serviceBehaviors>
<behavior>
...
<serviceAuthorization principalPermissionMode=""None"" />
</behavior>
</serviceBehaviors>
</behaviors>
Hizmet yöntemini çağıranın bunu yapmaya yetkili olduğunu doğrulamak için bir hizmet yetkilendirme şeması kullanın. WCF iki mod sağlar ve özel bir yetkilendirme şemasının tanımlanmasına izin verir. UseWindowsGroups modu Windows rollerini ve kullanıcılarını, UseAspNetRoles modu ise kimlik doğrulaması için SQL Server gibi ASP.NET bir rol sağlayıcısını kullanır.
Örnek
Aşağıdaki yapılandırma, WCF'ye Add hizmetini yürütmeden önce istemcinin Administrators grubunun bir parçası olduğundan emin olmasını söyler:
<behaviors>
<serviceBehaviors>
<behavior>
...
<serviceAuthorization principalPermissionMode=""UseWindowsGroups"" />
</behavior>
</serviceBehaviors>
</behaviors>
Hizmet daha sonra aşağıdaki gibi bildirilir:
[PrincipalPermission(SecurityAction.Demand,
Role = ""Builtin\\Administrators"")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
Web API'ASP.NET uygun yetkilendirme mekanizmasını uygulayın
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | Web API'si |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel, MVC5 |
| Öznitelikler | Yok, Kimlik Sağlayıcı - ADFS, Kimlik Sağlayıcı - Microsoft Entra Kimliği |
| Referanslar | Web API'ASP.NET Kimlik Doğrulaması ve Yetkilendirme |
| Adımlar | Uygulama kullanıcıları için rol bilgileri, uygulama Kimlik sağlayıcısı olarak bunlara güveniyorsa veya uygulamanın kendisi sağlayabiliyorsa, Microsoft Entra Kimliği veya ADFS taleplerinden türetilebilir. Bu durumların herhangi birinde, özel yetkilendirme uygulamasının kullanıcı rolü bilgilerini doğrulaması gerekir. Uygulama kullanıcıları için rol bilgileri, uygulama Kimlik sağlayıcısı olarak bunlara güveniyorsa veya uygulamanın kendisi sağlayabiliyorsa, Microsoft Entra Kimliği veya ADFS taleplerinden türetilebilir. Bu durumların herhangi birinde, özel yetkilendirme uygulamasının kullanıcı rolü bilgilerini doğrulaması gerekir. |
Örnek
[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
}
}
Korunması gereken tüm kontrolörler ve eylem yöntemleri yukarıdaki özellik ile donatılmalıdır.
[ApiAuthorize]
public class CustomController : ApiController
{
//Application code goes here
}
Farklı izin düzeyleri gerektiren çeşitli eylemleri destekliyorsa, cihazda yetkilendirme kontrolleri gerçekleştirin
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | IoT Cihazı |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Cihaz, arayanın istenen eylemi gerçekleştirmek için gerekli izinlere sahip olup olmadığını kontrol etmesi için arayanı yetkilendirmelidir. Örneğin, cihazın buluttan izlenebilen bir Akıllı Kapı Kilidi olduğunu ve ayrıca Kapıyı Uzaktan Kilitleme gibi işlevler sağladığını varsayalım. Akıllı Kapı Kilidi, yalnızca birisi fiziksel olarak bir Kartla kapıya yaklaştığında kilit açma işlevi sağlar. Bu durumda, uzaktan komuta ve kontrolün uygulanması, bulut ağ geçidinin kapının kilidini açmak için bir komut gönderme yetkisi olmadığından, kapının kilidini açmak için herhangi bir işlevsellik sağlamayacak şekilde yapılmalıdır. |
Farklı izin düzeyleri gerektiren çeşitli eylemleri destekliyorsa, Field Gateway'de yetkilendirme kontrolleri gerçekleştirin
| Başlık | Ayrıntılar |
|---|---|
| Bileşen | IoT Alan Geçidi |
| SDL Aşaması | İnşa et |
| Uygulanabilir Teknolojiler | Genel |
| Öznitelikler | Mevcut Değil |
| Referanslar | Mevcut Değil |
| Adımlar | Field Gateway, çağıranın istenen eylemi gerçekleştirmek için gerekli izinlere sahip olup olmadığını kontrol etmesi için arayanı yetkilendirmelidir. Örneğin, bir alan ağ geçidi v/s'ye bağlanan cihazları yapılandırmak için kullanılan bir yönetici kullanıcı arabirimi/API'si için farklı izinler olmalıdır. |