0

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 FlowResource Owner Password Code Flow
Implicit FlowClient Credential Flow

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs : OAuth2.0 Authorization Framework, OAuth2.0 Authorization Framework nedir, OAuth2.0 Authorization Framework nasil calisir

Bu İçeriğe Tepkin Ne Oldu?
  • 3
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 2
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

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.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir