Delen via


Overzicht en beperkingen van omleidings-URI (antwoord-URL)

Een omleidings-URI of antwoord-URL is de locatie waar de Microsoft Entra-autorisatieserver de gebruiker verzendt zodra deze is geautoriseerd en een autorisatiecode of toegangstoken heeft gekregen. Als u zich wilt aanmelden bij een gebruiker, moet uw app een aanmeldingsaanvraag verzenden naar het Microsoft Entra-autorisatie-eindpunt, met een omleidings-URI die is opgegeven als een parameter. De Microsoft Entra-verificatieserver controleert of de omleidings-URI die deze ontvangt, is toegevoegd aan de app-registratie. De omleidings-URI is een kritieke beveiligingsfunctie die ervoor zorgt dat autorisatiecodes en toegangstokens alleen naar de beoogde ontvanger worden verzonden. In dit artikel worden de functies en beperkingen van omleidings-URI's in het Microsoft Identity Platform beschreven.

Waarom een omleidings-URI moet worden toegevoegd aan een app-registratie

Om veiligheidsredenen stuurt de Microsoft Entra-autorisatieserver gebruikers niet om of verzendt deze tokens naar een URI die niet is toegevoegd aan de app-registratie. Entra-aanmeldingsservers leiden alleen gebruikers om en verzenden tokens naar omleidings-URI's die zijn toegevoegd aan een app-registratie. Als de omleidings-URI die is opgegeven in de aanmeldingsaanvraag niet overeenkomt met een van de omleidings-URI's die u in uw toepassing hebt toegevoegd, ontvangt u een foutbericht zoals AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application. Zie Microsoft Entra-verificatie- en autorisatiefoutcodes voor meer informatie over foutcodes.

Voor welke platforms is een omleidings-URI vereist?

Als de toepassing die u bouwt een of meerdere omleidings-URI's bevat in uw app-registratie, moet u een openbare clientstroomconfiguratie inschakelen. De volgende tabellen bevatten richtlijnen voor het type omleidings-URI dat u moet toevoegen of niet moet toevoegen op basis van het platform waarop u uw toepassing bouwt.

Omleidings-URI-configuratie van webtoepassing

Type van uw toepassing Typische talen/frameworks Platform om omleidings-URI toe te voegen in app-registratie
Een traditionele webtoepassing waarbij de meeste toepassingslogica wordt uitgevoerd op de server Node.js, web, ASP.NET, Python, Java, ASP.NET Core, PHP, Ruby, Blazor Server Web
Een toepassing met één pagina waarbij de meeste logica van de gebruikersinterface wordt uitgevoerd in een webbrowser die voornamelijk communiceert met de webserver met behulp van web-API's JavaScript, Angular, React, Blazor WebAssembly, Vue.js Toepassing met één pagina (SPA)

Omleidings-URI-configuratie voor mobiele toepassingen en bureaubladtoepassingen

Type van uw toepassing Typische talen/frameworks Platform om omleidings-URI toe te voegen in app-registratie
Een iOS- of macOS-app met uitzondering van de scenario's die onder deze tabel worden vermeld Swift, Objective-C, Xamarin IOS/macOS
Een Android-app Java, Kotlin, Xamarin Android
Een app die systeemeigen wordt uitgevoerd op een mobiel apparaat of desktopcomputer Node.js electron, Windows desktop, UWP, React Native, Xamarin, Android, iOS/macOS Mobiele toepassingen en desktoptoepassingen

Als u een iOS-app bouwt met een van de volgende methoden, gebruikt u het platform voor mobiele toepassingen en desktoptoepassingen om omleidings-URI toe te voegen:

  • iOS-apps met verouderde SDK's (ADAL)
  • iOS-apps die gebruikmaken van opensource-SDK's (AppAuth)
  • iOS-apps die cross-plat tech gebruiken, ondersteunen we niet (Flutter)
  • iOS-apps die onze OAuth-protocollen rechtstreeks implementeren
  • macOS-apps die gebruikmaken van cross-plat tech die we niet ondersteunen (Electron)

Toepassingen waarvoor geen omleidings-URI is vereist

Type toepassing Voorbeelden/notities Gekoppelde OAuth-stroom
Toepassingen die worden uitgevoerd op apparaten die geen toetsenbord hebben Toepassingen die worden uitgevoerd op smart tv, IoT-apparaat of een printer Meer informatie over apparaatcodestroom
Toepassingen die wachtwoorden verwerken die gebruikers rechtstreeks invoeren, in plaats van gebruikers om te leiden naar de gehoste aanmeldingswebsite van Entra en entra het gebruikerswachtwoord op een veilige manier laten afhandelen. U moet deze stroom alleen gebruiken wanneer andere veiligere stromen, zoals autorisatiecodestroom, niet haalbaar zijn, omdat deze niet zo veilig is. Referentiestroom voor wachtwoord van resource-eigenaar voor meer informatie
Desktop- of mobiele toepassingen die worden uitgevoerd op Windows of op een computer die is verbonden met een Windows-domein (AD of Azure AD) met behulp van geïntegreerde Windows-verificatiestroom in plaats van webaccountbeheer Een bureaublad- of mobiele toepassing die automatisch moet worden aangemeld nadat de gebruiker zich heeft aangemeld bij het Windows-pc-systeem met een Entra-referentie Windows Integrated Auth Flow voor meer informatie

Wat zijn de beperkingen van omleidings-URI's voor Microsoft Entra-toepassingen?

Het Microsoft Entra-toepassingsmodel bevat de volgende beperkingen voor omleidings-URI's:

  • Omleidings-URI's moeten beginnen met het schema https, met uitzonderingen voor sommige localhost-omleidings-URI's .

  • Omleidings-URI's zijn hoofdlettergevoelig en moeten overeenkomen met het geval van het URL-pad van uw actieve toepassing.

    Voorbeelden:

    • Als uw toepassing deel uitmaakt van het pad .../abc/response-oidc, moet u niet opgeven .../ABC/response-oidc in de omleidings-URI. Omdat de webbrowser paden als hoofdlettergevoelig behandelt, kunnen cookies die zijn gekoppeld aan .../abc/response-oidc worden uitgesloten als ze worden omgeleid naar de qua hoofdlettergebruik niet-overeenkomende URL .../ABC/response-oidc.
  • Omleidings-URI's die niet zijn geconfigureerd met een padsegment, worden geretourneerd met een afsluitende slash (''/) in het antwoord. Dit geldt alleen wanneer de reactiemodus of queryfragment.

    Voorbeelden:

    • https://contoso.com wordt geretourneerd als https://contoso.com/
    • http://localhost:7071 wordt geretourneerd als http://localhost:7071/
  • Omleidings-URI's die een padsegment bevatten, worden niet toegevoegd aan een afsluitende slash in het antwoord.

    Voorbeelden:

    • https://contoso.com/abc wordt geretourneerd als https://contoso.com/abc
    • https://contoso.com/abc/response-oidc wordt geretourneerd als https://contoso.com/abc/response-oidc
  • Omleidings-URI's bieden geen ondersteuning voor speciale tekens - ! $ ' ( ) , ;

Maximum aantal omleidings-URI's en URI-lengte

Het maximum aantal omleidings-URI's kan om veiligheidsredenen niet worden verhoogd. Als voor uw scenario meer omleidings-URI's zijn vereist dan de toegestane maximumlimiet, kunt u de volgende methode voor statusparameters overwegen als de oplossing. In de volgende tabel ziet u het maximum aantal omleidings-URI's dat u kunt toevoegen aan een app-registratie in het Microsoft Identity Platform.

Accounts die worden aangemeld Maximum aantal omleidings-URI's Beschrijving
Microsoft-werk- of schoolaccounts in de Microsoft Entra-tenant van een organisatie 256 signInAudiencehet veld in het toepassingsmanifest is ingesteld op AzureADMyOrg of AzureADMultipleOrgs
Persoonlijke Microsoft-accounts en werk- en schoolaccounts 100 signInAudience het veld in het toepassingsmanifest is ingesteld op AzureADandPersonalMicrosoftAccount

U kunt maximaal 256 tekens gebruiken voor elke omleidings-URI die u toevoegt aan een app-registratie.

Omleidings-URI's in toepassing versus service-principal-objecten

  • Voeg altijd omleidings-URI's toe aan het toepassingsobject.
  • Voeg nooit omleidings-URI-waarden toe aan een service-principal, omdat deze waarden kunnen worden verwijderd wanneer het object van de service-principal wordt gesynchroniseerd met het toepassingsobject. Dit kan gebeuren vanwege een updatebewerking die een synchronisatie tussen de twee objecten activeert.

Ondersteuning voor queryparameters in omleidings-URI's

Queryparameters zijn toegestaan in omleidings-URI's voor toepassingen die alleen gebruikers aanmelden met werk- of schoolaccounts.

Queryparameters zijn niet toegestaan in omleidings-URI's voor app-registratie die is geconfigureerd om gebruikers aan te melden met persoonlijke Microsoft-accounts, zoals Outlook.com (Hotmail), Messenger, OneDrive, MSN, Xbox Live of Microsoft 365.

Aanmeldingsdoelgroep voor app-registratie Ondersteunt queryparameters in omleidings-URI
Alleen accounts in deze organisatiemap (alleen Contoso - één tenant)
Accounts in een organisatiedirectory (alle Microsoft Entra-directory's - meerdere tenants)
Accounts in elke organisatiedirectory (Elke Microsoft Entra-directory - Multitenant) en persoonlijke Microsoft-accounts (zoals Skype en Xbox)
Alleen persoonlijke Microsoft-accounts

Ondersteunde schema's

HTTPS: Het HTTPS-schema (https://) wordt ondersteund voor alle omleidings-URI's op basis van HTTP.

HTTP: Het HTTP-schema (http://) wordt alleen ondersteund voor localhost-URI's en mag alleen worden gebruikt tijdens het ontwikkelen en testen van actieve lokale toepassingen.

Voorbeeld van omleidings-URI Geldigheid
https://contoso.com Geldig
https://contoso.com/abc/response-oidc Geldig
https://localhost Geldig
http://contoso.com/abc/response-oidc Ongeldig
http://localhost Geldig
http://localhost/abc Geldig

Localhost-uitzonderingen

Per RFC 8252-secties 8.3 en 7.3 worden omleidings-URI's voor loopback of localhost met twee speciale overwegingen geleverd:

  1. http URI-schema's zijn acceptabel omdat de omleiding het apparaat nooit verlaat. Daarom zijn beide URI's acceptabel:
    • http://localhost/myApp
    • https://localhost/myApp
  2. Vanwege tijdelijke poortbereiken die vaak vereist zijn voor systeemeigen toepassingen, wordt het poortonderdeel (bijvoorbeeld :5001 of :443) genegeerd om een omleidings-URI te koppelen. Als gevolg hiervan worden al deze URI's beschouwd als gelijkwaardig:
    • http://localhost/MyApp
    • http://localhost:1234/MyApp
    • http://localhost:5000/MyApp
    • http://localhost:8080/MyApp

Vanuit het oogpunt van ontwikkeling betekent dit een aantal dingen:

  • Registreer niet meerdere omleidings-URI's waarbij alleen de poort verschilt. De aanmeldingsserver kiest er willekeurig een en gebruikt het gedrag dat is gekoppeld aan die omleidings-URI (bijvoorbeeld of het omleidings web-, native-- of spa-type-omleiding is).

    Dit is vooral belangrijk wanneer u verschillende verificatiestromen in dezelfde toepassingsregistratie wilt gebruiken, bijvoorbeeld zowel de autorisatiecodetoestemming als de impliciete stroom. Als u het juiste reactiegedrag wilt koppelen aan elke omleidings-URI, moet de aanmeldingsserver onderscheid kunnen maken tussen de omleidings-URI's en dit niet kunnen doen wanneer alleen de poort verschilt.

  • Als u meerdere omleidings-URI's op localhost wilt registreren om verschillende stromen tijdens de ontwikkeling te testen, moet u deze onderscheiden met behulp van het padonderdeel van de URI. Komt bijvoorbeeld http://localhost/MyWebApp niet overeen http://localhost/MyNativeApp.

  • Het IPv6-loopbackadres ([::1]) wordt momenteel niet ondersteund.

Liever 127.0.0.1 via localhost

Als u wilt voorkomen dat uw app wordt onderbroken vanwege onjuist geconfigureerde firewalls of netwerkinterfaces waarvan de naam is gewijzigd, gebruikt u het IP-letterlijke loopback-adres 127.0.0.1 in uw omleidings-URI in plaats van localhost. Bijvoorbeeld: https://127.0.0.1.

U kunt echter het tekstvak Omleidings-URI's in Azure Portal niet gebruiken om een omleidings-URI op basis van loopback toe te voegen die gebruikmaakt van het http schema:

Foutdialoogvenster in Azure Portal met niet-toegestane omleidings-URI voor http-gebaseerde loopback

Als u een omleidings-URI wilt toevoegen die gebruikmaakt van het http schema met het 127.0.0.1 loopback-adres, moet u momenteel het kenmerk replyUrlsWithType in het toepassingsmanifest wijzigen.

Beperkingen voor jokertekens in omleidings-URI's

Jokerteken-URI's https://*.contoso.com lijken handig, maar moeten worden vermeden vanwege gevolgen voor de beveiliging. Volgens de OAuth 2.0-specificatie (sectie 3.1.2 van RFC 6749) moet een omleidingseindpunt-URI een absolute URI zijn. Als een geconfigureerde jokerteken-URI overeenkomt met een omleidings-URI, worden queryreeksen en fragmenten in de omleidings-URI verwijderd.

Jokerteken-URI's worden momenteel niet ondersteund in app-registraties die zijn geconfigureerd voor het aanmelden van persoonlijke Microsoft-accounts en werk- of schoolaccounts. Jokerteken-URI's zijn echter toegestaan voor apps die zijn geconfigureerd om alleen werk- of schoolaccounts aan te melden in de Microsoft Entra-tenant van een organisatie.

Als u omleidings-URI's met jokertekens wilt toevoegen aan app-registraties die zich aanmelden bij werk- of schoolaccounts, gebruikt u de manifesteditor van de toepassing in App-registraties in Azure Portal. Hoewel het mogelijk is om een omleidings-URI met een jokerteken in te stellen met behulp van de manifesteditor, raden we u ten zeerste aan om te voldoen aan sectie 3.1.2 van RFC 6749. en gebruik alleen absolute URI's.

Als voor uw scenario meer omleidings-URI's zijn vereist dan de toegestane maximumlimiet, kunt u de volgende methode voor statusparameters overwegen in plaats van een omleidings-URI met jokertekens toe te voegen.

Een statusparameter gebruiken

Als u meerdere subdomeinen hebt en uw scenario vereist dat gebruikers na een geslaagde verificatie gebruikers omleiden naar dezelfde pagina van waaruit ze zijn gestart, kan het handig zijn om een statusparameter te gebruiken.

In deze aanpak:

  1. Maak een 'gedeelde' omleidings-URI per toepassing om de beveiligingstokens te verwerken die u van het autorisatie-eindpunt ontvangt.
  2. Uw toepassing kan toepassingsspecifieke parameters (zoals de URL van het subdomein waar de gebruiker vandaan komt of iets zoals huisstijlinformatie) verzenden in de statusparameter. Wanneer u een statusparameter gebruikt, moet u zich beschermen tegen CSRF-beveiliging zoals opgegeven in sectie 10.12 van RFC 6749.
  3. De toepassingsspecifieke parameters bevatten alle informatie die nodig is voor de toepassing om de juiste ervaring voor de gebruiker weer te geven, dat wil gezegd, de juiste toepassingsstatus maken. Het Eindpunt voor Microsoft Entra-autorisatie verwijdert HTML van de statusparameter, dus zorg ervoor dat u geen HTML-inhoud doorgeeft in deze parameter.
  4. Wanneer Microsoft Entra ID een antwoord naar de omleidings-URI 'gedeeld' verzendt, wordt de statusparameter teruggestuurd naar de toepassing.
  5. De toepassing kan vervolgens de waarde in de statusparameter gebruiken om te bepalen naar welke URL de gebruiker verder moet worden verzonden. Zorg ervoor dat u valideert voor CSRF-beveiliging.

Waarschuwing

Met deze methode kan een gecompromitteerde client de aanvullende parameters wijzigen die in de statusparameter worden verzonden, waardoor de gebruiker wordt omgeleid naar een andere URL. Dit is de open redirector-bedreiging die wordt beschreven in RFC 6819. Daarom moet de client deze parameters beveiligen door de status te versleutelen of op een andere wijze te verifiëren, zoals het valideren van de domeinnaam in de omleidings-URI tegen het token.

Volgende stappen

Meer informatie over het toepassingsmanifest voor app-registratie.