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

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.

Charles
Charles
Developer

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: redirect-uri

Bir oturum açma başlatırken:

  1. Yetkilendirme isteği: Uygulamanız, client_id, response_type, scope ve redirect_uri gibi parametreleri içeren OIDC sağlayıcının yetkilendirme uç noktasına kullanıcıyı yönlendirir.
  2. Kullanıcı kimlik doğrulaması: Kullanıcı, OIDC sağlayıcısı ile kimlik doğrular.
  3. Yetkilendirme kodu teslimatı: Başarılı kimlik doğrulama sonrasında, OIDC sağlayıcı kullanıcıyı belirtilen redirect_uriye yönlendirir ve bir sorgu parametresi olarak bir yetkilendirme kodu ekler.

OIDC sağlayıcı, redirect_uriyi ö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_urinize döndürülen yetkilendirme kodunu yönetmek için şu adımları izleyin:

  1. Yetkilendirme kodunu çıkar: Yönlendirme URI'sinin sorgu dizesinden kod parametresini alın.

  2. 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'si
    • code: Yönlendirme URI'sinden alınan yetkilendirme kodu
    • code_verifier: İstemcide oluşturulan rastgele bir dize
    • redirect_uri: Yetkilendirme isteğinde kullanılan aynı URI
    • grant_type: Genellikle authorization_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.