Web Servislerinde Single-Sign-On ile Yetkilendirme
 
 İçindekiler
 Yeni Bir İşletim Sistemi  Kurmadan Önce  İzlenmesi Gereken  Adımlar
 Basit Çözümler, Daha  Fazla Güvenlik
 Bir Ağ Güvenlik Aracı  Olarak SNORT
 NFC Nedir?
 Web Servislerinde  Single-Sign-On ile  Yetkilendirme
 İçerik Yönetim Sistemi  (İYS) Nedir?
 ODTÜ BBS  Kapsamındaki Veri  Sözlüğü Çalışmaları
 CISN Arşiv
 Geribildirim
 
     
 

İnternet'in ortaya çıkışından bu yana en önemli kullanım alanlarından biri bilgi edinme ve çevrimiçi işlemler olmuştur. İnternet'in sadece bilgi alınan değil aynı zamanda bilgi değiştirilen ve işlem yapılan yapılar içermesi, yapılan işlemelerin güvenliği ve bilgilere erişim konusunda yetkilendirme gereksinimi doğurmuş olup bu konuda en yaygın kullanılan yöntem ise şifre yetkilendirmesi olmuştur. Bu yazıda aynı şifrenin farklı sitelere defalarca girilmesini sorununu çözen Single-Sign-On (SSO) uygulamaların genel yapıları incelenecek ve ODTÜ'deki uygulamalarından bahsedilecektir. Yazımız yetkilendirme sunucuları ile ilgili temel seviyede bilgisi olan okuyucularımıza yöneliktir.

Şifre yetkilendirmesinin servis veren birimler ve sistem yöneticileri için temel iş yükü, kişilere gerekli şifrenin verilmesidir. Diğer tarafta kullanıcılar için ise, farklı sistemler için farklı şifreleri ezberlemek zor bir işlemdir. Bu durum bir şifre ile çok sayıda sisteme erişme düşüncesini doğurmuştur. Ortak şifre kullanımı için en basit yöntem, şifrelerin bir sunucuda tutulup diğer sistemlerin şifre sorgulamasını bu sunucudan yapmasıdır. Ancak, bu yapıda şifre güvenliği sorunu ortaya çıkmaktadır. Kullanıcı kodlarını tutan, yani şifrelerin sahibi olan otorite, kullanıcılara verdiği şifrelerin başka sistemlerden geçmesini olumlu karşılayamayacaktır. Bu şekilde şifre kullanımının bir diğer dezavantajı ise, kullanıcının aynı şifreyi bağlanacağı her sisteme tekrar tekrar yazmak zorunda olmasıdır. Kullanıcı aynı şifre ile yetkilenebildiği, farklı siteler bulunduğu durumda, bilgisayarında şifreyi bir kez girdiğinde aynı şifre ile giriş yapabileceği tüm sayfalara ulaşabilmek isteyecektir.

Ortak şifre kullanımının hem güvenlik hem de pratiklik anlamındaki sorunlarını çözmek için etkili bir uygulama Single-Sign-On (SSO) sistemleridir. SSO sisteminde temel olarak üç tip öğe bulunur. Bunlar yetkilendirme sunucusu, kullanıcıların bağlandıkları sitelerin sunucuları ve istemcilerdir. SSO'nun temel mantığı, yetkilenmek isteyen kullanıcıların şifrelerini yetkilendirme sunucusuna ait bir sayfaya girmeleri, daha sonra yetkilendirmeyi yapan sistem tarafından o oturuma özel bir oturum anahtarı oluşturulması ve bu anahtar ile istemcilerin kullanılacak sayfaya geri yönlendirilmesi şeklindendir. Bundan sonra asıl kullanılacak olan web sayfası, kendisine oturum bilgisi ile gelen istemcinin oturum anahtarını yetkilendirici sistem üzerinden kontrol edecek ve doğru ise istemciye yetki verecektir. Bu yapı ile hem asıl şifre sadece yetkilendirme sunucusundan geçecek; hem de sistem oturum çerezleri ile birlikte kullanıldığında, bir kez şifre ile yetkilenen kullanıcı, aynı SSO sistemine ait tüm servislere tekrar şifre girmeden bağlanabilecektir.

SSO yapısı kullanımında dikkat edilmesi gereken bazı unsurlar da vardır. Sistem normal çalıştığı durumda şifreler sadece yetkilendirme sunucusu tarafından görülebilir olmasına rağmen, SSO'ya dahil sistemlerden birinin kötüye kullanımı ile bu durum değişebilir. Normal şartlarda SSO kullanan sunuculardan birine gelen istemcinin SSO sunucusuna yönlendirilerek yetkilendirilmesi gerekirken, sistemlerden birinin kötü niyetli bir kişi tarafından ele geçirilmesi durumunda, kullanıcı yönlendirilmeden şifresinin istenmesi mümkündür. Bu gibi riskler, kullanıcıların bilinçlendirilerek şifre giriş anında sayfanın adının ve bağlantı güvenliğinin kontrol edilmesi gereğini doğurmaktadır. Diğer bir husus ise SSO yetkilendirme sunucusunun çalışmaması durumunda SSO'ya dahil sistemlere ulaşımda sorun yaşanacak olmasıdır. Eğer bir sayfa SSO üzerinden yetkilendirme kontrolü yapıyor ise, yetkilendirme sunucusunun çalışmaması, yetkilendirmeyi kullanan sayfanın kullanıcı tarafında hiç açılmamasına neden olabilecektir. Bu durumda ise kullanıcı tarafında ilgili sayfa çalışmıyor izlenimi oluşacaktır. Bu sorun, sayfanın yetkilendirmeyi zorunlu tutmayıp, sadece oturum kontrolü yapıp, oturum var ise farklı işlevler sunulan tasarımlarda bile oluşabilir. Bu nedenle, SSO sunucusunun çalışmadığı durumda, sayfanın sunduğu yetkilendirme gerektirmeyen servisler de kullanılamayabilir.

Yazının başında belirtilen senaryolara benzer şekilde Orta Doğu Teknik Üniversitesi de İnternet üzerinde onlarca servis sunmaktadır. Bu servislerin hepsi için yetkilendirme kontrolünün kullanıcı düzeyinde zorluk çıkardığı da bilinmektedir. Kullanıcılarımıza kolaylık getirmek amacı ile Bütünleşik Bilgi Sistemi (BBS) projesi altında bir adım olan SSO sistemi login.metu.edu.tr sunucusundan deneme amaçlı olarak servis vermeye başlanmıştır. Kullanıcımız bir servis için istekte bulunduğunda yetkilendirilmek için SSO sunucusuna yönlendirilecek ve yetkilendirme süreci login.metu.edu.tr üzerinden devam edecektir. Eğer kullanıcı başarılı bir şekilde yetkilendirildi ise, tekrar buraya yönlendiren servise geri dönülecek ve yetkilendirme verilen serviste de kullanılacaktır. Artık kullanıcımız bir kere yetkilendirildikten sonra, diğer servisleri de tekrar kullanıcı adı ve şifre girmeye gerek kalmadan SSO sunucusu üzerinden yetkilendirilecektir. SSO sisteminin alt yapısında ise CAS (Central Authentication Service) kullanılmaktadır. ODTÜ'de CAS'ın tercih edilmesinin çeşitli nedenleri vardır. Öncelikli olarak açık kaynak kod ile dağıtılması tercihte ön plana çıkmaktadır. Diğer bir neden ise, entegrasyonunun ve uygulamasının kolay olması ve geniş çeşitlilikteki platformu desteklemesidir. Bu nedenlerin yanı sıra iyi dokümante edilmiş olması ve sunucu tarafında JAVA teknolojisinin kullanılmış olması gibi artıları da mevcuttur.

Belirtilen faktörler, genel olarak düşünüldüğünde, SSO sistemleri İnternet kullanıcılarının İnternet sitelerindeki yetkilendirmelerini kolaylaştıran ve kullanıcılara verilen şifreler ile farklı sistemlere güvenli şekilde bağlanabilmelerini sağlayan sistemlerdir. Bunun yanında, özellikle güvenlik ve sistem sürekliliği tarafına oluşabilecek olumsuz senaryolar düşünülmeli, kullanıcılar bilgilendirilmeli ve sistemler uygun şekilde tasarlanmalıdır.

Onur Yurtsever - Uğur Dökmeci

 
     
  - BAŞA DÖN -