Türkçe
  • redirect uri
  • callback
  • authorization code
  • code flow
  • oidc
  • pkce

OpenID Connect (OIDC) içinde Yönlendirme URI'si ve Yetkilendirme Kodu Akışını Anlamak

OIDC kimlik doğrulama sürecinde kritik bir güvenlik bileşeni olan yönlendirme URI'sine daha yakından bakalım.

Charles
Charles
Developer

Yönlendirme URI'si Nedir?

Yönlendirme URI'si, diğer adıyla Cevap URL'si, OIDC kimlik doğrulama sürecinde kritik bir güvenlik bileşenidir. Kullanıcıların OIDC sağlayıcısı üzerinden başarıyla oturum açtıktan sonra gönderildikleri URL'yi belirtir. Daha da önemlisi, token elde etmek için gerekli olan yetkilendirme kodunu aldığınız yerdir.

Daha fazla detay için Auth Wiki > Yönlendirme URI'si bölümüne göz atın.

Yetkilendirme Kodu Akışı Nedir?

Yetkilendirme Kodu Akışı (OAuth 2.0 RFC 6749, bölüm 4.1'de tanımlandığı gibi), OIDC'de temel bir kimlik doğrulama yöntemidir. Yetkilendirme kodunu bir erişim token'ı ve isteğe bağlı olarak yenileme token'ı ile değiş tokuş etmeyi içerir. Bu akış, istemci sırrını güvenli bir şekilde saklayabilen sunucu tarafı web uygulamaları gibi uygulamalar için uygundur.

Daha fazla detay için Auth Wiki > Yetkilendirme Kodu Akışı bölümüne göz atın.

Yetkilendirme Kodu Akışında Yönlendirme URI'si Nasıl Çalışır?

Yetkilendirme Kodu Akışı'nda, Yönlendirme URI'si, OIDC sağlayıcısının kullanıcıyı başarıyla kimlik doğruladıktan sonra yetkilendirme kodunu gönderdiği noktadır. Güvenliği sağlamak ve yetkisiz yönlendirmeleri önlemek için OIDC sağlayıcısıyla önceden kaydedilmelidir.

İşte Logto Konsolu üzerinde bir Yönlendirme URI'si kaydetme şekli: redirect-uri

Bir oturum açma işlemini başlatırken:

  1. Yetkilendirme isteği: Uygulamanız kullanıcıyı OIDC sağlayıcısının yetkilendirme uç noktasına yönlendirir ve client_id, response_type, scope ve redirect_uri gibi parametreler dahil edilir.
  2. Kullanıcı kimlik doğrulama: Kullanıcı, OIDC sağlayıcısıyla kimlik doğrular.
  3. Yetkilendirme kodu teslimi: Başarılı bir kimlik doğrulamanın ardından OIDC sağlayıcısı, kullanıcıyı yetkilendirme kodunu sorgu parametresi olarak içeren belirtilen redirect_uri'ye yönlendirir.

OIDC sağlayıcısı, redirect_uriyi önceden kaydedilmiş URI'lerin listesine karşı doğrular. Eğer bir uyumsuzluk varsa, invalid_redirect_uri hatası döndürülecektir ve bu, token'ların yetkisiz uç noktalara gönderilmesini önleyerek güvenliği artırır.

Yönlendirme URI'leri için En İyi Uygulamalar

Gerçek dünya kullanım durumlarında, yaygın bir en iyi uygulama, yönlendirme URI'si olarak kullanılacak dışarıdan doğrudan erişim izni sağlayan bir "Callback" sayfası ilan etmek ve bir yönlendirici/derin bağlantı tanımlamaktır.

s://my-app.com üzerinde çalışan tek sayfalık bir web uygulamanız olduğunu varsayarsak, genellikle yönlendirme URI'si https://my-app.com/callback olarak ilan edilir.

Eğer bir yerel mobil uygulamaysa, yönlendirme URI'si genellikle özel bir şema ile başlar, örneğin com.company://myapp/callback

Diğer en iyi uygulamalar şunları içerir:

  • Joker karakter kullanmaktan kaçının: Yönlendirme URI'lerinde joker karakter desenleri kullanmayın. Yetkisiz erişimi önlemek için açıkça izin verilen tüm URI'leri listeleyin.
  • Tam olarak eşleşsin: Yönlendirme URI'sinin OIDC sağlayıcısında kaydedilenle tam olarak eşleştiğinden emin olun. Hatta bir son eğik çizgi bile uyumsuzluğa neden olabilir.

Oturum açma geri dönüşünü işleme

Yönlendirme URI'sine geri gönderilen yetkilendirme kodunu işlemek için şu adımları izleyin:

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

  2. Yetkilendirme kodunu token'larla değiş tokuş edin: OIDC sağlayıcısının token uç noktasına bir POST isteği oluşturun, içerik:

    • client_id: OIDC sağlayıcısındaki uygulamanızın kimliği
    • code: Yönlendirme URI'sinden alınan yetkilendirme kodu
    • code_verifier: İstemci üzerinde oluşturulan rastgele bir dizi
    • redirect_uri: Yetkilendirme isteğinde kullanılan aynı URI
    • grant_type: Hibe türü, genellikle authorization_code

JavaScript'te örnek token değişim isteği

Logto SDK'larından yararlanarak kod değişim sürecini basitleştirin

Logto SDK'ları, belirli bir programlama dili veya çerçevede yazılmış geliştirme kitleridir, örneğin Logto React SDK, Next.js SDK ve Swift SDK. Bir SDK kullanarak yalnızca bir veya iki fonksiyon çağırarak işleri büyük ölçüde basitleştirebilirsiniz.

İşte Logto resmi React SDK'sını kullanan bir React "Callback" bileşeni örneği:

SDK entegrasyon rehberlerini Logto Dokümanları > Hızlı başlangıçlar bölümünde bulabilirsiniz.

Özet: OIDC'de Yönlendirme URI'lerini Neden Bilmeniz Gerekiyor

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'lerini kaydedip oturum açma geri dönüşlerini verimli bir şekilde ele alarak, kullanıcılarınıza kesintisiz ve güvenli bir deneyim sunabilir ve geliştirme çabalarınızı Logto SDK'ları ile basitleştirebilirsiniz.