Erişim Denetimi Mekanizmaları
Windows Communication Foundation (WCF) ile erişimi çeşitli şekilde denetleyebilirsiniz. Bu konu, çeşitli mekanizmaları kısaca ele alır ve bunların ne zaman kullanılacağına ilişkin öneriler sağlar; kullanılacak doğru mekanizmayı seçmenize yardımcı olmak için tasarlanmıştır. Erişim teknolojileri karmaşıklık sırasına göre listelenir. En basiti PrincipalPermissionAttribute; en karmaşıkı Kimlik Modeli'dir.
Bu mekanizmalara ek olarak, WCF ile kimliğe bürünme ve temsilci seçme, Temsil ve Kimliğe Bürünme bölümünde açıklanmıştır.
PrincipalPermissionAttribute
PrincipalPermissionAttribute, bir hizmet yöntemine erişimi kısıtlamak için kullanılır. Özniteliği bir yönteme uygulandığında, windows grubu veya ASP.NET rolünde belirli bir çağıranın kimliğini veya üyeliğini talep etmek için kullanılabilir. İstemcinin kimliği X.509 sertifikası kullanılarak doğrulanırsa, konu adından ve sertifikanın parmak izinden oluşan bir birincil kimlik verilir.
PrincipalPermissionAttribute Hizmetin üzerinde çalıştığı bilgisayardaki kaynaklara erişimi denetlemek için ve hizmetin kullanıcıları her zaman hizmetin üzerinde çalıştığı Windows etki alanının bir parçası olacaksa kullanın. Belirtilen erişim düzeylerine (yok, salt okunur veya okuma ve yazma gibi) sahip Windows gruplarını kolayca oluşturabilirsiniz.
özniteliğini kullanma hakkında daha fazla bilgi için bkz . Nasıl yapılır: PrincipalPermissionAttribute Sınıfıyla Erişimi Kısıtlama. Kimlik hakkında daha fazla bilgi için bkz . Hizmet Kimliği ve Kimlik Doğrulaması.
ASP.NET Üyelik Sağlayıcısı
üyelik sağlayıcısı ASP.NET bir özelliğidir. Üyelik sağlayıcısı teknik olarak bir erişim denetimi mekanizması olmasa da, hizmetin uç noktasına erişebilecek olası kimlik kümesini sınırlayarak hizmete erişimi denetlemeye olanak tanır. Üyelik özelliği, bir Web sitesinin kullanıcılarının siteyle hesap oluşturmasını sağlayan kullanıcı adı/parola bileşimleriyle doldurulabilen bir veritabanı içerir. Üyelik sağlayıcısını kullanan bir hizmete erişmek için kullanıcının kullanıcı adı ve parolası ile oturum açması gerekir.
Not
Bir WCF hizmetinin yetkilendirme amacıyla kullanabilmesi için önce veritabanını ASP.NET özelliğini kullanarak doldurmanız gerekir.
Ayrıca, mevcut ASP.NET Web sitesinden bir üyelik veritabanınız varsa ve aynı kullanıcıların aynı kullanıcı adları ve parolalarla yetkilendirilmiş hizmetinizi kullanmasını sağlamak istiyorsanız üyelik özelliğini de kullanabilirsiniz.
WCF hizmetinde üyelik özelliğini kullanma hakkında daha fazla bilgi için bkz . Nasıl yapılır: ASP.NET Üyelik Sağlayıcısını Kullanma.
ASP.NET Rol Sağlayıcısı
ASP.NET bir diğer özelliği de rolleri kullanarak yetkilendirmeyi yönetebilme özelliğidir. ASP.NET rol sağlayıcısı, bir geliştiricinin kullanıcılar için roller oluşturmasını ve her kullanıcıyı bir rol veya rollere atamasını sağlar. Üyelik sağlayıcısında olduğu gibi roller ve atamalar bir veritabanında depolanır ve ASP.NET rol sağlayıcısının belirli bir uygulaması tarafından sağlanan araçlar kullanılarak doldurulabilir. Üyelik özelliğinde olduğu gibi WCF geliştiricileri de hizmet kullanıcılarını rollere göre yetkilendirmek için veritabanındaki bilgileri kullanabilir. Örneğin, rol sağlayıcısını yukarıda açıklanan erişim denetimi mekanizmasıyla PrincipalPermissionAttribute
birlikte kullanabilirler.
Ayrıca, mevcut bir ASP.NET rol sağlayıcısı veritabanınız varsa ve WCF hizmetinizde aynı kural ve kullanıcı atamalarını kullanmak istiyorsanız ASP.NET rol sağlayıcısını da kullanabilirsiniz.
Rol sağlayıcısı özelliğini kullanma hakkında daha fazla bilgi için bkz . Nasıl yapılır: hizmetle ASP.NET Rol Sağlayıcısını kullanma.
Yetkilendirme Yöneticisi
Başka bir özellik, istemcileri yetkilendirmek için Yetkilendirme Yöneticisi'ni (AzMan) ASP.NET rol sağlayıcısıyla birleştirir. ASP.NET bir Web hizmeti barındırdığında AzMan, hizmete yetkilendirmenin AzMan aracılığıyla yapılması için uygulamayla tümleştirilebilir. ASP.NET rol yöneticisi, uygulama rollerini yönetmenize, rollerden kullanıcı ekleyip kaldırmanıza ve rol üyeliğini denetlemenize olanak tanıyan bir API sağlar, ancak kullanıcının adlandırılmış bir görev veya işlem gerçekleştirme yetkisi olup olmadığını sorgulamanıza izin vermez. AzMan, tek tek işlemleri tanımlamanıza ve bunları görevler halinde birleştirmenize olanak tanır. AZMan ile rol denetimlerine ek olarak, bir kullanıcının görev gerçekleştirip gerçekleştiremeyeceğini de denetleyebilirsiniz. Rol ataması ve görev yetkilendirmesi uygulamanın dışında yapılandırılabilir veya uygulama içinde program aracılığıyla gerçekleştirilebilir. AzMan yönetimi Microsoft Yönetim Konsolu (MMC) ek bileşeni, yöneticilerin bir rolün çalışma zamanında gerçekleştirebileceği görevleri değiştirmesine ve her kullanıcının rol üyeliğini yönetmesine olanak tanır.
Mevcut bir AzMan yüklemesine zaten erişiminiz varsa ve hizmet kullanıcılarınızı AzMan/rol sağlayıcısı bileşiminin özelliklerini kullanarak yetkilendirmek istiyorsanız AzMan ve ASP.NET rol sağlayıcısını da kullanabilirsiniz.
AzMan ve ASP.NET rol sağlayıcısı hakkında daha fazla bilgi için bkz . How To: Use Authorization Manager (AzMan) with ASP.NET 2.0. AzMan'ı ve WCF hizmetleri için rol sağlayıcısını kullanma hakkında daha fazla bilgi için bkz . Nasıl yapılır: ASP.NET Yetkilendirme Yöneticisi Rol Sağlayıcısını Bir Hizmetle Kullanma.
Kimlik Modeli
Kimlik Modeli, istemcileri yetkilendirmek için talepleri ve ilkeleri yönetmenizi sağlayan bir DIZI API'dir. Kimlik Modeli ile, çağıranın hizmette kimliğini doğrulamak için kullandığı kimlik bilgilerindeki her talebi inceleyebilir, talepleri hizmet için ilke kümesiyle karşılaştırabilir ve karşılaştırmaya göre erişim verebilir veya reddedebilirsiniz.
Erişim vermeden önce hassas denetime ve belirli ölçütleri ayarlama yeteneğine ihtiyacınız varsa Kimlik Modeli'ni kullanın. Örneğin, kullanılırken PrincipalPermissionAttributeölçüt yalnızca kullanıcının kimliğinin doğrulanması ve belirli bir role ait olmasıdır. Buna karşılık, Kimlik Modeli'ni kullanarak kullanıcının 18 yaşından büyük olması gerektiğini ve belgeyi görüntülemesine izin verilmeden önce geçerli bir sürücü lisansına sahip olması gerektiğini belirten bir ilke oluşturabilirsiniz.
Kimlik Modeli talep tabanlı erişim denetiminden yararlanabileceğiniz örneklerden biri, verilen belirteç senaryosunda federasyon kimlik bilgilerini kullanmaktır. Federasyon ve verilen belirteçler hakkında daha fazla bilgi için bkz . Federasyon ve Verilen Belirteçler.
Kimlik Modeli hakkında daha fazla bilgi için bkz . Kimlik Modeli ile Talepleri ve Yetkilendirmeyi Yönetme.
Ayrıca bkz.
- PrincipalPermissionAttribute
- Nasıl yapılır: PrincipalPermissionAttribute Sınıfı ile Erişimi Kısıtlama
- Nasıl yapılır: ASP.NET Rol Sağlayıcısını Bir Hizmetle Kullanma
- Nasıl yapılır: ASP.NET Yetkilendirme Yöneticisi Rol Sağlayıcısını Bir Hizmetle Kullanma
- Kimlik Modeliyle Talep ve Yetkilendirmeyi Yönetme
- Temsilcilik ve Kimliğe Bürünme