Örtük Akış vs. Yetkilendirme Kodu Akışı: Neden örtük akış artık ölü?
OAuth 2.0'de "Yetkilendirme kodu akışı" varken neden "Örtük akış" var? Bu iki yetki türünün detaylarına dalalım ve neden örtük akışı kullanmaktan kaçınmanız gerektiğini öğrenelim.
OAuth 2.0'de "Yetkilendirme kodu akışı" varken neden "Örtük akış" var? Bu iki yetki türünün detaylarına dalalım ve neden örtük akışı kullanmaktan kaçınmanız gerektiğini öğrenelim.
Yetkilendirme kodu akışı ve Örtük akış, OAuth 2.0'da yaygın olarak kullanılan iki yetkilendirme türüdür, web uygulamaları için güvenli ve etkili kullanıcı yetkilendirmesi sağlarlar. Her iki akış da kullanıcıların kimlik bilgilerini doğrudan açığa çıkarmadan uygulamalara erişim izni vermelerini sağlayan bir yetkilendirme süreci uygular. Örtük akış, başlangıçta tarayıcı sınırlamalarını ele almak için geliştirilmişti, ancak modern web teknolojilerinin ortaya çıkmasıyla Yetkilendirme kodu akışı, geliştirilmiş güvenlik özellikleri nedeniyle birçok geliştirici için tercih edilen bir seçenek haline gelmiştir.
Bu makalede, bu iki yetki türü arasındaki farkları keşfedeceğiz ve neden Yetkilendirme kodu akışını tercih edip örtük akışı kullanmaktan kaçınmanız gerektiğini açıklayacağız.
Bu iki yetki türünün detaylarına dalmadan önce, OAuth 2.0'ın ne olduğunu ve modern web uygulamaları için neden önemli olduğunu anlayalım.
İnsanlar OAuth'tan bahsettiğinde, genellikle web sitelerinin veya uygulamaların bir kullanıcının adına diğer web servislerinin kaynaklarını kullanmasına imkan tanıyan yerleşik bir protokol olan OAuth 2.0'ı kastediyoruz. 2012'de OAuth 1.0'ın yerini almış ve o zamandan beri dijital yetkilendirme için geniş çapta kabul edilen standart haline gelmiştir. OAuth 2.0, kullanıcıların kimlik bilgilerini açıklamadan kullanıcıları temsil eden kaynaklarla etkileşimde bulunmak için istemci uygulamasına belirli izinler vererek kontrollü erişim sağlamak için tasarlanmıştır.
Temelde web ortamlarında kullanılsa da, OAuth 2.0'ın çerçevesi çeşitli istemci biçimlerine de genişler. Bu, tarayıcı tabanlı uygulamaları, sunucu tabanlı web uygulamalarını, yerel veya mobil uygulamaları ve hatta birbirine bağlı cihazları kapsamaktadır ve bu platformlar arasında yetki verilmiş erişimin nasıl yönetileceğine dair bir yaklaşımı detaylandırır. İstemci uygulaması, kullanıcı ve yetki sunucusu arasında yetkilendirme sürecini tanımlamak için "yetkilendirme türlerini" tanıtır. Bu yetki türleri, istemci uygulamasının bir erişim belirteci elde ederek kullanıcının kaynaklarına nasıl erişebileceğini belirlemek için kullanılır. OAuth 2.0'da en yaygın yetkilendirme türleri şunlardır:
Örtük akış, erişim belirtecinin bir yetki kodu ile değiştirileceği ek bir adım olmaksızın doğrudan istemciye yönlendirme URI'sinde döndüğü basit bir OAuth 2.0 akışıdır. Başlangıçta, tarayıcı kısıtlamaları nedeniyle belirteç uç noktasına sunucu tabanlı istekler yapamayan web uygulamaları için tasarlandı.
Örtük akışın birkaç güvenlik açığı vardır:
Bu güvenlik endişeleri nedeniyle, örtük akış modern web uygulamaları için artık önerilmemektedir. Bunun yerine, PKCE (Yetki Kodu Değişimi İçin Kanıt Anahtarı) ile birlikte yetkilendirme kodu akışı, güvenli kullanıcı yetkilendirme için tercih edilen seçenektir.
Yetkilendirme kodu akışı ise, yetkilendirme sürecini iki aşamaya ayıran daha güvenli bir OAuth 2.0 akışıdır: istemci uygulama önce yetki sunucusundan bir yetki kodu alır, ardından bu kodu bir erişim belirteci için değiştirir. Bu akış, istemci kimlik bilgilerini güvenli bir şekilde depolayabilen ve erişim belirteçlerini yönetebilen sunucu tabanlı web uygulamaları için başlangıçta tasarlanmıştır. PKCE uzantısının tanıtılmasıyla, yetkilendirme kodu akışı tarayıcı tabanlı uygulamalarda da kullanılabilir hale gelmiştir.
PKCE akışı hakkında daha fazla bilgi edinin.
| Kapsam | Yetkilendirme kodu akışı | Örtük akış |
|---|---|---|
| Belirteç teslimi | Erişim belirteci, istemciye güvenli bir istek yoluyla teslim edilir | Erişim belirteci, URL parçasında doğrudan istemciye teslim edilir |
| Güvenlik seviyesi | Yüksek (belirteçler tarayıcıda açığa çıkmaz) | Düşük (belirteçler tarayıcıda açığa çıkar) |
| Kullanım durumu | Sunucu tabanlı web uygulamaları ve tarayıcı tabanlı uygulamalar (PKCE ile) | Sadece tarayıcı tabanlı uygulamalar |
| Modern kullanım | Tüm uygulama türleri için önerilir | Artık önerilmiyor ve kaçınılmalıdır |
Cevap EVET:
Yetkilendirme kodu akışı, bir erişim belirteci için yetki kodu değişimi yapma ek adımını tanıtır, bu da belirteç maruziyeti riskini önemli ölçüde azaltır.
Eğer işinizde örtük akış kullanıyorsanız, PKCE ile yetkilendirme kodu akışına geçmek, hem sizin hem de kullanıcılarınız için daha iyi bir güvenlik sağlayabilir. Kimlik sistemini taşımanın ve yönetmenin sıkıcı ve maliyetli olabileceğini anlıyoruz, ancak geliştirilmiş güvenlik ve uyum avantajları çabaya kesinlikle değer.