# OAuth 2.0 ve JWT: Modern Kimlik Doğrulama ve Yetkilendirme Rehberi

> OAuth 2.0 nedir, JWT nasıl çalışır? Modern kimlik doğrulama akışları, güvenlik pratikleri ve popüler sağlayıcıları keşfedin.

**URL:** https://ekolsoft.com/tr/b/oauth-2-0-jwt-modern-kimlik-dogrulama-yetkilendirme-rehberi

---

## OAuth 2.0: Güvenli Erişim Yönetiminin Altın Standardı
Modern web ve mobil uygulamalarda kullanıcı kimlik doğrulama ve yetkilendirme, güvenliğin temel taşıdır. **OAuth 2.0**, üçüncü taraf uygulamaların kullanıcı kaynaklarına güvenli erişim sağlamasını mümkün kılan endüstri standardı bir yetkilendirme protokolüdür. "Google ile Giriş Yap" veya "GitHub ile Bağlan" butonlarının arkasında OAuth 2.0 çalışır.

## Kimlik Doğrulama vs Yetkilendirme
Bu iki kavramı ayırt etmek kritik önem taşır:

- **Kimlik Doğrulama (Authentication):** "Sen kimsin?" sorusunu yanıtlar. Kullanıcının iddia ettiği kişi olduğunu doğrular.
- **Yetkilendirme (Authorization):** "Ne yapmana izin var?" sorusunu yanıtlar. Kullanıcının hangi kaynaklara erişebileceğini belirler.

OAuth 2.0 bir **yetkilendirme** protokolüdür. Kimlik doğrulama için üzerine inşa edilen **OpenID Connect (OIDC)** katmanı kullanılır.

## OAuth 2.0 Nasıl Çalışır?
### Temel Roller
- **Resource Owner:** Kaynak sahibi — genellikle son kullanıcı
- **Client:** Kaynaklara erişmek isteyen uygulama
- **Authorization Server:** Token'ları veren sunucu (Google, GitHub vb.)
- **Resource Server:** Korunan kaynakları barındıran API sunucusu

### OAuth 2.0 Akış Türleri (Grant Types)
### 1. Authorization Code Flow
En güvenli ve en yaygın kullanılan akış. Sunucu taraflı uygulamalar için idealdir. Kullanıcı yetkilendirme sunucusuna yönlendirilir, onay verdikten sonra bir yetkilendirme kodu alınır ve bu kod token ile değiştirilir.

### 2. Authorization Code Flow with PKCE
Mobil ve SPA (Single Page Application) uygulamalar için güvenli versiyon. Client secret kullanmak yerine dinamik olarak oluşturulan code verifier/challenge çifti kullanır.

### 3. Client Credentials Flow
Kullanıcı etkileşimi olmayan makine-makine iletişimi için. Backend servisler arası API çağrılarında kullanılır.

### 4. Device Authorization Flow
Akıllı TV, IoT cihazları gibi giriş kapasitesi sınırlı cihazlar için tasarlanmıştır.

## JWT (JSON Web Token) Nedir?
JWT, taraflar arasında bilgiyi güvenli şekilde iletmek için kullanılan kompakt ve bağımsız bir token formatıdır. OAuth 2.0'da erişim token'ı olarak yaygın şekilde kullanılır.

### JWT'nin Üç Bileşeni
- **Header:** Token türü ve imzalama algoritması bilgisi
- **Payload:** Kullanıcı bilgileri ve talepler (claims) — kullanıcı ID, roller, süre sonu
- **Signature:** Header ve payload'ın gizli anahtar ile imzalanması

### JWT Avantajları
- **Durumsuz (Stateless):** Sunucuda oturum bilgisi tutmaya gerek yoktur
- **Ölçeklenebilir:** Yük dengeleyici arkasında çoklu sunucu ile sorunsuz çalışır
- **Platform Bağımsız:** Web, mobil ve API istemcilerinde kullanılabilir
- **Kompakt:** HTTP header'larında kolayca taşınabilir

## Güvenlik En İyi Pratikleri
### Token Yönetimi
- Erişim token sürelerini kısa tutun (15 dakika önerilir)
- Uzun süreli oturumlar için **refresh token** kullanın
- Token'ları localStorage'da saklamayın — **httpOnly cookie** tercih edin
- Token iptal mekanizması (revocation) uygulayın

### Genel Güvenlik
- Tüm iletişimlerde **HTTPS** zorunlu kılın
- **CORS** politikalarını doğru yapılandırın
- **CSRF** koruması uygulayın
- Scope'ları minimum yetki prensibiyle tanımlayın
- Hassas bilgileri JWT payload'ına koymayın

## OAuth 2.0 Sağlayıcıları
| Sağlayıcı | Özellik | En Uygun Kullanım

| Auth0 | Kapsamlı, kolay entegrasyon | Her ölçekte uygulama

| Keycloak | Açık kaynak, self-hosted | Kurumsal uygulamalar

| Firebase Auth | Google ekosistemi, ücretsiz başlangıç | Mobil ve web uygulamalar

| Okta | Kurumsal kimlik yönetimi | Büyük ölçekli kuruluşlar

| Azure AD B2C | Microsoft entegrasyonu | Microsoft ekosistemi

## Sonuç
OAuth 2.0 ve JWT, modern uygulamaların güvenlik altyapısının temelini oluşturur. Doğru akış türünü seçmek, token yönetimini güvenli şekilde uygulamak ve güvenlik en iyi pratiklerini takip etmek, kullanıcılarınızın verilerini korumak için hayati önem taşır. Ekolsoft olarak, güvenli kimlik doğrulama ve yetkilendirme çözümleri ile uygulamalarınızı koruma altına alıyoruz.