Türkçe
  • yönlendirme uri'si
  • geri çağrı
  • yetkilendirme kodu
  • kod akışı
  • oidc
  • pkce

OIDC'de Yönlendirme URI'lerini Anlamak ve Yetkilendirme Kodu Akışı

Yönlendirme URI'sine daha yakından bakalım çünkü bu uygulama geliştiricileri ve sistem yöneticileri için kritik öneme sahiptir.

Charles
Charles
Developer

Arka Plan

Önceki bir gönderide (PKCE'nin yetkilendirme kodu akışını nasıl koruduğunu inceledik), OIDC'deki Kod Değişimi için Proof Key (PKCE) akışına daldık ve neden tek sayfalık web uygulamaları ve yerel mobil uygulamalar arasında yaygın kabul gördüğünü araştırdık. Ayrıca bir Expo güvenlik açığı hakkında yüzlerce çevrimiçi servisi etkileyen çünkü yönlendirme URI'sinin yanlış ele alınmasından bahsetmiştik.

Bu iki makalede de redirect URI denildi ve güvenlik için elzemdir. Peki tam olarak nedir? Bunu Logto'da nasıl düzgün bir şekilde ele alabiliriz?

Bugün, yönlendirme URI'sine daha yakından bir göz atalım çünkü uygulama geliştiricileri ve sistem yöneticileri için kritik öneme sahiptir.

Yetkilendirme kodu akışında yönlendirme URI'sini anlamak

Yetkilendirme Kodu Akışı içindeki önemli bir bileşen Yönlendirme URI'si olarak adlandırılır. Bu, kullanıcının kendisini başarılı bir şekilde doğruladıktan sonra yönlendirildiği URL'dir. Ayrıca kullanıcıya ait kimlik jetonu ve erişim jetonlarının teslim edildiği yerdir.

Yönlendirme URI'si, OIDC sunucusunda önceden kaydedilen URI'ler kümesinden biri olabilir. Logto Konsolu'nda, bir uygulama varlık (SPA veya yerel uygulama türü) oluşturmak veya mevcut olanı seçmek için “Uygulamalar”a gidin ve oluşturma kılavuzunda veya uygulama detayları sayfasında bir veya birden fazla yönlendirme URI'si ayarlayabilirsiniz.

yönlendirme-uri

Bir istemci uygulama bir oturum açma işlemi başlattığında, bir “yetkilendirme isteği” yapılır ve bu OIDC sunucusuna gerekli parametreleri, yönlendirme URI'si dahil, taşıyacaktır. OIDC sunucusu, yetkilendirme isteğinde alınan yönlendirme URI'sinin önceden kaydedilen yönlendirme URI'leri setiyle eşleşip eşleşmediğini kontrol edecektir. Eğer URI kayıtlı URI'lerden herhangi biriyle eşleşmezse, “invalid_redirect_uri” hatası fırlatılacaktır.

Gerçek hayattaki kullanım durumlarında, yaygın bir en iyi uygulama, dışarıdan doğrudan erişime izin veren bir router / derin bağlantı ile ilişkilendirilen özel bir “Geri Arama” sayfası beyan etmek ve bu bağlantıyı yönlendirme URI'si olarak kullanmaktır.

Bir tek sayfalık web uygulamanızın http://localhost:3000 üzerinde çalışan olduğunu varsayalım, o zaman genellikle yönlendirme URI'si http://localhost:3000/callback olarak beyan edilir.

Veya yerel bir mobil uygulama ise, o zaman yönlendirme URI derin bağlantısı genellikle özel bir şema ile başlar, örneğin com.company://myapp/callback

Bu kayıt süreci, yalnızca güvenilen ve önceden yetkilendirilmiş URI'lerin kabul edilmesini sağlayan koruyucu bir önlem olarak hareket eder. Geliştiriciler, farklı ortamlar ve kullanım durumları ile uyumluluk ve esneklik sağlamak üzere aynı uygulama için birden fazla yönlendirme URI'si belirleyebilirler.

Oturum açma geri çağrısını ele alma

OIDC sunucusu üzerinde başarılı bir şekilde oturum açıldığında uygulamanız “Geri Arama” sayfasına yönlendirildiğinde, OIDC sunucusu tarafından bir “code” dizgesi oluşturulacak ve URI parametresi aracılığıyla aktarılacaktır.

Ardından, uygulamanızda, kimlik jetonunu ve erişim jetonunu almak için şu işlemi “Geri Arama” sayfasında uygulayın:

  1. URI parametresinden “code” dizgesini alın
  2. Form url kodlanmış içerik olarak “code”u ve diğer gerekli parametreleri Token Uç Noktasına gönderen bir post isteği oluşturun.

İşte erişim jetonunu değiştirmek için POST isteğini oluşturan bir JavaScript örneği:

Logto SDK'larını kullanarak her şeyi basitleştirin

Logto SDK'ları belirli bir programlama dili veya çerçeve ile yazılmış geliştirme kitleridir, örneğin Logto React SDK, Next.js SDK ve Swift SDK. Bir SDK kullanmak sadece bir veya iki fonksiyon çağrısı yaparak işleri önemli ölçüde basitleştirebilir.

İşte Logto resmi React SDK'sını kullanarak bir React “Geri Arama” bileşeni örneği:

Tam React örnek projesi burada bulunabilir: https://github.com/logto-io/js/tree/master/packages/react-sample

Özet

Yetkilendirme kodu akışı ile OIDC'de Yönlendirme URI'lerini anlamak, kimlik doğrulama süreçlerinizi güvence altına almak ve optimize etmek için çok önemlidir. Güvenilir yönlendirme URI'leri kaydederek ve oturum açma geri çağrılarını etkin bir şekilde ele alarak, kullanıcılarınıza sorunsuz ve güvenli bir deneyim sunarken Logto SDK'larıyla geliştirme çabalarınızı basitleştirebilirsiniz.