COMPUTER ENGINEER

Örneklere git
Blog
HTTP / HTTPS / TLS6 dk çalışma
43/ 70

OAuth 2.0, OIDC ve PKCE

OAuth 2.0 ve OIDC: roller ve token amacı

Yetki devri ile kullanıcı kimliğini karıştırmadan akışı anla.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

OAuth 2.0 erişim yetkisi devrinin çerçevesidir; tek başına “kullanıcı kimliği budur” protokolü değildir. Resource owner, client, authorization server ve resource server rollerini ayır. Client kullanıcının adına bir API’ye sınırlı erişim almak isteyebilir. Onay ve scope erişim kapsamını belirler; API token’ı kendi doğrulama sözleşmesine göre kontrol eder.

OpenID Connect OAuth üzerine kimlik katmanı ekler. ID token client’a oturum/kimlik bilgisi verir; access token resource server’a erişim içindir. Bir API ID token kabul ederek audience ve token amacı sınırını bozmamalıdır. UserInfo endpoint’i, discovery ve issuer metadata gibi parçalar sağlayıcının modelini tamamlar.

Her token JWT veya browser storage değeri değildir. Authorization code kısa ömürlü tek kullanımlık bir değişim aracıdır; access token yerine API’ye gönderilmez. Kullanıcı onayı bütün kaynakları sınırsız açmaz. Gerçek akışı çizerken her okta hangi actor hangi token’ı görür, kime verir ve ne doğrular sorularını yaz. Böylece redirect, secret ve callback hataları daha görünür hale gelir.

NERESİNDE KULLANIRSIN?

Sosyal login ve harici API erişim akışını tasarlarken.

SIK YAPILAN HATA

ID token’ı API access token olarak kullanmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

HTTP / temsili örnek
Client → authorization server: request delegated access

Erişim isteği; doğrudan API işi değildir.

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.

02 / SIRA SENDE

Önce kendin dene.

Google’dan ID token aldın. Her API’ye bearer olarak yollayabilir misin?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
No: use the API’s accepted access-token contract.

Hayır. Issuer, audience ve token amacı API ile eşleşmelidir.