OAuth 2.0 belirteç içgörüsü
Bu makale, korunan bir kaynağın yetkilendirme sunucusuna belirteç meta verilerini sorgulamak için bir yöntem olan OAuth 2.0 belirteç içgörüsünü araştırıyor ve erişim veya yenileme belirtecinin geçerli olup olmadığını belirliyor.
OAuth 2.0 belirteç içgörüsü, korunan bir kaynağın, bir OAuth istemcisi tarafından sağlanan bir belirteçle (ya bir erişim belirteci ya da bir yenileme belirteci) ilişkili meta verileri belirlemek için yetkilendirme sunucusunu sorgulamasına izin veren bir yöntemi tanımlar. Belirli bir belirtecin meta verilerine dayanarak, kaynak sahibinin korunan kaynağa erişmesine izin verir.
Bu meta veriler şunları içerir:
- Belirtecin şu anda aktif olup olmadığı (veya süresinin dolup dolmadığı ya da iptal edilip edilmediği)
- Erişim belirtecinin verdiği izinler (genellikle OAuth 2.0 kapsamları aracılığıyla iletilir)
- Belirtecin verildiği yetkilendirme bağlamı (kim tarafından yetkilendirildiği ve hangi istemciye verildiği dahil)
Belirteç içgörüsü, bu bilgiyi belirtecin kendisinde olup olmadığına bakılmaksızın korunan kaynağın sorgulamasına olanak tanır.
Belirteçlerin nasıl kodlandığına bağlı olarak iki tür erişim belirteci vardır:
- Tanımlayıcıya dayalı: Belirteç, yetkilendirme sunucusunun veritabanında yetkilendirme ile ilişkili rasgele, tahmin edilmesi zor bir tanımlayıcıyı temsil eder.
- Kendi kendine yeten: Yetkilendirme, belirtecin kendisi içinde kodlanır ve kurcalamayı önlemek için kriptografi ile korunur. JSON Web Token (JWT) bu yöntem için yaygın bir standarttır.
Kendi kendine yeten belirteçler için, yetkilendirme ile ilgili meta veriler doğrudan erişim belirtecinden ayrıştırılabilir. Ancak tanımlayıcıya dayalı belirteçler için, yetkilendirme sunucusunun belirteç içgörüsü işlevselliği meta verileri doğrulamak/elde etmek için kullanılmalıdır.
Belirteç içgörüsü isteği
Tanımlayıcıya dayalı erişim belirteçleri kullanmak, bir ağ isteği aracılığıyla yetkilendirme sunucusu ile doğrulama gerektirir. Bunun için OAuth 2.0 Belirteç İçgörüsü (RFC 7662) adlı bir standart protokol vardır.
Korunan kaynak, belirteci yetkilendirme sunucusunun içgörü bitiş noktasına POST eder ve karşılığında belirteçin parametrelerini içeren bir JSON nesnesi alır.
İçgörü isteklerinin keyfi olarak başlatılamayacağını unutmayın; aşağıdaki koşullardan birini karşılamaları gerekir:
- Kimlik bilgileri kullanarak kimlik doğrulama (önceden yetkilendirme sunucusuna kaydedilmesi gereken), veya
- Erişim belirteci kullanarak yetkilendirme.
Sonuç olarak, bu belirli etkileşimde, korunan kaynak OAuth istemcisi haline gelir ve yetkilendirme sunucusu korunan kaynak olur.
Aşağıda, korunan kaynağın, yetkilendirme sunucusuna OAuth istemcisi olarak kaydolduktan sonra elde edilen bir istemci kimliği ve istemci sırrı kullanarak kimlik doğrulaması yaptığı bir içgörü isteği örneği bulunmaktadır.
Aşağıda, doğrudan bir erişim belirteci kullanan bir içgörü isteği örneği bulunmaktadır. Erişim belirteci, kayıtlı bir makine-makine uygulamasının kimlik bilgilerini ve client_credentials
yetki türünü kullanarak doğrudan /token
bitiş noktasından elde edilebilir.
Belirteç içgörüsü yanıtı
En önemli parametre, boolean bir değer olan active
dir. true
ise, belirteçin geçerli olduğunu belirtir ve JSON nesnesi, kapsam değerleri gibi diğer belirteç detaylarını içerecektir. false
ise, belirteç ya geçersizdir ya da süresi dolmuştur ve korunan kaynak, invalid_token
hata koduyla bir 401 Yetkisiz yanıtı döndürmelidir.
İşte geçerli bir belirteç için bir yanıt örneği:
active
dışında, zorunlu olan tüm diğer parametreler isteğe bağlıdır.
Korunan kaynak, JWT erişim belirtecini ayrıştırıp doğruladığı gibi, bu ek alanları erişim izinlerini belirlemek için kullanabilir.