Grant Type Nedir?
OAuth 2.0 Yetkilendirme Bağlamı
OAuth 2.0 Yetkilendirme çerçevesi kapsamında, "Grant Type" (Yetkilendirme Türü) terimi, bir uygulamanın erişim token'ı elde etme yöntemini ifade eder. Özünde, yetkilendirme türü uygulamanın kullanıcı verilerine erişmek için kullanacağı yetkilendirme akışının türünü belirtir.
OAuth 2.0'da Farklı Yetkilendirme Türleri
OAuth 2.0, farklı uygulama senaryoları için uyarlanmış çeşitli yetkilendirme türleri tanımlar:
- Authorization Code:
- En uygun olduğu durum: İstemci sırrını güvende tutabilen uygulamalar, genellikle sunucu tarafı uygulamalar.
- Akış: Kullanıcı önce bir kimlik doğrulama sunucusuna yönlendirilir. Başarılı kimlik doğrulamasının ardından, bir yetkilendirme koduyla uygulamaya geri yönlendirilir. Uygulama bu kodu bir erişim token'ı ile değiştirir.
- Implicit:
- En uygun olduğu durum: Tek sayfa uygulamalar gibi kullanıcı aracısı merkezli uygulamalar.
- Akış: Authorization Code akışını yansıtır, ancak erişim token'ı bir ara kod olmadan doğrudan teslim edilir. Authorization Code yönteminden daha az güvenli kabul edilir.
- Password (Resource Owner Password Credentials):
- En uygun olduğu durum: Genellikle kaynak sunucusuyla aynı kuruluşa ait olan, yüksek güvenilirliğe sahip uygulamalar.
- Akış: Kullanıcılar kullanıcı adı ve şifrelerini doğrudan uygulamaya girer. Uygulama daha sonra bu kimlik bilgilerini kullanarak bir erişim token'ı alır. İstemci yüksek güvenilirliğe sahip olmadıkça bu akış genellikle önerilmez.
- Client Credentials:
- En uygun olduğu durum: Kullanıcıya değil, kendi kaynaklarına erişmesi gereken hizmetler veya uygulamalar.
- Akış: Uygulama kendi kimlik bilgilerini (istemci kimliği ve sırrı gibi) kullanarak kimlik doğrulaması yapar ve karşılığında bir erişim token'ı alır.
- Device Code (kapsamlı tarayıcı yetenekleri olmayan cihazlar için):
- En uygun olduğu durum: Akıllı TV'ler, oyun konsolları veya yazıcılar gibi cihazlar.
- Akış: Cihaz, bir cihaz kodu ve kullanıcı kodu elde etmek için yetkilendirme sunucusuyla iletişim kurar. Kullanıcı, kullanıcı kodunu başka bir cihazda (örn. akıllı telefon) girer. Doğrulama sonrasında cihaz bir erişim token'ı alır.
- Refresh Token:
- Kullanım: Bağımsız bir akış değildir, diğer yetkilendirme türlerini tamamlar. Erişim token'ının süresi dolduğunda, yenileme token'ı uygulamanın kullanıcının tekrar giriş yapmasına gerek kalmadan yeni bir tane almasını sağlar.
Yetkilendirme Türleri Neden Önemlidir?
Yetkilendirme türleri, farklı uygulama bağlamları için esneklik sunar. Her biri, uygulamanın kısıtlamaları göz önüne alındığında erişim token'ı elde etmenin mümkün olduğunca güvenli olmasını sağlar. Yetkilendirme türü seçimi, istemci, kullanıcı ve yetkilendirme sunucusu arasındaki etkileşimleri etkiler ve doğru seçimin yapılmasını hem kullanılabilirlik hem de güvenlik açısından kritik hale getirir.