Menu

1 Eylül 2009 Salı

JAAS (Java Authentication and Authorization Service)

JAAS java uygulamalari icin kimlik dogrulama ve yetkilendirme islemlerini portatif bir sekilde yapilmasini saglayan bir API`dir. JAAS`i kullanarak kendimiz sisteme giris yapmayi ve uyetkilendirmeyi saglayabiliriz. JAAS`i her hangi bir guvenlik sisteminde kullanabiliriz. Ornegin, bir uygulama sunucusu kimlik dogrulamayi bir dosyadan okuyarak yapiyor olabilir. yada bir veritabanindan sorgulatarak yada bir LDAP sunucusuna baglanarak yapiyor olabilir.

JAAS ile bu ortamlara ayak uydurmak hic sorun degil. Cunku JAAS interfacelerle olusur ve siz interfaceleri implemente edersiniz. JAAS ejb guvenliginde siklikla kullanilir. Sun, JAAS`i EJB guvenliginde standart olarak kullanmaktadir.

Genelde JAAS modullerinin kullanimi ile ilgili iki tip senaryo vardir.

-Bir desktop uygulamamiz var ve bu uygulamamiz uzak bir uygulama sunucusuna baglanip sisteme giris yapacaktir. Sisteme giris saglandikdan sonrada sistemde hangi modullere erisip hangi modullere erisemeyecegi belirlenecektir. Bunun icin desktop uygulamamiz JAAS ile kullanicinin giris bilgilerini uygulama sunucusuna iletir. Uygulama sunucusuda bu bilgileri kullanarak sisteme giris gerceklestirip kullanicin rollerini olusturur, Bundan sonraki EJB metodlarinin cagrilmasinda kullanicinin rollerine bakilir.

- Bir web tarayici araciligi ile sisteme giris yapabilirsiniz. Burada kullanicinin giris bilgileri JSP/Servlet `e aktarilir. Jsp/Servlet`de bu bilgileri kullanarak sisteme girisi gerceklestirir. Tarayici giris bilgilerini asagidaki yontemleri kullanarak aktarir.

-Basic authentication

-Form-Based authentication

-Digest authentication

-Certificate authentuication

Dekstop uygulamalari gibi web uygulamasindada sisteme giris gerceklestiginde, istemci EJB metodlarini kullanici yetkileri izin veridigi olcude cagirir.

JAAS`in calisma mantigina bakarsak asagidaki maddeler cikabilir

1- Istemci yeni bir LoginContext nesnesi olusturur. Bu class JAAS tarafindan sunulmustur ve kimlik dogrulama surecinden sorumludur.

2-LoginContext nesnesi bir Configration nesnesi alir, bu nesnedeki kimlik dogrulama isleminin hangi LoginModule ile yapilacagi bildirilir. Ornegin bir sitem kullanici adi ve sifre isterken baska bir sistem hem kulanici adi-sifre hemde certifica bazli dogrulama isteyebilir.

3-LoginContext Configration nesnesine kimlik dogrulama mekanizmalarin neler oldugunu sorar.

4-Configration nesnesi kimlik dogrulamalarindan olusan mekanizmalardan olusan bir liste dondurur. Bu mekanizmalarin her birine LoginModule denmektedir.LoginModule JAAS`in sundugu bir interfacedir. LoginModule kimlik dogrulama isleminin yapildigi birimlerdir.

5-LoginContext LoginModule siniflarindan birer nesne olusturur.

6-LoginContext olusturulan LoginModule nesnelerini iliskilendirir.

7-Istemci kodu LoginContext nesnesi uzerinden login() metodunu cagirir.

8-LoginContext login islemlerini loginModule nesnelerine devreder. Cunku kimlik dogrulama islemlerinin nasil yapilacagini bu moduller bilmektedir.

9-Sizin tarafinizdan yazilmis LoginModule nesneleri kimlik dogrulama islemini gerceklestirir.

10- Islem sonucunu olusturan bilgiler Subject class`indan olusturulmus bir nesnenin icinde saklanir. Bu nesneyi guvenli islemler gerceklestirmek icin kullanirsaniz.

11- Bundan sonra istemci kodu EJB metodlarini cagirir ve sistem giris bilgisi bu metod cagiriminda otomatik olarak iletilir. Boylece uygulama sunucusu ile bu bilgileri kullanarak kimlik dogrulama ve yetkilendirme islemlerini yapar.

Asagida yukaridaki yapinin resim olarak cizilmis halidir.

2 yorum: