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.
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:
Bir oturum açma işlemini başlatırken:
- 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
veredirect_uri
gibi parametreler dahil edilir. - Kullanıcı kimlik doğrulama: Kullanıcı, OIDC sağlayıcısıyla kimlik doğrular.
- 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_uri
yi ö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:
-
Yetkilendirme kodunu çıkarın: Yönlendirme URI'sinin sorgu dizisinden kod parametresini alın.
-
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ğicode
: Yönlendirme URI'sinden alınan yetkilendirme koducode_verifier
: İstemci üzerinde oluşturulan rastgele bir diziredirect_uri
: Yetkilendirme isteğinde kullanılan aynı URIgrant_type
: Hibe türü, genellikleauthorization_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.