Beperkingen en beperkingen voor omleidings-URI (antwoord-URL)

Een omleidings-URI, of antwoord-URL, is de locatie waar de autorisatieserver de gebruiker naartoe stuurt zodra de app is geautoriseerd en een autorisatiecode of toegangstoken heeft ontvangen. De autorisatieserver stuurt de code of het token naar de omleidings-URI, dus het is belangrijk dat u de juiste locatie registreert als onderdeel van het app-registratieproces.

Het Microsoft Entra-toepassingsmodel specificeert deze beperkingen voor omleidings-URI's:

  • Omleidings-URI's moeten beginnen met het schema https. Er zijn enkele uitzonderingen voor localhost-omleidings-URI's .

  • Omleidings-URI's zijn hoofdlettergevoelig en moeten overeenkomen met het geval van het URL-pad van uw actieve toepassing. Als uw toepassing bijvoorbeeld deel uitmaakt van het pad .../abc/response-oidc, geeft u deze niet op .../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

In deze 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

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.

Maximale URI-lengte

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 alleen omleidings-URI's toe aan het toepassingsobject.
  • Voeg geen omleidings-URI-waarden toe aan een service-principal, omdat deze waarden kunnen worden verwijderd wanneer het service-principalobject wordt gesynchroniseerd met het toepassingsobject. Dit kan gebeuren als gevolg van 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 (bijvoorbeeld Skype, 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 verbroken door 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:

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

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.