OAuth 2.0, OIDC ve PKCE
Authorization Code + PKCE: adım adım
Redirect ile code exchange arasındaki kanıt zinciri.
Kavramı anlayalım
Client yüksek entropili code_verifier üretir ve S256 dönüşümünden code_challenge hesaplar. Authorization request challenge, redirect_uri, client_id, scope ve gereken koruma alanlarını içerir. Kullanıcı authorization server’da doğrulanır ve onay verir; callback’e code döner. Client token endpoint’inde code, aynı redirect bağlamı ve verifier ile exchange yapar.
PKCE code’u alan aktörün ilk isteği başlatan verifier’a sahip olduğunu doğrulamaya yardım eder. Client secret yerine aynı şey değildir: confidential client authentication ve PKCE farklı tehditlere karşı çalışabilir. Public client browser veya native uygulamada kalıcı client secret saklayamaz. Redirect URI sıkı eşleşmeli; wildcard ve kullanıcı girdisiyle açık redirect güvenli varsayılmaz.
Code kısa ömürlü ve tek kullanımlı olmalıdır. Callback hatası, iptal, timeout ve tekrar açılan sekme gibi lifecycle durumlarını ele al. state ve nonce’nin rollerini sonraki derste ayrı öğren; PKCE hepsinin yerine geçen sihirli bir alan değildir. Hazır identity kütüphanesi kullan, token exchange ve metadata doğrulamasını elle kırılgan biçimde üretme. Browser’daki akışla server-side BFF akışı aynı secret saklama modeline sahip değildir.
Federated login akışını debug ederken.
Browser’a client secret koymak veya PKCE’yi yetki kontrolü sanmak.
Aynı konu. Üç farklı derinlik.
Create verifier → S256 challenge → authorisation requestVerifier paylaşılmaz; challenge ilk isteğe gider.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
Callback code geldi ama verifier kayboldu. Rastgele yenisini üretmek yeterli mi?
Çözümü ve açıklamasını göster
No: restart the authorisation flow safely.Hayır. Yeni değer ilk challenge ile eşleşmez.