yeni ASP.NET Kimlik Çekirdeğinde hak talebi mekanizması ne anlama geliyor?
Rol ve Hak Talebine dayanan iki yaygın yetkilendirme yaklaşımı vardır.
Rol Tabanlı Güvenlik
Bir kullanıcı, kullanıcının erişim haklarını aldığı bir veya daha fazla role atanır. Ayrıca, bir role bir kullanıcı atayarak, kullanıcı bu rol için tanımlanan tüm erişim haklarını hemen alır.
Talebe Dayalı Güvenlik
Talebe dayalı bir kimlik, iddia kümesidir. Hak talebi, bir varlığın (bir kullanıcı veya başka bir uygulama) kendisi hakkında yaptığı bir ifadedir, sadece bir hak talepidir. Örneğin bir talep listesi kullanıcının adını, kullanıcının e-postasını, kullanıcının yaşını, kullanıcının bir işlem için yetkisini içerebilir. Rol tabanlı Güvenlik'te, kullanıcı kimlik bilgilerini doğrudan uygulamaya sunar. Talebe dayalı bir modelde kullanıcı, başvuruya ilişkin kimlik bilgilerini değil talepleri sunar. Bir değerin pratik değere sahip olması için, başvurunun güvendiği bir kuruluştan gelmesi gerekir.
Aşağıdaki adımlar, talep tabanlı bir güvenlik modelinde gerçekleşen diziyi göstermektedir:
- Kullanıcı bir işlem ister. Bağlı olan taraf (RP) uygulaması bir jeton ister.
- Kullanıcı, RP uygulamasının güvendiği veren yetkiliye kimlik bilgilerini sunar.
- Düzenleyen makam, kullanıcının kimlik bilgilerini doğruladıktan sonra taleplerle imzalı bir jeton yayınlar.
- Kullanıcı jetonu RP uygulamasına sunar. Başvuru, jeton imzasını doğrular, talepleri çıkarır ve taleplere dayanarak talebi kabul eder veya reddeder.
Ancak, veriler AspNetUserClaims'e eklendiğinde ve bu tablonun hangi durumlar için kullanıldığını anlayamıyorum ve bulamıyorum.
Rol Tabanlı Güvenliğin kullanılmadığı bir durumdaysanız ve Talebe Dayalı Güvenlik kullanmayı seçtiyseniz, AspNetUserClaims tablosunu kullanmanız gerekir. Talepleri ASP.NET Kimliğinde nasıl kullanacağınız hakkında daha fazla bilgi için aşağıdaki bağlantıya bakın.
http://kevin-junghans.blogspot.com/2013/12/using-claims-in-aspnet-identity.html
Güncelleme
Rol tabanlı güvenliği ne zaman ve hak talebine dayalı olarak kullanmam gerekir? Birkaç örnek yazabilir misiniz?
Rol Tabanlı veya Talebe Dayalı Güvenliği kullanacağınız veya kullanmayacağınız çok açık bir durum yoktur, B yerine A kullanacağınız bir durum gibi değil.
Ancak, hak talebine dayalı erişim kontrolü, yetkilendirme kurallarının temel iş mantığından daha iyi ayrılmasını sağlar. Yetkilendirme kuralları değiştiğinde, temel iş mantığı etkilenmez. Talebe Dayalı yaklaşımı kullanmayı tercih edebileceğiniz durumlar olacaktır.
Bazen iddialara ihtiyaç duyulmaz. Bu önemli bir feragatname. Bir dizi dahili uygulamaya sahip şirketler, taleplerin sağladığı birçok avantajı elde etmek için Tümleşik Windows Kimlik Doğrulaması'nı kullanabilir. Active Directory, kullanıcı kimliklerini depolamak için harika bir iş çıkarır ve Kerberos Windows'un bir parçası olduğundan, uygulamalarınızın çok fazla kimlik doğrulama mantığı içermesi gerekmez. Oluşturduğunuz her uygulama Tümleşik Windows Kimlik Doğrulaması'nı kullanabildiği sürece, kimlik ütopyasına zaten ulaşmış olabilirsiniz. Ancak, Windows kimlik doğrulamasından başka bir şeye ihtiyacınız olabilmesinin birçok nedeni vardır. Windows etki alanınızda hesabı olmayan kişiler tarafından kullanılan web'e dönük uygulamalarınız olabilir. Başka bir neden de şirketinizin başka bir şirketle birleşmiş olması olabilir. güven ilişkisi olmayan (ve hiçbir zaman olmayacak) iki Windows ormanında kimlik doğrulamada sorun yaşıyorsanız. Belki de .NET Framework olmayan uygulamaları olan başka bir şirketle kimlikleri paylaşmak ya da farklı platformlarda çalışan uygulamalar (örneğin Macintosh) arasında kimlikleri paylaşmak zorundasınız. Bunlar, iddia tabanlı kimliğin sizin için doğru seçim olabileceği birkaç durumdur.
Daha fazla bilgi için lütfen http://msdn.microsoft.com/en-us/library/ff359101.aspx adresini ziyaret edin.