20 Temmuz 2010 Salı

Gelin İtiraf Edelim: Hepimiz birer oyuncuyuz

itiraf et 1.bölüm from zeitin on Vimeo.

7 Temmuz 2010 Çarşamba

OAuth - Yeni nesil yetkilendirme

Merhabalar,

Bugün sizlere Twitter ve FriendFeed API'lerini kullanırken uğraştığım OAuth'tan bahsedeceğim.

OAuth, bir sistemdeki bir üyenin kendi hesabını kullandırabilmesi için geliştirilmiş bir yetkilendirme sistemidir. Eskiden bir uygulamaya sizin hesabınıza erişebilmesi için kullanıcı adınızı ve şifrenizi vermek zorundaydınız. Bu büyük bir güvenlik problemiydi. Pek çok kişi internette farklı mecralarda aynı kullanıcı adını ve şifresini kullandığı için kişnin tüm hesapları için bir tehdit idi. Bu bilgiler ile uygulama kendisine izin verilenin haricinde işlemler de yapabiliyordu. OAuth bu problemlerin önüne geçebilmek için geliştirildi. Uygulamalara doğrudan kullanıcı adı ve şifre yerine, sistem tarafından üretilmiş bir anahtar ve kilit kombinasyonuyla erişilmesini sağlıyor. Bu sayede uygulama sadece izin verilen işi yapabilirken kullanıcının diğer bilgileri güvende kalıyor. Geliştiricileri OAuth'u, park görevlisine verilen ve arabayı en çok 1 km öteye götürebilen özel anahtar olarak tanımlamışlar.

Bir uygulamanın OAuth anahtarını elde etmesi n adımdan oluşuyor: Twitter'ı örnek alırsak:
1. Öncelikle uygulama Twitter'dan request_token talebinde bulunuyor. Bunu isteyebilmek için uygulamanın twitter'a kayıtlı olması gerekiyor. request_token twitter tarafından uygulamaya verilen kısa süreli bir geçerliliği olan bir anahtar ve kilit.
2. Uygulama bu request_token ile bir yetkilendirme bağlantısı oluşturup kullanıcıya veriyor. Kullanıcı bu linke tıkladığında twitter ona uygulamaya onay verip vermeyeyeceğini soruyor onay gelirse bu onay izni twitter veritabanına kaydediliyor.
3. Son adımda uygulama twitter'dan kendi kayıt token'ını ve request_token'ı kullanarak access_token talep eder. Bu access_token uygulamanın kullanıcının yerine işlem yapabilmesini sağlayan anahtar ve kilidi içerir.

Kullanıcılar istedikleri zaman verdikleri onayı geri alabilirler. Bu takdirde kullanılan access_token geçersiz hale gelir.

Yakın bir zamanda Twitter REST API'si ile FriendFeed REST API'sinin kullanımını basitçe anlatacağım. Şimdilik hoşçakalın =)