Megosztás a következőn keresztül:


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

A felhasználó bejelentkezéséhez az alkalmazásnak bejelentkezési kérelmet kell küldenie a Microsoft Entra engedélyezési végpontjának, paraméterként megadott átirányítási URI-val. Az átirányítási URI egy kritikus biztonsági funkció, amely biztosítja, hogy a Microsoft Entra hitelesítési kiszolgáló csak engedélyezési kódokat és hozzáférési jogkivonatokat küldjön a címzettnek. Ez a cikk az átirányítási URI-k funkcióit és korlátozásait ismerteti a Microsoft Identitásplatform.

Mi az átirányítási URI?

Az átirányítási URI vagy válasz URL-cím az a hely, ahol a Microsoft Entra hitelesítési kiszolgáló elküldi a felhasználót, miután sikeresen engedélyezte és megkapta a hozzáférési jogkivonatot. A felhasználó bejelentkezéséhez az alkalmazásnak egy paraméterként megadott átirányítási URI-val kell bejelentkezési kérelmet küldenie, így miután a felhasználó sikeresen bejelentkezett, a hitelesítési kiszolgáló átirányítja a felhasználót, és hozzáférési jogkivonatot ad ki a bejelentkezési kérelemben megadott átirányítási URI-nak.

Miért kell az átirányítási URI-okat hozzáadni egy alkalmazásregisztrációhoz?

Biztonsági okokból a hitelesítési kiszolgáló nem irányítja át a felhasználókat, és nem küld jogkivonatokat az alkalmazásregisztrációhoz nem hozzáadott URI-nak. A Microsoft Entra bejelentkezési kiszolgálói csak átirányítják a felhasználókat, és jogkivonatokat küldenek az alkalmazásregisztrációhoz hozzáadott URI-k átirányításához. Ha a bejelentkezési kérelemben megadott átirányítási URI nem egyezik az alkalmazásban hozzáadott átirányítási URI-kkal, hibaüzenetet kap, például AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application: .

A hibakódokkal kapcsolatos további információkért tekintse meg a Microsoft Entra hitelesítési és engedélyezési hibakódjait.

Adjon hozzá átirányítási URI-t egy alkalmazásregisztrációhoz?

Az alkalmazás által használt engedélyezési protokolltól függ, hogy hozzá kell-e adni átirányítási URI-t az alkalmazásregisztrációhoz. Ha az alkalmazás a következő engedélyezési protokollokat használja, hozzá kell adnia a megfelelő átirányítási URI-kat az alkalmazásregisztrációhoz:

Nem kell átirányítási URI-kat hozzáadnia az alkalmazásregisztrációhoz, ha az alkalmazás az alábbi engedélyezési protokollokat vagy funkciókat használja.

Melyik platformhoz kell hozzáadni az átirányítási URI-(ka)t?

Ha az éppen létrehozott alkalmazás egy vagy több átirányítási URI-t tartalmaz az alkalmazásregisztrációban, engedélyeznie kell egy nyilvános ügyfélfolyamat-konfigurációt. Az alábbi táblázatok útmutatást nyújtanak az átirányítási URI típusával kapcsolatban, amely a platformon alapul, amelyen az alkalmazást felépíti, vagy nem szabad hozzáadni.

Webalkalmazás átirányítási URI-konfigurációja

Az alkalmazás típusa Tipikus nyelvek/keretrendszerek Platform átirányítási URI hozzáadásához az alkalmazásregisztrációban
Egy hagyományos webalkalmazás, ahol az alkalmazáslogika nagy része a kiszolgálón történik Node.js, web, ASP.NET, Python, Java, ASP.NET Core, PHP, Ruby, Blazor Server Webes
Egyoldalas alkalmazás, amelyben a felhasználói felület logikájának nagy része a webkiszolgálóval kommunikáló webböngészőben történik, elsősorban webes API-k használatával JavaScript, Angular, React, Blazor WebAssembly, Vue.js Egyoldalas alkalmazás (SPA)

Mobil- és asztali alkalmazások átirányítási URI-konfigurációja

Az alkalmazás típusa Tipikus nyelvek/keretrendszerek Platform átirányítási URI hozzáadásához az alkalmazásregisztrációban
A táblázat alatt felsorolt forgatókönyveket nem tartalmazó iOS- vagy macOS-alkalmazás Swift, Objective-C, Xamarin IOS/macOS
Android-alkalmazás Java, Kotlin, Xamarin Android
Mobileszközön vagy asztali gépen natív módon futó alkalmazás Node.js elektron, Windows desktop, UWP, React Native, Xamarin, Android, iOS/macOS Mobil- és asztali alkalmazások

Ha az alábbi módszerek egyikével hoz létre iOS-alkalmazást, a Mobil és asztali alkalmazások platform használatával adjon hozzá átirányítási URI-t:

  • Örökölt SDK-kat (ADAL) használó iOS-alkalmazások
  • nyílt forráskód SDK-kat (AppAuth) használó iOS-alkalmazások
  • Nem támogatott többplatformos technológiát használó iOS-alkalmazások (Flutter)
  • Az OAuth-protokollokat közvetlenül megvalósító iOS-alkalmazások
  • többplatformos technológiát használó macOS-alkalmazások, amelyek nem támogatottak (Electron)

Átirányítási URI-t nem igénylő alkalmazások

Az alkalmazás típusa Példák/jegyzetek Társított OAuth-folyamat
Billentyűzet nélküli eszközökön futó alkalmazások Intelligens TV-n, IoT-eszközön vagy nyomtatón futó alkalmazások Az eszköz kódfolyamata további információ
A jelszavakat kezelő alkalmazások közvetlenül lépnek be, ahelyett, hogy átirányítanák a felhasználókat az Entra által üzemeltetett bejelentkezési webhelyre, és lehetővé teszi, hogy az Entra biztonságosan kezelje a felhasználói jelszót. Ezt a folyamatot csak akkor érdemes használni, ha más biztonságosabb folyamatok, például az engedélyezési kódfolyamatok nem életképesek, mert nem olyan biztonságosak. További információ az erőforrás-tulajdonos jelszóval kapcsolatos hitelesítő adatairól
Asztali vagy mobilalkalmazások windowsos vagy Windows-tartományhoz csatlakoztatott gépen (AD vagy Azure AD-hez csatlakoztatott) a Windows integrált hitelesítési folyamatával webfiók-kezelő helyett Asztali vagy mobilalkalmazás, amelyet automatikusan be kell jelentkezni, miután a felhasználó entrai hitelesítő adatokkal jelentkezett be a windowsos PC-rendszerbe További információ a Windows integrált hitelesítési folyamatról

Milyen korlátozások vonatkoznak a Microsoft Entra-alkalmazások átirányítási URI-jaira?

A Microsoft Entra alkalmazásmodell a következő korlátozásokat határozza meg az URI-k átirányítására:

  • Az átirányítási URI-knak a sémával httpskell kezdődniük, néhány localhost átirányítási URI-k kivételével.

  • 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.

    Példák:

    • Ha 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 .

    Példák:

    • 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.

    Példák:

    • 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 és URI-hosszak maximális száma

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 . Az alábbi 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 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

  • Mindig adjon hozzá átirányítási URI-kat csak az alkalmazásobjektumhoz.
  • Soha ne adjon hozzá átirányítási URI-értékeket a szolgáltatásnévhez, mert ezek az értékek eltávolíthatók, amikor a szolgáltatásnév objektum szinkronizálódik az alkalmazásobjektummal. Ez a két objektum közötti szinkronizálást aktiváló frissítési művelet miatt fordulhat elő.

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ókkal, például Outlook.com (Hotmail), Messenger, OneDrive, MSN, Xbox Live vagy Microsoft 365 fiókkal jelentkezzenek be a felhasználókba.

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)
Bármely szervezeti címtárban (Bármely Microsoft Entra címtárban – Több-bérlős) és személyes Microsoft-fiókokban (például Skype- és Xbox-fiókokban) lévő fiókok
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 Érvényesség
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 ezt 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 törjön fel, használja az IP-konstans visszacsatolási címet 127.0.0.1 az átirányítási URI-ban ahelyett localhost, hogy . Például: 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:

Hiba párbeszédpanel az Azure Portalon a letiltott http-alapú visszacsatolási átirányítási URI-t megjelenítő párbeszédpanelen

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 összes olyan információt, amely ahhoz szükséges, hogy az alkalmazás a felhasználó számára megfelelő felhasználói élményt jelenítsen meg, 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.

Következő lépések

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