İlginizi Çekebilir
  1. Ana Sayfa
  2. Üretici Teknolojileri
  3. OAuth2.0 Authorization Framework

OAuth2.0 Authorization Framework

. OAuth 2.0 konusunu anlatmaya çalıştığımız yazımıza hoş geldiniz J, bu yazı dizisinde OAuth 2.0 yetkilendirme Framework’unu ele almaya çalışacağız, OAuth 2.0 tek yazı ile ele alınamayacak kadar geniş bir konu olduğu için bu yazımızda

1. OAuth 2.0 Nedir, Ne işe yarar

2. Vallet Parking Analogy

3. Oauth 2.0 Flow Types

Konularını aciklayacagiz, atladığım eksik kalmış kısımlar olursa yorum kısmına eklemenizi rica ediyorum girizgâhı uzatmadan başlayalım.

OAuth 2.0, korumak istediğiniz kaynaklara güvenli, basit ve standart bir yöntem ile erişim sağlamaya yarayan bir yol, yordam ve yöntemler kümesidir. Kaynaklara erişim farklı tipte istemciler (Web, Mobil yada Desktop) üzerinden yapılabilir.

OAuth 2.0 yetkilendirmeyi (Authorization -> Kaynaklara erişimin kontrolünün sağlanması) sağlayan bir endüstri standardıdır.

OAuth 2.0 ile erişim kontrolü senaryolarında 4 farklı aktör tanımlanır:

1.Kaynak Sunucusu (Resource Server)

2.Yetkilendirme Sunucusu (Authorization Server)

3.İstemci (Client, Trusted/Not-trusted)

4. Kaynak Sahibi (Resource Owner, User)


Resim-1 OAuth 2.0 Aktörleri

OAuth 2.0 jargonu bu 4 aktör üzerine inşa edilmiş, ilgili yetkilendirme senaryoları bu 4 aktör üzerinden geliştirilmiştir. Bu aktörleri ve OAuth 2.0 senaryolarında hangi roller oynadıklarını açıklamaya çalışalım.

Kaynak Sunucusu (Resource Server)

Kaynak Sunucusu, kaynak sahibine ait erişimini sınırlandırmak istediğimiz, kontrollü erişim vermek istediğimiz kaynakları (Bilgi, Belge, Bitcoin, Resim, Müzik etc ..) üzerinde tutan birimdir.

Yetkilendirme Sunucusu (Authorization Server)

Kaynak sahibinin yetkilendirme işlemini gerçekleştiren, kaynak sahibi adına İstemciye (Client) kaynak sunucusu üzerinde kaynaklara kontrollü erişim verilmesini sağlayan birimdir. Burada kontrollü erişimden kasıt, kullanıcı adına yetkilendirilen birimin hangi kaynaklara hangi haklar ile erişim yapacağının belirtilmesi ve sadece verilen haklar ile kaynak sunucusu üzerinde işlem yapmasının sağlanmasıdır. Bir nevi noterden vekâletname almak gibidir.

İstemci (Client)

Kaynak sahibinden yetki alarak kaynak sahibinin sahip olduğu kaynaklara erişim yapan yazılım ya da donanım birimidir. Client güvenilir ya da bir Third Party olabilir. Biraz daha netleştirirsek

Facebook’un cep telefonunuza kurduğunuz uygulaması (Client) güvenilir bir OAuth istemcisidir.

Facebook tarafından yazılmamış ancak Facebook bilgilerinize erişim sağlayan ve bu bilgileri kullanan uygulamalar ise Third Party, Non-trusted uygulamalardır.

Kaynak Sahibi (Resource Owner)

Yetkilendirmeyi sağlayan kişidir, genellikle bir insandır J, kullanıcının kendisidir. İstemci (Client) dediğimiz yazılıma su bilgilerime, sadece okuma hakki ile erişebilirsin diye yetki veren bu yetkiyi verirken Authorization Server’a kendi kullanıcı adi ve şifresi ile giriş yapan kişidir.

OAuth 2.0 farklı yetkilendirme senaryolarını da kapsayacak şekilde geliştirildiği için temelde 4 farklı akis senaryosu üzerinden çalışır. OAuth 2.0 kapsamının bu kadar geniş tutulması sebebi ile protokol değil Framework olarak tanımlanmıştır.

Vallet Parking Anology

Evet buraya kadar her şey çok güzel J birde OAuth’un pratik hayattan bir örnek ile neyi çözmeye çalıştığının üzerinden gecelim, bu arada örnek benim değil hali hazırda literatürde var arattığınız zaman direk orijinal halini bulabilirsiniz ben dilimin donduğu klavyemin yazdığı kadarını yazıyorum.

Aracınızı aldınız, esiniz çocuklarınız güzel bir aksam yemeği yiyeceksiniz, maaş da yeni yatmış hesap artıda. Oldukça lüks bir et restoranına gidelim dediniz, tabi ki İstanbul’dasınız park sorun, ha bu arada aracınız da yeni satın aldığınız Skoda Kodiaq metalik renkli full donanımlı 4×4 2.0 dizel (10 yıl sonra pert kayıtlı bir tane planlıyorum ölmezsem). Neyse ki restoranın vale hizmeti var, araçtan iniyorsunuz vale yanınıza koşarak geliyor anahtarı veriyorsunuz. İçeri geçip yemeği yiyorsunuz donuyorsunuz ve araba yok! Anahtarı verdiğiniz, vale olduğunu söyleyen arkadaşı tanıyan kimsede yok. Evet, hikâye biraz uzun oldu biraz da reklam oldu. OAuth 2.0 bu noktada size sunu sağlıyor, malumunuz hikayemizde vale olduğunu söyleyen arkadaşa aracınızın anahtarını verdiniz ki bu anahtar bizim “Master Password” dediğimiz her şeye erişimi olan bir anahtar, bazı lüks araçların “vale anahtarı” denilen ve araca sinirli erişim sağlayan bir anahtarı daha oluyor, bu anahtar aracın hizmetlerine kısıtlı bir şekilde erişim sağlıyor (mesela bagaj kapağı açılamıyor, bir km limiti var vs vs). OAuth 2.0 Client uygulamalarına vale anahtarı vererek sadece sizin izin verdiğiniz kadarı ile sahip olduğunuz kaynaklara erişime izin veriyor.

Yazımızı OAuth 2.0 tarafından tanımlanan akışları tanımlayarak noktalayalım:

Kullanıcı Etkileşimi İçeren Akis Senaryoları Kullanıcı Etkileşimi İçermeyen Akis Senaryoları
Authorization Code Flow Resource Owner Password Code Flow
Implicit Flow Client Credential Flow

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs : OAuth2.0 Authorization Framework, ,

Yorum Yap

Yazar Hakkında

Rıdvan Özaydın, lisans eğitimini Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği bölümünde, yüksek lisans eğitimini ise İstanbul Teknik Üniversitesi Bilgisayar Bilimleri bölümünde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı C eğitimi ile başlamış, sektörün önde gelen firmalarında Java teknolojileri üzerine çalışmış, şu anda da Thales’de yazılım mühendisi olarak görev almaktadır.

Yorum Yap