OpenID Connect (OIDC) İçinde Yönlendirme URI'sı ve Yetkilendirme Kodu Akışını Anlamak
OIDC kimlik doğrulama sürecinde yönlendirme URI'sının kritik bir güvenlik bileşeni olarak daha yakından bakalım.
Yönlendirme URI'sı Nedir?
Yönlendirme URI'sı, diğer adıyla Yanıt URL'si, OIDC kimlik doğrulama sürecinde kritik bir güvenlik bileşenidir. OIDC sağlayıcı üzerinden başarılı bir şekilde oturum açtıktan sonra kullanıcıların gönderildiği URL'yi belirtir. Daha da önemlisi, uygulamanızın belirli bir sağlayıcıdan, tokenları elde etmek için gereken yetkilendirme kodunu aldığı yerdir.
Daha fazla ayrıntı için Yönlendirme URI wiki sayfasına göz atın.
Yetkilendirme Kodu Akışı Nedir?
Yetkilendirme Kodu Akışı (OAuth 2.0 RFC 6749, bölüm 4.1'de tanımlı) OIDC'deki temel bir kimlik doğrulama yöntemidir. Bir yetkilendirme kodunu bir erişim tokenı ve, isteğe bağlı olarak bir yenileme tokenı için değiştirmeyi içerir. Bu akış, bir istemci sırrını güvenli bir şekilde tutabilen uygulamalar için uygundur, örneğin sunucu tarafı web uygulamaları.
Daha fazla ayrıntı için Yetkilendirme Kodu Akışı wiki sayfasına göz atın.
Yetkilendirme Kodu Akışında Yönlendirme URI'sı Nasıl Çalışır?
Yetkilendirme Kodu Akışında, Yönlendirme URI'sı, OIDC sağlayıcının kullanıcıyı başarıyla kimlik doğruladıktan sonra yetkilendirme kodunu gönderdiği yerdir. Güvenliği sağlamak ve yetkisiz yönlendirmeleri önlemek için OIDC sağlayıcısı ile önceden kaydedilmiş olmalıdır.
Logto Console içinde Yönlendirme URI'sını nasıl kaydedebilirsiniz işte böyle:
Bir oturum açma başlatırken:
- Yetkilendirme isteği: Uygulamanız,
client_id
,response_type
,scope
veredirect_uri
gibi parametreleri içeren OIDC sağlayıcının yetkilendirme uç noktasına kullanıcıyı yönlendirir. - Kullanıcı kimlik doğrulaması: Kullanıcı, OIDC sağlayıcısı ile kimlik doğrular.
- Yetkilendirme kodu teslimatı: Başarılı kimlik doğrulama sonrasında, OIDC sağlayıcı kullanıcıyı belirtilen
redirect_uri
ye yönlendirir ve bir sorgu parametresi olarak bir yetkilendirme kodu ekler.
OIDC sağlayıcı, redirect_uri
yi önceden kaydedilmiş URI'lar listesinden kontrol eder. Eğer bir uyuşmazlık varsa, invalid_redirect_uri
hatası döndürülür, böylece yetkisiz uç noktaların token almasını önleyerek güvenliği artırır.
Yönlendirme URI'leri için En İyi Uygulamalar
Gerçek hayat kullanım senaryolarında, yaygın bir en iyi uygulama, özel bir "Callback" sayfası oluşturmak ve harici bir kaynaktan doğrudan erişimi sağlayan bir yönlendirici / derin bağlantı ile ilişkilendirilen bu bağlantıyı yönlendirme URI'sı olarak kullanmaktır.
Örnek olarak, https://my-app.com
üzerinde çalışan tek sayfalı bir web uygulamanız varsa, genelde yönlendirme URI'sı https://my-app.com/callback
olarak belirlenir.
E ğer bir yerel mobil uygulama ise, genelde yönlendirme URI'sı özel bir şema ile başlar, örneğin com.company://myapp/callback
Diğer en iyi uygulamalar şunlardır:
- Joker karakterlerden kaçının: Yönlendirme URI'lerinde joker karakter desenleri kullanmayın. Yetkisiz erişimi önlemek için izin verilen tüm URI'leri açıkça listeleyin.
- Tam eşleşme: Yönlendirme URI'sının, OIDC sağlayıcısında kaydedilen ile tamamen eşleşmesini sağlayın. Hatta sondaki bir eğik çizgi bile bir uyuşmazlık yaratabilir.
Oturum Açma Geri Çağrısını Yönet
redirect_uri
nize döndürülen yetkilendirme kodunu yönetmek için şu adımları izleyin:
-
Yetkilendirme kodunu çıkar: Yönlendirme URI'sinin sorgu dizesinden kod parametresini alın.
-
Yetkilendirme kodunu tokenlarla değiştir: OIDC sağlayıcısının token uç noktasına şu bilgileri içeren bir POST isteği hazırlayın:
client_id
: OIDC sağlayıcısındaki uygulamanızın ID'sicode
: Yönlendirme URI'sinden alınan yetkilendirme koducode_verifier
: İstemcide oluşturulan rastgele bir dizeredirect_uri
: Yetkilendirme isteğinde kullanılan aynı URIgrant_type
: Genellikleauthorization_code
olan hibe türü
JavaScript'te Örnek Token Değişim İsteği
Logto SDK'larından Yararlanarak Kod Değişim Sürecini Basitleştirin
Logto SDK'ları, belirli bir programlama dili veya çerçevesi üzerinde yazılmış geliştirme kitleridir, örneğin Logto React SDK, Next.js SDK ve Swift SDK. Bir SDK kullanmak, yalnızca bir veya iki işlevi çağırarak her şeyi büyük ölçüde basite indirgemeye yardımcı olabilir.
İşte Logto resmi React SDK'sını kullanan bir React "Callback" bileşen örneği:
SDK entegrasyon kılavuzları, Logto hızlı başlangıç dokümanları bölümünde bulunabilir.
Özet: OIDC'de Yönlendirme URI'lerini Neden Bilmek Önemlidir
OIDC'de yönlendirme URI'lerini yetkilendirme kodu akışı ile anlamak, kimlik doğrulama süreçlerinizi güvence altına almak ve optimize etmek için önemlidir. Güvenilir yönlendirme URI'lerini kaydederek ve oturum açma geri çağrılarını etkili bir şekilde yöneterek, kullanıcılarınız için sorunsuz ve güvenli bir deneyim sağlayabilir ve Logto SDK'larıyla geliştirme çabalarınızı basitleştirebilirsiniz.