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 httpsbaş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-oidcbir 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 veya fragmentolduğunda query geçerlidir.

    Örnekler:

    • https://contoso.com olarak döndürülür https://contoso.com/
    • http://localhost:7071 olarak döndürülür http://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ür https://contoso.com/abc
    • https://contoso.com/abc/response-oidc olarak döndürülür https://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 signInAudienceuygulama bildirimindeki alanı AzureADMyOrg veya AzureADMultipleOrgs olarak ayarlanmıştır
Kişisel Microsoft hesapları, iş ve okul hesapları Kategori 100 signInAudienceuygulama 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:

  1. 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
  2. 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- veya spa-type yeniden yönlendirmesi webolsun).

    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şmiyor http://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 localhostIP 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:

Error dialog in Azure portal showing disallowed http-based loopback redirect URI

Ş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:

  1. 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.
  2. 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.
  3. 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.
  4. Microsoft Entra Kimliği "paylaşılan" yeniden yönlendirme URI'sine yanıt gönderdiğinde, durum parametresini uygulamaya geri gönderir.
  5. 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.