OAuth 2.0'da Implicit Grant Type

Implicit Grant Type, "token" yöntemi olarak da bilinir ve öncelikle istemcinin bir istemci sırrını güvenli bir şekilde saklayamadığı istemci tarafı uygulamalar için tasarlanmıştır. Bu tür uygulamalar arasında tek sayfa uygulamaları (SPA'lar) veya diğer tarayıcı tabanlı uygulamalar bulunur. Bir erişim token'ı ile değiştirilmesi gereken bir yetkilendirme kodu almak yerine, uygulama erişim token'ını doğrudan alır.

Implicit Grant Type in LoadFocus

Implicit Grant Type Nasıl Çalışır?

  1. Yönlendirme:
  • İstemci uygulama, kullanıcıyı OAuth 2.0 yetkilendirme sunucusunun yetkilendirme uç noktasına yönlendirir. Bu yönlendirme genellikle client_id, response_type (Implicit Grant için "token" olarak ayarlanır), redirect_uri (yetkilendirme sunucusunun erişim verdikten/reddettikten sonra yönlendireceği adres) ve scope (talep edilen erişim düzeyini belirten) gibi sorgu parametrelerini içerir.
  1. Kullanıcı Kimlik Doğrulama:
  • Kullanıcı, yetkilendirme sunucusuna giriş yapar (henüz giriş yapmamışsa) ve istemci uygulamanın erişim talebini inceler.
  1. Erişim Token'ının Verilmesi:
  • Kullanıcı erişim izni verirse, yetkilendirme sunucusu kullanıcıyı sağlanan redirect_uri aracılığıyla istemci uygulamaya geri yönlendirir. Yönlendirme URI'si, erişim token'ını (ve süresini) doğrudan URL'nin fragment bölümünde içerir.
  1. Korunan Kaynağa Erişim:
  • İstemci uygulama, erişim token'ını URL fragment'ından çıkarır ve saklar (örn. yerel depolama veya oturumda). Ardından bu token'ı kullanarak kullanıcı adına kaynak sunucusuna (API) istekler yapar.

Implicit Grant Type Nasıl Yapılandırılır?

  1. Uygulamanızı Kaydedin:
  • Uygulamanızı OAuth 2.0 sağlayıcısına kaydederek başlayın. Başarılı kayıt sonrasında genellikle bir client_id alacaksınız.
  1. Redirect URI Kurulumu:
  • Kayıt sırasında bir redirect_uri sağlayın. Yetkilendirme sunucusu, kullanıcıları erişim izni verme veya reddetme kararından sonra bu URI'ye yönlendirecektir. Bu URI'nin güvenli olduğundan (genellikle HTTPS kullanarak) ve URL fragment'ından token çıkarmayı işleyebildiğinden emin olun.
  1. OAuth Akışını Başlatın:
  • Gerekli parametrelerle kullanıcıları yetkilendirme sunucusunun yetkilendirme uç noktasına yönlendirin. Bunu kolaylaştırmak için uygulamanızın dili veya çerçevesine uygun kütüphaneler veya SDK'lar kullanın.
  1. Token'ı Çıkarın ve Saklayın:
  • Geri yönlendirildikten sonra, erişim token'ını URL fragment'ından çıkarın. Token'ı güvenli bir şekilde saklayın; Web Storage (localStorage veya sessionStorage) veya çerezler gibi istemci tarafı depolama seçeneklerini göz önünde bulundurun. Siteler arası betik çalıştırma (XSS) saldırılarına karşı korunduğundan emin olun.
  1. Token'ı Kullanın:
  • Kaynak sunucusuna yapılan API isteklerine erişim token'ını ekleyin.
  1. Token Süresinin Dolmasını Yönetin:
  • Implicit Grant genellikle yenileme token'ları sağlamadığından, bir erişim token'ının süresi dolduğunda yeni bir tane elde etmek için OAuth akışını yeniden başlatmanız gerekebilir.

Dikkat Edilmesi Gerekenler:

  • Güvenlik: Implicit Grant Type, özellikle erişim token'ının URL'de açığa çıkması nedeniyle Authorization Code Grant Type'a göre daha az güvenli kabul edilir. Bu, URL'lerin günlüğe kaydedilebildiği veya üçüncü taraflarca erişilebildiği ortamlarda risk oluşturabilir.

  • Yenileme Token'ı Yok: Genellikle Implicit Grant yenileme token'ları sağlamaz. Bu nedenle, bir erişim token'ının süresi dolduğunda tüm akışın tekrarlanması gerekebilir.

  • Kullanımdan Kaldırılma: Doğası gereği güvenlik endişeleri nedeniyle, OAuth 2.0 Güvenlik En İyi Uygulamalar belgesi, SPA'lar gibi genel istemciler için Implicit Grant yerine PKCE (Proof Key for Code Exchange) ile Authorization Code kullanılmasını önermektedir.

Sonuç:

Implicit Grant Type, istemci tarafı uygulamalar için daha basit bir akış sunarken, güvenlik endişeleri modern uygulamalarda kullanımına karşı önerilere yol açmıştır. Yeni uygulamalar, özellikle SPA'lar geliştiriyorsanız, daha güvenli bir yaklaşım için PKCE ile Authorization Code Grant kullanmayı düşünün.