OAuth 2.0'da Authorization Code Grant Type
Authorization Code Grant Type, en yaygın kullanılan OAuth 2.0 yetkilendirme türlerinden biridir. Özellikle istemci sırrını gizli tutabilen uygulamalar için tasarlanmıştır ve bu nedenle sunucu tarafı uygulamalar için idealdir.
Authorization Code Nasıl Çalışır?
- 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("code" olarak ayarlanır),redirect_uri(yetkilendirme sunucusunun izin verdikten/reddettikten sonra kullanıcıyı göndereceği adres) vescope(uygulamanın talep ettiği erişim düzeyini belirten) gibi sorgu parametrelerini içerir.
- Kullanıcı Kimlik Doğrulama:
- Kullanıcı, yetkilendirme sunucusuna giriş yapar (henüz giriş yapmamışsa) ve istemci uygulamanın erişim talebini inceler.
- Authorization Code Verilmesi:
- Kullanıcı izin verirse, daha önce sağlanan
redirect_uriaracılığıyla istemci uygulamaya geri yönlendirilir. Yönlendirme ayrıca URL'de bir yetkilendirme kodu içerir.
- Token Değişimi:
- İstemci uygulama, yetkilendirme sunucusunun token uç noktasına POST isteği yaparak yetkilendirme kodunu bir erişim token'ı ile değiştirir. Bu istek yetkilendirme kodunu,
client_id,client_secret,redirect_urivegrant_type("authorization_code" olarak ayarlanır) parametrelerini içerir.
- Erişim Token'ının Verilmesi:
- Yetkilendirme sunucusu sağlanan kodu ve istemci kimlik bilgilerini başarıyla doğrularsa, istemci uygulamaya bir erişim token'ı (ve isteğe bağlı olarak bir yenileme token'ı) döndürür.
- Korunan Kaynağa Erişim:
- İstemci uygulama, elde edilen erişim token'ını kullanarak kullanıcı adına kaynak sunucusuna (API) istekler yapar.
Authorization Code Nasıl Yapılandırılır?
- Uygulamanızı Kaydedin:
- OAuth akışını başlatmadan önce uygulamanızı OAuth 2.0 sağlayıcısına kaydedin. Başarılı kayıt sonrasında bir
client_idveclient_secretalacaksınız.
- Redirect URI Kurulumu:
- Uygulamanızı kaydederken genellikle bir
redirect_urisağlamanız istenir. Bu URI, yetkilendirme sunucusunun kullanıcıları erişim izni verdikten/reddettikten sonra göndereceği adrestir. Bu URI'nin doğru ve güvenli olduğundan emin olun (genellikle HTTPS kullanarak).
- OAuth Akışını Uygulayın:
- Bu süreci basitleştirmek için uygulamanızın dili ve çerçevesiyle uyumlu bir kütüphane veya SDK kullanın.
- Gerekli sorgu parametreleriyle kullanıcıları yetkilendirme sunucusunun yetkilendirme uç noktasına yönlendirerek akışı başlatın.
- Kaydettiğiniz
redirect_uriile eşleşen sunucunuzda bir uç nokta oluşturun. Bu uç nokta gelen yetkilendirme kodunu işleyecektir. - Token uç noktasına POST isteği yaparak yetkilendirme kodunu erişim token'ı ile değiştirin.
- Client Secret'ı Güvende Tutun:
client_secretdeğerinizi asla istemci tarafı kodunda açığa çıkarmayın. Yalnızca yetkilendirme kodunu erişim token'ı ile değiştirirken sunucu tarafında kullanın.
- Token Depolama:
- Erişim token'ına sahip olduğunuzda, güvenli bir şekilde saklayın. Uygulamanızın ihtiyaçlarına bağlı olarak sunucu belleğinde, veritabanında veya güvenli bir çerezde saklanabilir. Şifreli iletişimi sağlamak için her zaman HTTPS kullanın.
- Token Süresinin Dolmasını Yönetin:
- Erişim token'ları genellikle kısa ömürlüdür. Bir yenileme token'ınız varsa, kullanıcının yeniden kimlik doğrulaması yapmasına gerek kalmadan yeni bir erişim token'ı almak için kullanın.
Authorization Code Hakkında Son Düşünceler
Authorization Code Grant Type, özellikle sunucu tarafı uygulamalar için kullanıcı yetkilendirmesi elde etmenin sağlam ve güvenli bir yöntemidir. Yetkilendirme kodunun erişim token'ı ile değiştirilmesi ek adımı, kullanıcı kimlik bilgilerine doğrudan erişimin önlenmesini sağlar. Uygularken her zaman güvenliği ön planda tutun, HTTPS kullanın ve istemci sırlarını ve token'ları güvenli bir şekilde yönetin.