Share via


Toepassingen met één pagina

Waarschuwing

Deze inhoud is voor het oudere Azure AD v1.0-eindpunt. Gebruik het Microsoft Identity Platform voor nieuwe projecten.

Toepassingen met één pagina (SPA's) zijn doorgaans gestructureerd als een JavaScript-presentatielaag (front-end) die wordt uitgevoerd in de browser en een web-API-back-end die op een server wordt uitgevoerd en de bedrijfslogica van de toepassing implementeert. Raadpleeg Inzicht in de impliciete toekenningsstroom voor OAuth2 in Azure Active Directory voor meer informatie over de impliciete autorisatietoestemming en om te bepalen of deze geschikt is voor uw toepassingsscenario.

Wanneer de gebruiker zich in dit scenario aanmeldt, gebruikt de JavaScript-front-end Active Directory Authentication Library voor JavaScript (ADAL.JS) en de impliciete autorisatietoekenning om een id-token (id_token) van Azure AD te verkrijgen. Het token wordt in de cache opgeslagen en de client koppelt het aan de aanvraag als bearer-token bij het aanroepen naar de back-end van de web-API, die wordt beveiligd met behulp van de OWIN-middleware.

Diagram

Diagram van een toepassing met één pagina

Protocolstroom

  1. De gebruiker navigeert naar de webtoepassing.
  2. De toepassing retourneert de JavaScript-front-end (presentatielaag) naar de browser.
  3. De gebruiker start de aanmelding, bijvoorbeeld door te klikken op een aanmeldingskoppeling. De browser verzendt een GET naar het Azure AD autorisatie-eindpunt om een id-token aan te vragen. Deze aanvraag omvat de toepassings-id en antwoord-URL in de queryparameters.
  4. Azure AD valideert de antwoord-URL op basis van de geregistreerde antwoord-URL die is geconfigureerd in de Azure Portal.
  5. De gebruiker meldt zich aan op de aanmeldingspagina.
  6. Als de verificatie is geslaagd, maakt Azure AD een id-token en retourneert het als een URL-fragment (#) naar de antwoord-URL van de toepassing. Voor een productietoepassing moet deze antwoord-URL HTTPS zijn. Het geretourneerde token bevat claims over de gebruiker en Azure AD die door de toepassing zijn vereist om het token te valideren.
  7. De JavaScript-clientcode die in de browser wordt uitgevoerd, pakt het token uit het antwoord dat moet worden gebruikt bij de beveiliging van aanroepen naar de web-API-back-end van de toepassing.
  8. De browser roept de back-end aan van de web-API van de toepassing met het id-token in de autorisatieheader. De Azure AD verificatieservice geeft een id-token op dat kan worden gebruikt als bearer-token wanneer de resource hetzelfde is als de client-id (in dit geval geldt dit als de web-API de eigen back-end van de app is).

Codevoorbeelden

Raadpleeg de codevoorbeelden voor scenario's met toepassingen met één pagina. Zorg ervoor dat u dit regelmatig opnieuw controleert aangezien er regelmatig nieuwe voorbeelden worden toegevoegd.

App-registratie

  • Eén tenant: als u een toepassing bouwt voor uw organisatie, moet deze worden geregistreerd in de adreslijst van uw bedrijf met behulp van de Azure Portal.
  • Meerdere tenants: als u een toepassing bouwt die kan worden gebruikt door gebruikers buiten uw organisatie, moet deze worden geregistreerd in de directory van uw bedrijf en in de directory van elke organisatie die de toepassing gebruikt. Als u uw toepassing beschikbaar wilt maken in hun directory, kunt u een registratieproces opnemen voor uw klanten waarmee ze toestemming kunnen geven voor uw toepassing. Wanneer ze zich registreren voor uw toepassing, wordt een dialoogvenster weergegeven met de machtigingen die de toepassing nodig heeft en vervolgens de optie om toestemming te geven. Afhankelijk van de vereiste machtigingen moet een beheerder in de andere organisatie mogelijk toestemming gegeven. Wanneer de gebruiker of beheerder toestemming heeft gegeven, wordt de toepassing geregistreerd in de directory.

Nadat u de toepassing hebt geregistreerd, moet deze zijn geconfigureerd voor het gebruik van het OAuth 2.0 impliciete toekenningsprotocol. Dit protocol is standaard uitgeschakeld voor toepassingen. Als u het OAuth2 impliciete toekenningsprotocol wilt inschakelen voor uw toepassing bewerkt u het toepassingsmanifest van de Azure Portal en stelt u de waarde 'oauth2AllowImplicitFlow' in op 'true'. Raadpleeg Toepassingsmanifest voor meer informatie.

Token verloopt

Het gebruik van ADAL.js helpt bij het volgende:

  • Een verlopen token vernieuwen
  • Een toegangstoken aanvragen om een web-API-resource aan te roepen

Na een geslaagde verificatie schrijft Azure AD een cookie in de browser van de gebruiker om een sessie tot stand te brengen. Let op: de sessie bestaat tussen de gebruiker en Azure AD (niet tussen de gebruiker en de webtoepassing). Wanneer een token verloopt, gebruikt ADAL.js deze sessie om een ander token te verkrijgen op de achtergrond. ADAL.js gebruikt een verborgen iFrame om de aanvraag te verzenden en te ontvangen met behulp van het OAuth impliciete toekenningsprotocol. ADAL.js kan ditzelfde mechanisme ook gebruiken om op de achtergrond toegangstokens te verkrijgen voor andere web-API-resources die de toepassing aanroept voor zover deze resources ondersteuning bieden voor cross-origin resource sharing (CORS), zijn geregistreerd in de directory van de gebruiker en elke vereiste toestemming is gegeven door de gebruiker tijdens het aanmelden.

Volgende stappen