Yeniden yönlendirme URI'si (yanıt URL'si) kısıtlamaları ve sınırlamaları
Yeniden yönlendirme URI'si veya yanıt URL'si, uygulama başarıyla yetkilendirildikten ve uygulamaya bir yetkilendirme kodu veya erişim belirteci verildikten sonra yetkilendirme sunucusunun kullanıcıyı göndereceği konumdur. Yetkilendirme sunucusu kodu veya belirteci yeniden yönlendirme URI'sine gönderir, dolayısıyla uygulama kaydı işlemi kapsamında doğru konuma kaydetmeniz önemlidir.
Microsoft Entra uygulama modeli, URI'leri yeniden yönlendirmek için şu kısıtlamaları belirtir:
Yeniden yönlendirme URI'leri düzeniyle
https
başlamalıdır. Localhost yeniden yönlendirme URI'leri için bazı özel durumlar vardır.Yeniden yönlendirme URI'leri büyük/küçük harfe duyarlıdır ve çalışan uygulamanızın URL yolu ile eşleşmelidir. Örneğin, uygulamanız yolunun
.../abc/response-oidc
bir parçası olarak içeriyorsa, yeniden yönlendirme URI'sinde belirtmeyin.../ABC/response-oidc
. Web tarayıcısı yolları büyük/küçük harfe duyarlı olarak ele aldığından, büyük/küçük harf eşleşmeyen.../ABC/response-oidc
URL'ye yönlendirildiğinde ile.../abc/response-oidc
ilişkili tanımlama bilgileri dışlanabilir.Yol kesimiyle yapılandırılmamış yeniden yönlendirme URI'leri yanıtta sondaki eğik çizgiyle ('
/
') döndürülür. Bu yalnızca yanıt modu veyafragment
olduğundaquery
geçerlidir.Örnekler:
https://contoso.com
olarak döndürülürhttps://contoso.com/
http://localhost:7071
olarak döndürülürhttp://localhost:7071/
Yol kesimi içeren yeniden yönlendirme URI'leri yanıtta sondaki eğik çizgiyle eklenmez .
Örnekler:
https://contoso.com/abc
olarak döndürülürhttps://contoso.com/abc
https://contoso.com/abc/response-oidc
olarak döndürülürhttps://contoso.com/abc/response-oidc
Yeniden yönlendirme URI'leri özel karakterleri desteklemez -
! $ ' ( ) , ;
En fazla yeniden yönlendirme URI'leri sayısı
Bu tabloda, Microsoft kimlik platformu bir uygulama kaydına ekleyebileceğiniz maksimum yeniden yönlendirme URI'leri sayısı gösterilir.
Oturum açan hesaplar | En fazla yeniden yönlendirme URI'leri sayısı | Açıklama |
---|---|---|
Herhangi bir kuruluşun Microsoft Entra kiracısında Microsoft iş veya okul hesapları | Kategori 256 | signInAudience uygulama bildirimindeki alanı AzureADMyOrg veya AzureADMultipleOrgs olarak ayarlanmıştır |
Kişisel Microsoft hesapları, iş ve okul hesapları | Kategori 100 | signInAudience uygulama bildirimindeki alanı AzureADandPersonalMicrosoftAccount olarak ayarlandı |
Yeniden yönlendirme URI'lerinin en fazla sayısı güvenlik nedeniyle artırılamaz. Senaryonuz izin verilen en yüksek sınırdan daha fazla yeniden yönlendirme URI'sine ihtiyaç duyuyorsa çözüm olarak aşağıdaki durum parametresi yaklaşımını göz önünde bulundurun.
En fazla URI uzunluğu
Uygulama kaydına eklediğiniz her yeniden yönlendirme URI'sinde en fazla 256 karakter kullanabilirsiniz.
Uygulamadaki URI'leri hizmet sorumlusu nesneleriyle karşılaştırmalı olarak yeniden yönlendirme
- Yeniden yönlendirme URI'lerini her zaman yalnızca uygulama nesnesine ekleyin.
- Yeniden yönlendirme URI'si değerlerini hizmet sorumlusuna eklemeyin çünkü hizmet sorumlusu nesnesi uygulama nesnesiyle eşitlendiğinde bu değerler kaldırılabilir. İki nesne arasında eşitlemeyi tetikleyen herhangi bir güncelleştirme işlemi bu duruma yol açabilir.
Yeniden yönlendirme URI'lerinde sorgu parametresi desteği
Sorgu parametrelerine, yalnızca iş veya okul hesabı olan kullanıcılar için yeniden yönlendirme URI'lerinde izin verilir.
Outlook.com (Hotmail), Messenger, OneDrive, MSN, Xbox Live veya Microsoft 365 gibi kişisel Microsoft hesaplarına sahip kullanıcılarla oturum açmak üzere yapılandırılmış herhangi bir uygulama kaydı için yeniden yönlendirme URI'lerinde sorgu parametrelerine izin verilmez .
Uygulama kaydı oturum açma hedef kitlesi | Yeniden yönlendirme URI'sinde sorgu parametrelerini destekler |
---|---|
Yalnızca bu kuruluş dizinindeki hesaplar (yalnızca Contoso - Tek kiracı) | |
Herhangi bir kuruluş dizinindeki hesaplar (Herhangi bir Microsoft Entra dizini - Çok kiracılı) | |
Herhangi bir kuruluş dizinindeki hesaplar (Herhangi bir Microsoft Entra dizini - Çok Kiracılı) ve kişisel Microsoft hesapları (örneğin Skype, Xbox) | |
Yalnızca kişisel Microsoft hesapları |
Desteklenen düzenler
HTTPS: HTTPS şeması (https://
) tüm HTTP tabanlı yeniden yönlendirme URI'leri için desteklenir.
HTTP: HTTP şeması (http://
) yalnızca localhost URI'leri için desteklenir ve yalnızca etkin yerel uygulama geliştirme ve test sırasında kullanılmalıdır.
Örnek yeniden yönlendirme URI'si | Geçerlilik |
---|---|
https://contoso.com |
Geçerli |
https://contoso.com/abc/response-oidc |
Geçerli |
https://localhost |
Geçerli |
http://contoso.com/abc/response-oidc |
Geçersiz |
http://localhost |
Geçerli |
http://localhost/abc |
Geçerli |
Localhost özel durumları
RFC 8252 bölümleri 8.3 ve 7.3'e göre , "geri döngü" veya "localhost" yeniden yönlendirme URI'leri iki özel nokta ile birlikte gelir:
http
Yeniden yönlendirme hiçbir zaman cihazdan ayrılmadığından URI düzenleri kabul edilebilir. Bu nedenle, bu URI'lerin her ikisi de kabul edilebilir:http://localhost/myApp
https://localhost/myApp
- Genellikle yerel uygulamalar için gereken kısa ömürlü bağlantı noktası aralıkları nedeniyle, bağlantı noktası bileşeni (örneğin,
:5001
veya:443
) yeniden yönlendirme URI'sini eşleştirme amacıyla yoksayılır. Sonuç olarak, bu URI'lerin tümü eşdeğer kabul edilir:http://localhost/MyApp
http://localhost:1234/MyApp
http://localhost:5000/MyApp
http://localhost:8080/MyApp
Geliştirme açısından bakıldığında, bu birkaç anlama gelir:
Yalnızca bağlantı noktasının farklı olduğu birden çok yeniden yönlendirme URI'sini kaydetmeyin. Oturum açma sunucusu rastgele bir tane seçer ve bu yeniden yönlendirme URI'si ile ilişkili davranışı kullanır (örneğin, -,
native
- veyaspa
-type yeniden yönlendirmesiweb
olsun).Bu, özellikle aynı uygulama kaydında farklı kimlik doğrulama akışları kullanmak istediğinizde (örneğin hem yetkilendirme kodu verme hem de örtük akış) önemlidir. Her yeniden yönlendirme URI'siyle doğru yanıt davranışını ilişkilendirmek için oturum açma sunucusunun yeniden yönlendirme URI'lerini ayırt edebilmesi gerekir ve yalnızca bağlantı noktası farklılık gösterdiğinde bunu yapamaz.
Geliştirme sırasında farklı akışları test etmek üzere localhost'a birden çok yeniden yönlendirme URI'si kaydetmek için, bunları URI'nin yol bileşenini kullanarak ayırt edin. Örneğin,
http://localhost/MyWebApp
ile eşleşmiyorhttp://localhost/MyNativeApp
.IPv6 geri döngü adresi (
[::1]
) şu anda desteklenmiyor.
Localhost yerine 127.0.0.1'i tercih edin
Uygulamanızın yanlış yapılandırılmış güvenlik duvarları veya yeniden adlandırılmış ağ arabirimleri tarafından bozulmasını önlemek için, yerine yeniden yönlendirme URI'nizde localhost
IP değişmez geri döngü adresini 127.0.0.1
kullanın. Örneğin, https://127.0.0.1
.
Ancak, Azure portalında Yeniden Yönlendirme URI'leri metin kutusunu kullanarak şemayı kullanan bir geri döngü tabanlı yeniden yönlendirme URI'sini http
ekleyemezsiniz:
Şemayı http
geri döngü adresiyle kullanan bir yeniden yönlendirme URI'sini 127.0.0.1
eklemek için, şu anda uygulama bildiriminde replyUrlsWithType özniteliğini değiştirmeniz gerekir.
Yeniden yönlendirme URI'lerinde joker karakterlere yönelik kısıtlamalar
Gibi https://*.contoso.com
joker karakter URI'leri kullanışlı görünebilir, ancak güvenlik etkilerinden dolayı kaçınılmalıdır. OAuth 2.0 belirtimine (RFC 6749'un bölüm 3.1.2) göre yeniden yönlendirme uç noktası URI'sinin mutlak bir URI olması gerekir. Bu nedenle, yapılandırılan joker karakter URI'sinin yeniden yönlendirme URI'sine eşleştiğinde, yeniden yönlendirme URI'sindeki sorgu dizeleri ve parçaları çıkarılır.
Kişisel Microsoft hesaplarında ve iş veya okul hesaplarında oturum açmak üzere yapılandırılmış uygulama kayıtlarında joker karakter URI'leri şu anda desteklenmiyor. Ancak, kuruluşun Microsoft Entra kiracısında yalnızca iş veya okul hesaplarında oturum açmak üzere yapılandırılmış uygulamalar için joker karakter URI'lerine izin verilir.
İş veya okul hesaplarında oturum açabilen uygulama kayıtlarına joker karakterler içeren yeniden yönlendirme URI'leri eklemek için Azure portalındaki Uygulama kayıtları uygulama bildirimi düzenleyicisini kullanın. Bildirim düzenleyicisini kullanarak joker karakterle yeniden yönlendirme URI'sini ayarlamak mümkün olsa da RFC 6749'un 3.1.2 bölümüne bağlı kalmanızı kesinlikle öneririz. ve yalnızca mutlak URI'leri kullanın.
Senaryonuz izin verilen en yüksek sınırdan daha fazla yeniden yönlendirme URI'sine ihtiyaç duyuyorsa joker karakter yeniden yönlendirme URI'sini eklemek yerine aşağıdaki durum parametresi yaklaşımını göz önünde bulundurun.
Durum parametresi kullanma
Birkaç alt etki alanınız varsa ve senaryonuz başarılı kimlik doğrulamasından sonra kullanıcıları başlatıldıkları sayfaya yönlendirmenizi gerektiriyorsa, durum parametresi kullanmak yararlı olabilir.
Bu yaklaşımda:
- Yetkilendirme uç noktasından aldığınız güvenlik belirteçlerini işlemek için uygulama başına "paylaşılan" yeniden yönlendirme URI'sini oluşturun.
- Uygulamanız, durum parametresinde uygulamaya özgü parametreler (kullanıcının kaynaklandığı alt etki alanı URL'si veya marka bilgileri gibi herhangi bir şey) gönderebilir. Durum parametresi kullanırken, RFC 6749'un 10.12. bölümünde belirtildiği gibi CSRF korumasına karşı koruma sağlayın.
- Uygulamaya özgü parametreler, uygulamanın kullanıcı için doğru deneyimi işlemesi için gereken tüm bilgileri, yani uygun uygulama durumunu oluşturmasını içerir. Microsoft Entra yetkilendirme uç noktası HTML'yi durum parametresinden kaldırır, bu nedenle bu parametreye HTML içeriği geçirmediğinizden emin olun.
- Microsoft Entra Kimliği "paylaşılan" yeniden yönlendirme URI'sine yanıt gönderdiğinde, durum parametresini uygulamaya geri gönderir.
- Uygulama daha sonra kullanıcıyı daha fazla göndereceği URL'yi belirlemek için durum parametresindeki değerini kullanabilir. CSRF koruması için doğrulama yaptığınızdan emin olun.
Uyarı
Bu yaklaşım, güvenliği aşılmış bir istemcinin durum parametresinde gönderilen ek parametreleri değiştirmesine olanak tanır ve böylece kullanıcıyı RFC 6819'da açıklanan açık yeniden yönlendirici tehdidi olan farklı bir URL'ye yönlendirir. Bu nedenle, istemcinin durumu şifreleyerek veya yeniden yönlendirme URI'sindeki etki alanı adını belirteçle doğrulama gibi başka bir yolla doğrulayarak bu parametreleri koruması gerekir.
Sonraki adımlar
Uygulama kaydı Uygulama bildirimi hakkında bilgi edinin.