OAuth 2.0, yeni bir şifre oluşturmadan uygulamalara ve sitelere giriş yapmanızı sağlayan bir standarttır. Bu sayede "Google ile Giriş Yap", "Facebook ile Giriş Yap" veya "GitHub ile Giriş Yap" seçeneklerine tıklayarak birkaç saniyede erişim elde edebilirsiniz. Şifreniz hiçbir zaman üçüncü bir servise iletilmez; bunun yerine güvenli bir token mekanizması kullanılır. Bu makalede, OAuth 2.0'ın nasıl çalıştığını, perde arkasında neler olduğunu ve neden klasik giriş yöntemlerinden daha güvenli olduğunu anlatıyoruz.
OAuth 2.0 Basitçe Nedir?
OAuth 2.0, bir servisin başka bir servisteki verilere şifrenizi vermeden sınırlı erişim almasını sağlayan bir yöntemdir.
Bir Örnekle Açıklayalım:
- Bir siteye girip "Google ile Giriş Yap" seçeneğine tıklarsınız.
- Sitenin sizin Google şifrenizi bilmesine ya da almasına gerek yoktur. Bunun yerine Google size şu soruyu sorar:
"Bu siteye e-posta adresinize ve adınıza erişim izni vermek istiyor musunuz?"
Onay verirseniz, Google siteye sadece izin verdiğiniz verilere erişen özel bir anahtar - token - verir.
Neden OAuth Gereklidir?
Eskiden her site için:
- Yeni bir hesap oluşturmak,
- Şifre belirlemek,
- Ve bunu (çoğunlukla güvensiz şekilde) saklamak gerekiyordu.
OAuth, bu zorlukları çözerek:
- Giriş sürecini basitleştirir (kayıt yerine tek tık),
- Şifre sızıntısı riskini azaltır,
- Verilere erişimi kontrol edilebilir kılar.
Yetkilendirme ve Kimlik Doğrulama Arasındaki Fark
Bu iki kavram sıkça karıştırılır:
- Kimlik doğrulama: Siz kimsiniz? (Hesaba giriş)
- Yetkilendirme: Hangi verilere erişebilirsiniz? (Verilere erişim izni)
OAuth 2.0 temelde yetkilendirme içindir, giriş işlemi için değil. Ancak pratikte Google ile giriş gibi çözümlerde diğer teknolojilerle birlikte kullanılır.
OAuth Nerelerde Kullanılır?
- Google, Facebook, Apple ile girişte
- Sosyal medya üzerinden uygulamalara yetki vermede
- Servis bağlantılarında (ör. Telegram botları, harici uygulamalar)
- Servisler arası API entegrasyonlarında
Google ile Girişte Şifre Paylaşılır mı?
Birçok kişi "Google ile Giriş Yap" tıklanınca sitenin şifresini de aldığına inanır. Bu yanlış bir inanıştır. Şifreniz hiçbir zaman üçüncü taraf servise iletilmez; yalnızca Google'da kalır.
Gerçekte Ne Olur?
- Sitede giriş butonuna tıklarsınız, Google'ın giriş sayfasına yönlendirilirsiniz.
- Şifrenizi sadece Google'da girersiniz.
- Google, gerekli izinleri sorar.
- Onaydan sonra siteye özel bir token döner.
Site şifreyi hiçbir şekilde görmez; sadece izin alıp almadığınızın sonucuna ulaşır.
OAuth 2.0 Neden Daha Güvenli?
- Şifre sadece tek yerde (Google'da) saklanır.
- Üçüncü taraf siteler sınırlı erişim alır.
- Verilen izinler istenirse her an iptal edilebilir.
Bir site hacklense bile, saldırganlar şifrenizi değil, hızla iptal edilebilen token'ı ele geçirebilir.
Site Hangi Bilgilere Erişebilir?
- Kullanıcı adı
- E-posta adresi
- Profil fotoğrafı
- Diğer izin verdiğiniz veriler
Her zaman izinleri onaylamadan önce detaylı olarak görebilirsiniz.
Şifre Yerine Token Kullanımı
- Access token - verilere erişim anahtarı
- (Bazen) refresh token - erişimi yenilemek için
Yani "Şifrem burada" yerine, "Sınırlı haklara sahip geçici bir izin veriyorum" mantığı vardır.
Ne Zaman Dikkatli Olmalısınız?
- Sahte giriş pencereleri (phishing)
- Gereğinden fazla izin isteyen şüpheli uygulamalar
- Bilinmeyen siteler üzerinden giriş
Giriş sayfası size tuhaf geliyorsa ya da adres google.com değilse, bilgilerinizi kesinlikle girmeyin.
OAuth 2.0 Nasıl Çalışır? Adım Adım
Google ile Giriş butonuna basıldığında perde arkasında neler oluyor?
- Kullanıcı - siz,
- İstemci - giriş yapmaya çalıştığınız site veya uygulama,
- Yetkilendirme sunucusu - Google,
- Kaynak sunucusu - Google API (verilerinizin olduğu yer)
1. Adım - Google'a Yönlendirme
"Google ile Giriş Yap" tıklanır, site sizi Google'ın giriş sayfasına yönlendirir. Burada şu bilgiler iletilir:
- Kim erişim istiyor?
- Hangi verilere ihtiyaç var?
- Giriş sonrası kullanıcı nereye dönecek?
2. Adım - Erişim Onayı
Google hesabınızı ve hangi verilere erişileceğini gösterir. İzin verip vermemek tamamen size bağlıdır. Onay olmadan erişim sağlanamaz.
3. Adım - Authorization Code Almak
Onay verirseniz, Google doğrudan erişim vermez; siteye geçici bir authorization code gönderir. Bu kod tek başına işe yaramaz, bir ara aşamadır.
4. Adım - Access Token ile Değişim
Sitenin sunucusu bu kodu Google'a iletir ve karşılığında:
- access token
- ve bazen refresh token
alır. Artık sitenin veriye erişmek için resmi bir anahtarı vardır.
5. Adım - Verilere Erişim
Site, access token ile yalnızca onayladığınız verilere erişebilir (ör. e-posta, isim, avatar).
Tüm Yapının Temel Mantığı
- Kullanıcı Google'a güvenir
- Google, kullanıcının izniyle uygulamaya güvenir
- Uygulama sadece kısıtlı erişim alır, tam kontrol değil
Bu sistem hem pratik hem güvenli olmasını sağlar.
Access Token ve Refresh Token Nedir?
OAuth 2.0 ile başarılı girişte site şifreyi almaz, sadece token'larla çalışır. Bu sistemin en önemli noktasıdır.
Access Token - Temel Erişim Anahtarı
Access token, uygulamanın kullanıcının verilerine erişmesini sağlayan geçici bir anahtardır.
- E-posta, isim, API'lere (Google Drive, Gmail, vb.) erişim sağlar
- Süreli geçerliliği vardır (ör. 1 saat)
- Sadece izin verilen alanlara erişim sunar
- İstenirse iptal edilebilir
Yani tam hesap erişimi yerine geçici bir giriş kartı gibidir.
Refresh Token - Erişimi Uzatmak
Refresh token, kullanıcı tekrar giriş yapmadan yeni access token almak için kullanılır.
- Access token süresi biter,
- Uygulama refresh token'ı Google'a iletir,
- Yeni bir access token alır.
Kullanıcının tekrar bir şey yapmasına gerek yoktur; bu süreç otomatik işler.
Neden İki Token Kullanılır?
- Kısa ömürlü access token ile risk azalır
- Refresh token genellikle sunucuda güvenli şekilde saklanır
- Kullanıcı sık sık şifre girmek zorunda kalmaz
Bir saldırgan access token'ı ele geçirse bile, token kısa sürede geçersiz olur.
Token'lar Nerede Saklanır?
- Access token: Geçici olarak tarayıcı veya uygulama belleğinde
- Refresh token: Sunucuda korumalı şekilde
Böylelikle kritik verilerin sızma riski düşer.
Erişim Nasıl İptal Edilir?
Evet, bu OAuth'ın önemli bir avantajıdır. Google hesabı ayarlarından:
- Bağlı uygulamaları görebilir,
- Erişimi kaldırabilirsiniz.
Bu durumda tüm token'lar geçersiz olur.
Özetle Bilmeniz Gerekenler
- OAuth şifreyi paylaşmaz; onun yerine:
- Geçici erişim (access token)
- Erişim yenileme mekanizması (refresh token)
Bu nedenle Google ile giriş, doğru uygulandığında oldukça güvenlidir.
OAuth Flow Türleri
OAuth 2.0, tek bir senaryo değil, farklı uygulama türleri için çeşitli "flow"lardan (akış) oluşur.
Authorization Code Flow - En Güvenli ve Yaygın Akış
Google ile girişte en çok kullanılan akıştır.
- Kullanıcı giriş yapar,
- Uygulama authorization code alır,
- Sunucu bu kodu access token'a çevirir.
Avantajları:
- Token'lar doğrudan tarayıcıya iletilmez
- Sunucu tarafı kontrol ve ekstra güvenlik (ör. PKCE) mümkündür
Kullanım alanları: Web ve modern mobil uygulamalar
Implicit Flow - Eski Yöntem
Eskiden sunucusuz tarayıcı uygulamalarında (SPA) kullanılırdı. Burada access token hemen tarayıcıya iletilir.
- Token doğrudan tarayıcıya gelir
- Sızıntı riski yüksektir
- Güvenlik zayıftır
Günümüzde bu yöntem yerini daha güvenli akışlara bırakıyor.
Client Credentials Flow - Sunucudan Sunucuya
Kullanıcı olmadan, yalnızca sunucular arası iletişim için kullanılır.
- Bir servis, API'ye kendi anahtarlarıyla erişim ister
- Kullanıcı adına değil, kendi adına işlem yapar
Kullanım alanları: Mikroservisler, backend entegrasyonları, otomasyonlar
Neden Farklı Akışlar Önemli?
- Kullanıcı girişi → Authorization Code Flow
- Sunucu-sunucu iletişimi → Client Credentials Flow
- Eski SPA'lar → Implicit Flow (terk ediliyor)
Google ile girişte neredeyse daima Authorization Code Flow kullanılır.
OAuth 2.0 ve OpenID Connect Arasındaki Farklar
Birçok kişi OAuth 2.0'ı doğrudan giriş teknolojisi sanır. Ancak aslında amacı veri erişimini yönetmektir, kimlik doğrulamak değil.
Neden OAuth Giriş Değil?
OAuth 2.0 şu soruya cevap verir: "Bu uygulama kullanıcı verilerine erişebilir mi?" Ancak "Bu kullanıcı kim?" sorusuna net cevap vermez.
- Uygulama e-postaya erişebilir
- Fakat kimlik doğrulama standart bir sistem değildir
OpenID Connect Ne Yapar?
OpenID Connect (OIDC) OAuth 2.0 üzerine inşa edilmiş bir katmandır ve kimlik doğrulama (login) ekler. Ek olarak:
- Kullanıcı kimliği
- Kullanıcı bilgileri
- Girişin gerçekten gerçekleştiğine dair onay
içeren bir ID token sunar.
Nasıl Birlikte Çalışırlar?
- OAuth 2.0 - veri erişimi sağlar,
- OpenID Connect - kim olduğunuzu doğrular.
Birlikte tam bir giriş sistemi oluştururlar.
Basit Bir Analojisi:
- OAuth - Kapının anahtarı (erişim)
- OpenID Connect - Pasaport (kimlik)
Farklı soruları çözerler, fakat beraber kullanılırlar.
Neden Bu Ayrım Önemli?
- OpenID Connect olmadan Google ile giriş düzgün çalışmaz
- OAuth olmadan güvenli veri erişimi sağlanamaz
Bu yüzden modern servisler çoğunlukla her ikisini birlikte kullanır.
OAuth 2.0'ın Güvenliği
OAuth 2.0, doğru uygulandığında ve kullanıcı dikkatli olduğunda güvenlidir. Hangi mekanizmaların koruma sağladığını ve hangi risklerin olabileceğini bilmek önemlidir.
Neden Şifre Paylaşılmaz?
- Şifre sadece Google'da girilir
- Üçüncü parti site şifreyi görmez veya saklamaz
Böylece:
- Veritabanı sızıntısı riski azalır
- Şifre ele geçirilemez
- Şifre tekrar kullanımı engellenir
Bir servis hacklense bile Google hesabınıza doğrudan erişim elde edilemez.
Sınırlı Erişim Hakları
Her uygulama belirli izinler ister:
- Sadece e-posta
- Veya dosyalara erişim
- Veya takvime erişim
İzinler onay öncesinde size gösterilir. Yani uygulama, siz izin vermedikçe fazlasına erişemez.
Geçici Token'lar
- Access token: Sınırlı süreyle geçerlidir, otomatik olarak süresi dolar
- Refresh token: Ayrı saklanır ve erişimi yeniler
Böylece sızıntı riski ve etkisi azalır.
Başlıca Riskler
- Phishing: Google gibi görünen sahte giriş sayfaları
- Şüpheli uygulamalar: Gereğinden fazla izin isteyen servisler
- Güvensiz geliştirme: Token sızıntısı gibi yazılım hataları
Kendinizi Nasıl Korursunuz?
- Giriş sayfası adresinin google.com olduğuna emin olun
- Bilinmeyen uygulamalara erişim vermeyin
- Bağlı uygulamaları düzenli kontrol edin
- İki faktörlü kimlik doğrulama kullanın
OAuth Ne Zaman Gerçekten Güvenlidir?
- Resmi bir servis kullanılıyorsa
- Gerçek sağlayıcı (Google, Apple, vb.) kullanılıyorsa
- Hangi verilere izin verdiğinizi biliyorsanız
OAuth kendi başına sistemi otomatik olarak güvenli yapmaz; ancak doğru uygulandığında en sağlam giriş yöntemlerinden biridir.
Gerçek Hayatta OAuth 2.0 Nerelerde Kullanılır?
OAuth 2.0 internette bir standart haline gelmiştir. Farkında olmadan her gün kullanıyorsunuz!
Sosyal Medya ve Hızlı Giriş
- "Google ile Giriş Yap"
- "Facebook ile Giriş Yap"
- "Apple ile Giriş Yap"
Bunlar sayesinde:
- Yeni hesap oluşturmanıza gerek kalmaz
- Şifre ezberlemezsiniz
- Servise anında erişirsiniz
Bu tür girişler web sitelerinde, uygulamalarda ve oyunlarda yaygındır.
Uygulamalar ve Servisler
- Not uygulamaları
- Bulut depolama
- CRM ve iş araçları
- Online editörler
Örneğin, bir uygulama Google Drive'a dosya kaydetmek için yalnızca sizin izninizle erişim alabilir.
API ve Entegrasyonlar
- Telegram botları kullanıcı verilerine erişebilir
- Analitik servisi Google Analytics'e bağlanabilir
- Uygulama takvimle eşitlenebilir
OAuth burada:
- Verilerin güvenli paylaşımını,
- Şifresiz bağlantıyı,
- Kısıtlı erişimi
sağlar.
Kurumlarda OAuth Kullanımı
- Tek oturum açma (SSO)
- Çalışan erişim yönetimi
- İç servis entegrasyonu
Bu yöntemler iş süreçlerini kolaylaştırır ve güvenliği artırır.
Neden OAuth Standart Oldu?
- Kullanıcı için kolaylık
- Şifre iletimine gerek yok, bu yüzden güvenli
- Farklı erişim seviyeleriyle esneklik
- Her yerde çalışabilen evrensellik
Günümüzde neredeyse tüm modern servisler OAuth veya benzeri teknolojiler kullanır.
Sonuç
OAuth 2.0, internetin modern giriş altyapısının temelidir. Hizmetlere hızlı, güvenli ve şifresiz giriş yapmayı mümkün kılar. Ana fikir:
- Şifrenizi paylaşmazsınız,
- Sınırlı bir erişim izni verirsiniz.
Böylece OAuth, kullanıcılar için pratik, servisler için güvenli bir çözüm sunar. Google ile giriş, uygulama bağlantıları veya online servislerle çalışırken OAuth'ı her gün kullanıyorsunuz. Önemli olan, hangi erişimleri verdiğinize dikkat etmek ve hangi servislere güvendiğinizi bilmek.
OAuth 2.0 Hakkında Sıkça Sorulan Sorular
- Google ile giriş yapmak güvenli mi?
Evet, eğer resmi bir sitede ve gerçek Google giriş sayfasında yapıyorsanız güvenlidir. - Bir site şifremi görebilir mi?
Hayır, şifreniz sadece Google'da kalır. - Bir uygulamaya erişim verdim, ne yapmalıyım?
Hesap ayarlarınıza girip erişimi iptal edebilirsiniz. - OAuth normal girişten nasıl farklı?
Normal girişte şifre girersiniz. OAuth ile, şifreniz paylaşılmadan başka bir servis üzerinden izin vererek giriş yaparsınız.