Átirányítási URI (válasz URL-cím) korlátozásai és korlátozásai

A redirect URI, or reply URL, is the location where the authorization server sends the user once the app has been successfully authorized and granted an authorization code or access token. The authorization server sends the code or token to the redirect URI, so it's important you register the correct location as part of the app registration process.

A Microsoft Entra alkalmazásmodell az átirányítási URI-kra vonatkozó korlátozásokat határozza meg:

  • Az átirányítási URI-knak a sémával httpskell kezdődniük. Vannak kivételek a localhost átirányítási URI-k esetében.

  • Az átirányítási URI-k megkülönböztetik a kis- és nagybetűket, és meg kell egyeznie a futó alkalmazás URL-elérési útjának esetével. Ha például az alkalmazás az elérési út .../abc/response-oidcrészeként szerepel, ne adja meg .../ABC/response-oidc az átirányítási URI-t. Mivel a webböngésző megkülönbözteti a kis- és nagybetűket, a kis- és nagybetűkkel társított .../abc/response-oidc cookie-k kizárhatók, ha a kis- és nagybetűket nem egyező URL-címre irányítják .../ABC/response-oidc át.

  • Az útvonalszegmenssel nem konfigurált átirányítási URI-k záró perjellel ('/) jelennek meg a válaszban. Ez csak akkor érvényes, ha a válasz mód vagy fragmenta query .

    Examples:

    • https://contoso.com a visszaadott https://contoso.com/
    • http://localhost:7071 a visszaadott http://localhost:7071/
  • Az útvonalszegmenseket tartalmazó átirányítási URI-k nem lesznek hozzáfűzve záró perjellel a válaszban.

    Examples:

    • https://contoso.com/abc a visszaadott https://contoso.com/abc
    • https://contoso.com/abc/response-oidc a visszaadott https://contoso.com/abc/response-oidc
  • Az átirányítási URI-k nem támogatják a speciális karaktereket – ! $ ' ( ) , ;

Átirányítási URI-k maximális száma

Ez a táblázat a Microsoft Identitásplatform alkalmazásregisztrációhoz hozzáadható átirányítási URI-k maximális számát mutatja.

Bejelentkezett fiókok Átirányítási URI-k maximális száma Leírás
Microsoft munkahelyi vagy iskolai fiókok bármely szervezet Microsoft Entra-bérlőjében 256 signInAudienceaz alkalmazásjegyzék mezője az AzureADMyOrg vagy az AzureADMultipleOrgs értékre van állítva
Személyes Microsoft-fiókok, munkahelyi és iskolai fiókok 100 signInAudience az alkalmazásjegyzék mezője az AzureADandPersonalMicrosoftAccount értékre van állítva

Az átirányítási URI-k maximális száma biztonsági okokból nem állítható fel. Ha a forgatókönyv több átirányítási URI-t igényel, mint a megengedett maximális korlát, a megoldásként tekintse az alábbi állapotparaméter-megközelítést .

URI maximális hossza

Az alkalmazásregisztrációhoz hozzáadott átirányítási URI-khoz legfeljebb 256 karakter használható.

Átirányítási URI-k az alkalmazás és a szolgáltatásnév objektumaiban

  • Always add redirect URIs to the application object only.
  • Do not add redirect URI values to a service principal because these values could be removed when the service principal object syncs with the application object. This could happen due to any update operation which triggers a sync between the two objects.

Lekérdezési paraméter támogatása átirányítási URI-kban

A lekérdezési paraméterek az átirányítási URI-kban engedélyezettek olyan alkalmazások esetében, amelyek csak munkahelyi vagy iskolai fiókkal jelentkeznek be.

A lekérdezési paraméterek nem engedélyezettek az átirányítási URI-kban olyan alkalmazásregisztrációk esetében, amelyek úgy vannak konfigurálva, hogy személyes Microsoft-fiókokkal, például Outlook.com (Hotmail), Messengerrel, OneDrive-tal, MSN-szel, Xbox Live-tal vagy Microsoft 365-kel bejelentkező felhasználókba jelentkezzenek be.

Alkalmazásregisztrációs bejelentkezési célközönség Támogatja a lekérdezési paramétereket az átirányítási URI-ban
Csak ebben a szervezeti címtárban lévő fiókok (csak Contoso – Egyetlen bérlő)
Bármely szervezeti címtárban lévő fiókok (Bármely Microsoft Entra-címtár – Több-bérlős)
Fiókok bármely szervezeti címtárban (Bármely Microsoft Entra címtár – Több-bérlős) és személyes Microsoft-fiókokban (pl. Skype, Xbox)
Csak személyes Microsoft-fiókok

Támogatott sémák

HTTPS: A HTTPS-séma (https://) minden HTTP-alapú átirányítási URI-hoz támogatott.

HTTP: A HTTP-séma (http://) csak a localhost URI-k esetében támogatott, és csak az aktív helyi alkalmazásfejlesztés és -tesztelés során használható.

Példa átirányítási URI-ra Validity
https://contoso.com Érvényes
https://contoso.com/abc/response-oidc Érvényes
https://localhost Érvényes
http://contoso.com/abc/response-oidc Érvénytelen
http://localhost Érvényes
http://localhost/abc Érvényes

Localhost-kivételek

Az RFC 8252 8.3. és 7.3. szakasza szerint a "visszacsatolás" vagy a "localhost" átirányítási URI-k két különleges szemponttal járnak:

  1. http Az URI-sémák elfogadhatók, mert az átirányítás soha nem hagyja el az eszközt. Ezért mindkét URI elfogadható:
    • http://localhost/myApp
    • https://localhost/myApp
  2. A natív alkalmazások által gyakran megkövetelt rövid élettartamú porttartományok miatt a portösszetevőt (például :5001:443) figyelmen kívül hagyja a rendszer az átirányítási URI-nak való megfelelés érdekében. Ennek eredményeképpen az összes ilyen URI egyenértékűnek minősül:
    • http://localhost/MyApp
    • http://localhost:1234/MyApp
    • http://localhost:5000/MyApp
    • http://localhost:8080/MyApp

Fejlesztési szempontból ez néhány dolgot jelent:

  • Ne regisztráljon több átirányítási URI-t, ahol csak a port különbözik. A bejelentkezési kiszolgáló tetszőlegesen kiválaszt egyet, és az átirányítási URI-hoz társított viselkedést használja (például azt, hogy -, -, native-vagy spa-type átirányításról van-e webszó).

    Ez különösen akkor fontos, ha különböző hitelesítési folyamatokat szeretne használni ugyanabban az alkalmazásregisztrációban, például az engedélyezési kód megadását és az implicit folyamatot. Ahhoz, hogy a megfelelő válasz viselkedést társítsa az egyes átirányítási URI-khoz, a bejelentkezési kiszolgálónak képesnek kell lennie különbséget tenni az átirányítási URI-k között, és nem teheti meg, ha csak a port különbözik.

  • Ha több átirányítási URI-t szeretne regisztrálni a localhoston a különböző folyamatok teszteléséhez a fejlesztés során, különböztetje meg őket az URI elérési út összetevőjének használatával. Például http://localhost/MyWebApp nem egyezik.http://localhost/MyNativeApp

  • Az IPv6 visszacsatolási címe ([::1]) jelenleg nem támogatott.

A 127.0.0.1 előnyben részesítve a localhostot

Ha meg szeretné akadályozni, hogy az alkalmazás hibásan konfigurált tűzfalak vagy átnevezett hálózati adapterek miatt megszakadjon, használja az IP-konstans visszacsatolási címet 127.0.0.1 az átirányítási URI-ban ahelyett localhost, hogy . For example, https://127.0.0.1.

Az Azure Portal Átirányítási URI-szövegmezője azonban nem használható visszacsatolásalapú átirányítási URI hozzáadásához, amely a sémát http használja:

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

Ha olyan átirányítási URI-t szeretne hozzáadni, amely a visszacsatolási címmel használja a http127.0.0.1 sémát, jelenleg módosítania kell a replyUrlsWithType attribútumot az alkalmazásjegyzékben.

Helyettesítő karakterek korlátozásai átirányítási URI-kban

A helyettesítő karakterek URI-jai kényelmesnek https://*.contoso.com tűnhetnek, de a biztonsági következmények miatt kerülni kell. Az OAuth 2.0 specifikációja (az RFC 6749 3.1.2 szakasza) szerint az átirányítási végpont URI-jának abszolút URI-nak kell lennie. Ha egy konfigurált helyettesítő karakter URI-ja megfelel egy átirányítási URI-nak, a lekérdezési sztringek és a töredékek az átirányítási URI-ban elvesznek.

A helyettesítő karakterek URI-jai jelenleg nem támogatottak a személyes Microsoft-fiókokba, illetve munkahelyi vagy iskolai fiókokba való bejelentkezésre konfigurált alkalmazásregisztrációkban. Helyettesítő URI-k azonban engedélyezettek olyan alkalmazások esetében, amelyek úgy vannak konfigurálva, hogy csak munkahelyi vagy iskolai fiókokat jelentkezzenek be a szervezet Microsoft Entra-bérlőjében.

Ha a munkahelyi vagy iskolai fiókokba bejelentkező alkalmazásregisztrációkhoz helyettesítő karaktereket tartalmazó átirányítási URI-kat szeretne hozzáadni, használja az alkalmazásjegyzék-szerkesztőt Alkalmazásregisztrációk az Azure Portalon. Bár a jegyzékszerkesztő használatával lehetőség van átirányítási URI beállítására helyettesítő karakterrel, javasoljuk, hogy tartsa be az RFC 6749 3.1.2 szakaszát. és csak abszolút URI-kat használjon.

Ha a forgatókönyv több átirányítási URI-t igényel, mint a megengedett maximális korlát, fontolja meg az alábbi állapotparaméter-megközelítést a helyettesítő karakterek átirányítási URI-jának hozzáadása helyett.

Állapotparaméter használata

Ha több altartománya van, és a forgatókönyv megköveteli, hogy sikeres hitelesítés esetén a felhasználókat arra az oldalra irányítsa át, ahonnan elindultak, az állapotparaméter használata hasznos lehet.

Ebben a megközelítésben:

  1. Hozzon létre egy "megosztott" átirányítási URI-t alkalmazásonként az engedélyezési végponttól kapott biztonsági jogkivonatok feldolgozásához.
  2. Az alkalmazás alkalmazásspecifikus paramétereket (például az altartomány URL-címét, ahonnan a felhasználó származik, vagy bármilyen, a márkajelzéshez hasonló információt) küldhet az állapotparaméterben. Állapotparaméter használata esetén az RFC 6749 10.12 szakaszában megadott CSRF-védelemmel szemben kell védekezni.
  3. Az alkalmazásspecifikus paraméterek tartalmazzák az alkalmazáshoz szükséges összes információt a felhasználó megfelelő felhasználói élményének megjelenítéséhez, azaz a megfelelő alkalmazásállapot létrehozásához. A Microsoft Entra engedélyezési végpontja eltávolítja a HTML-t az állapotparaméterből, ezért győződjön meg arról, hogy nem ad át HTML-tartalmat ebben a paraméterben.
  4. Amikor a Microsoft Entra ID választ küld a "megosztott" átirányítási URI-nak, az állapotparamétert visszaküldi az alkalmazásnak.
  5. Az alkalmazás ezután az állapotparaméter értékével meghatározhatja, hogy melyik URL-címre küldje tovább a felhasználót. Győződjön meg arról, hogy érvényesíti a CSRF-védelmet.

Figyelmeztetés

Ez a módszer lehetővé teszi, hogy a sérült ügyfél módosítsa az állapotparaméterben küldött további paramétereket, ezáltal átirányítja a felhasználót egy másik URL-címre, amely az RFC 6819-ben leírt nyílt átirányítási fenyegetés . Ezért az ügyfélnek meg kell védenie ezeket a paramétereket az állapot titkosításával vagy más módon történő ellenőrzésével, például a tartománynévnek az átirányítási URI-ban való érvényesítésével a jogkivonattal szemben.

További lépések

Tudnivalók az alkalmazásregisztrációs alkalmazásjegyzékről.