Bir kullanıcı Sharepoint sitesine erişmek istediğinde, öncelikle kimlik doğrulama

(authentication)  ve sonrasında yetki kontrolü (authorization) süreçleri çalışır. Sharepoint 2010 çeşitli kimlik doğrulama mekanizmalarını desteklemektedir.

Bunlar ;

1.Windows

2.Forms Based Authentication

3. SAML token-based authentication

şeklindedir.

Kurumsal sharepoint projelerinde genellikle kimlik doğrulama mekanizması olarak Windows authentication kullanılmaktadır.Diğer taraftan, Sharepoint sitesinin internete açık olması gibi senaryolarda Forms  authentication’a ihtiyaç duyulabilmektedir.

Bu yazımda ; Kullanıcı veritabanı Active Directory olmak üzere,  Sharepoint 2010 üzerinde Forms Based Authentication nasıl aktive edilir  bahsetmeye çalışacağım.

Sharepoint 2010 Forms Based Authentication’ı ayarlarken yapmamız gereken temel işlemler aşağıdaki gibidir.

1.Yeni bir web application oluşturmak

2.Central Admin sitemizin ,yarattığımız web uygulamasının,Security Token Web Service’inin web.config’lerini Forms Based Authentication’a uygun olarak değiştirmek.

3.Sharepoint web uygulamamıza user policy eklemek

Şimdi bu ana maddeler ışığında konumuzu adım adım detaylandıralım.

Yeni bir web uygulaması oluşturulur

Sharepoint üzerinde Forms Based Authentication ile bağlanacağımız sitemiz için bir web application yaratıyoruz.

Yeni bir web application yaratmak için.

Central Administration — > Application Management — > Manage Web Applications — > New

Tıkladıktan sonra “Authentication” olarak Claims Based Authentication’ı seçiyoruz.

“Enable Forms Based Authentication (FBA)” seçeneğini işaretliyoruz.

ASP.NET Membership provider name olarak “adusers”  yazıyoruz.

Aynı ekranda “Claims Authentication Types” olarak

  • Enable Windows Authentication’ı da ek olarak seçebiliriz.

Enable Windows Authentication seçili olması sitenin crawl edilebilmesi için gereklidir. Enable Windows Authentication’ın Forms Based Authentication ile birlikte kullanılması, siteye giriş aşamasında iki farklı login olma seçeneğini karşımıza çıkaracaktır.
Windows Authentication
Forms Based Authentication
Bu iki seçenekten birini seçerek login olabiliriz.

Web application oluşturma sırasında karşımıza çıkan diğer ayarları ihtiyacımız doğrultusunda istediğimiz gibi düzenleyip Ok diyoruz.

Yeni bir site kolleksiyonu oluşturulur

Central Administration — > Application Management — > Create site collections

diyerek herhangi bir template’i seçerek yeni bir site kolleksiyonu oluşturuyoruz.

 Central Administration web.config ayarları değiştirilir

Sharepoint 2010 Central Administration sitesinin web.config dosyasına aşağıdaki değerleri ekliyoruz.

<connectionStrings>
		<add name="adconn" connectionString="LDAP://contoso.com/DC=contoso,DC=com" />
	</connectionStrings>

connectionString=”LDAP://contoso.com/DC=contoso,DC=com” ile belirttiğimiz ifadeyi şu şekilde tespit edebilriz.

Administrative Tools — > Active Directory Users and Computers üzerinde domain controller’ın adını görüyoruz.

Daha sonra Users klasörü altında yeralan userlardan birini seçtikten sonra sağ tıklıyoruz All Tasks– > Resultant Set Of Policy (Planning)  seçiyoruz. Browse butonunu tıkladıktan sonra domain controller’ı listeden seçip Ok’e basıyoruz.Aşağıdakine benzer bir ekran gelecektir.

Container alanında yazan değer connectionstring’in geri kalan kısmını olusturmaktadır.

Web.config üzerinde ekleyeceğimiz ikinci değer ise aşağıdaki gibidir.


<membership defaultProvider="adusers">
			<providers>
				<add name="adusers"
				type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
				connectionStringName="adconn"
				enableSearchMethods="true"
				attributeMapUsername="sAMAccountName" />
			</providers>
		</membership>
Not: Forms Based Authentication’da kullanıcı bilgilerinin yer aldığı veritabanımızın tipine göre çeşitli provider sınıfları kullanırız.Eğer kullanıcı bilgilerinin tutulduğu veritabanımız tipi
SqlServer ise  provider olarak SqlMembershipProvider
Ldap veritabanı ise LdapMembershipProvider
Active Directory ise (yukarıda olduğu gibi) ActiveDirectoryMembershipProvider‘ı kullanırız.
Burada bilmemiz gereken Active Directory aslında LDAP protokolü ile çalışan bir ürün olduğu için Forms Based Authentication’da Active Directory kullanıyorken provider olarak LdapMembershipProvider ‘ı da seçebileceğimizdir. Active Directory için bu iki farklı provider seçeneğinin avantajlarını ve dezavantajlarını bu linkten öğrenebilirsiniz.

Son olarak :
<connectionStrings></connectionStrings> ifadesini web.config üzerinde <system.web></system.web> taglerinin dışına yazıyoruz.

<membership> ifadesini web.config üzerinde <system.web></system.web> tagleri içerisine yazıyoruz.

Web application’a ait  web.config dosyası değiştirilir

<system.web> taginin dışına

<connectionStrings>
		<add name="adconn" connectionString="LDAP://contoso.com/DC=contoso,DC=com" />
	</connectionStrings>

ekliyoruz.

Daha sonra yine provider’ımızı ekliyoruz.Provider ifadesini web.config’e  eklerken bu aşamada dikkat etmemiz gereken web.config üzerinde mevcut bir provider tanımlaması olup olmadığıdır.Eğer var ise aşağıdaki gibi mevcut provider’ın içine ekliyoruz.

Web.config dosyamızı kaydediyoruz.

Security Token Service Application web.config ayarlarının değiştirilmesi

Son olarak Security Token Service Application’a ait config  dosyasını güncelliyoruz.STS web.config  dosyasına

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebServices\SecurityToken altında erişebiliriz. Aynı zamanda IIS üzerinde

Sites — > SharePoint Web Services — > SecurityTokenServiceApplication ‘ a sağ tıklayıp Explore diyerekte erişebiliriz.

Web.config üzerinde ekleyeceğimiz ifadelerin <system.web></system.web> tagleri arasında olması gerekmektedir.Config dosyası  üzerinde <system.web></system.web>  yoksa  </configuration> taginden hemen önce ekleyin.

Yukarıda daha önce de eklediğimiz <connectionstring> ifadesini <system.web> taginden hemen önce ekliyoruz.

<system.web></system.web> taginin içine provider değerimizi ekliyoruz.

Web.config’in son hali

şeklindedir.

User Policy Ekleme

Son olarak FBA olarak ayarladığımız web uygulamamıza User Policy ekliyoruz.Bu işlem Central Admin üzerinden

Central Administration — > Application Management — > Manage Web Applications  üzerinden web application’ı seçiyoruz ve Ribbon üzerinden User Policy’i seçiyoruz.

— > Add User Link,

–> Zones kısmında Default zone ‘u seçiyoruz.

–> Choose Users kısmında Browse diyoruz.

–> Kullanıcı login name ‘ı yazıyoruz ve aratıyoruz.

Eğer herşey yolunda gittiyse arattığımız kullanıcıya istinaden enaz iki sonuç dönecektir.Birincisi Active Directory kısmında diğeri ise Forms Auth kısmında

Son olarak Forms Auth kısmındaki user’ı seçiyoruz. Full Control yetki vererek ekrandan çıkıyoruz.

Tüm bu işlemlerden sonra daha önce ilgili web application’ında oluşturduğumuz site collection’a (site kolleksiyonunu bu aşamada da oluşturabiliriz,biz daha önce oluşturmuştuk) erişmek istediğimizde karşımıza Windows ya da Forms Based Authentication seçeneklerinden biri ile login olabilmemizi sağlayacak ekran karşımıza gelecektir.

Forms Based Authentication’ı seçip devam edersek username ve password girebileceğimiz giriş ekranı karşımıza gelecektir.Buraya “user policy” de Full Control olarak tanımladığımız kullanıcı adı ve parolayı girerek siteye login oluyoruz.

Bu yazımda Sharepoint 2010 da ihtiyacımız olabilecek Forms Based Authentication konusuna değinmeye çalıştım.

Sorularınız için bana serkan_akkaya@yahoo.com’dan erişebilirsiniz.