Á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:
- OAuth 2.0 hitelesítési kódfolyamat
- OAuth 2.0-ügyfél hitelesítő adatainak folyamata
- OAuth 2.0 implicit engedélyezési folyamat
- OpenID Connect
- Egyszeri bejelentkezéses SAML-protokoll
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.
- Natív hitelesítés
- OAuth 2.0 eszközkód-folyamat
- OAuth 2.0 A folyamat nevében
- OAuth 2.0 Erőforrás-tulajdonosi jelszó hitelesítőadat-folyamata
- Windows integrált hitelesítési folyamat
- SAML 2.0 identitásszolgáltató (IDP) Egyszeri bejelentkezés
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
https
kell 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-oidc
ré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.
- Ha az alkalmazás az elérési ú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 vagyfragment
aquery
.Példák:
https://contoso.com
a visszaadotthttps://contoso.com/
http://localhost:7071
a visszaadotthttp://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 visszaadotthttps://contoso.com/abc
https://contoso.com/abc/response-oidc
a visszaadotthttps://contoso.com/abc/response-oidc
Az átirányítási URI-k nem támogatják a speciális karaktereket –
! $ ' ( ) , ;
Az átirányítási URI-k nem támogatják a nemzetközi tartományneveket
Á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 | signInAudience az 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:
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
- 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
-vagyspa
-type átirányításról van-eweb
szó).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:
Ha olyan átirányítási URI-t szeretne hozzáadni, amely a visszacsatolási címmel használja a http
127.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:
- 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.
- 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.
- 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.
- 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.
- 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.