Een toepassing met één pagina door middel van OAuth met Cross-Origin Resource Sharing verbinding laten maken met Microsoft Dynamics 365
Gepubliceerd: januari 2017
Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Met Update voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics 365 on-premises met Internet Facing Deployment (IFD) kunt u een toepassing met één pagina (Single Page App, SPA) maken, die gebruik maakt van JavaScript om Microsoft Dynamics 365-gegevens te verwerken. Om dit mogelijk te maken, wordt Cross-Origin Resource Sharing (CORS) ingeschakeld. Uw SPA's kunnen dan browserbeperkingen omzeilen die normaal gesproken aanvragen tegenhouden die over domeingrenzen heengaan.
Notitie
Ondersteuning voor CORS wordt alleen geboden wanneer u gebruik maakt van de web-API. U kunt geen gebruik maken van de organisatieservice of afgeschafte organisatiegegevensservice.
In dit onderwerp
SPA's en Same Origin Policy
CORS gebruiken met Microsoft Dynamics 365 (online)
Hoe adal.js werkt
Voorbereidingen treffen om ADAL.js te gebruiken met een SPA
SPA's en Same Origin Policy
SPA's maken intensief gebruik van JavaScript op de client om een enkele dynamische pagina te maken die niet nieuwe pagina's hoeft te laden. In plaats daarvan wordt gebruik gemaakt van XMLHTTPRequest om gegevens en andere bronnen op te halen van de server. SPA's werken goed als de gegevens en de resources zich in hetzelfde domein bevinden als de toepassing. Maar om toegang tot gegevens en resources in verschillende domeinen te beveiligen, dwingen alle moderne browsers een Same Origin Policy af om te voorkomen dat websites gegevens en resources van sites op een ander domein gebruiken. CORS biedt een manier om toegang tot resources in een ander domein te krijgen. U kunt een SPA maken om toegang te krijgen tot Microsoft Dynamics 365-gegevens zonder CORS, maar dat zal niet goed functioneren.
CORS gebruiken met Microsoft Dynamics 365 (online)
Het document Specificaties van Cross-Origin Resource Sharing beschrijft in detail hoe u CORS kunt implementeren en gebruiken. U vindt hierin uitleg over alle verschillende headers en voorbereidende aanvragen die u moet toepassen om CORS te laten functioneren. U hoeft echter geen CORS-expert te zijn om het te kunnen gebruiken in combinatie met Microsoft Dynamics 365. Het gedeelte op de server is al voor u ingericht en u hoeft alleen maar te weten hoe u er gebruik van kunt maken. Het is niet nodig om tot in detail te weten hoe CORS werk, om het te gebruiken met Microsoft Dynamics 365. In plaats hiervan kunt u de Azure Active Directory-verificatiebibliotheek voor JavaScript (adal.js) gebruiken, die veel van de CORS-complexiteit voor u afhandelt. Aangezien gebruikers van Dynamics 365 (online) en Internet Facing Deployment (IFD) worden geverifieerd via Azure Active Directory, is ADAL.js de ondersteunde methode voor verificatie van SPA-gebruikers.
Hoe adal.js werkt
De kernbibliotheek is adal.js. De geminimaliseerde versie van deze bibliotheek vindt u op https://secure.aadcdn.microsoftonline-p.com/lib/1.0.0/js/adal.min.js. Het Github-project en de documentatie vindt u op https://github.com/AzureAD/azure-activedirectory-library-for-js.
De adal.js-bibliotheek bevat de mogelijkheden op laag niveau voor verificatie door middel van OAuth2. Adal.js is ontworpen voor gebruik met andere frameworks. Zo is er bijvoorbeeld een bibliotheek adal-angular.js, die is ontworpen voor gebruik met het Angular-framework. U werkt met deze bibliotheek door bepaalde configuratie-eigenschappen in te stellen; de bibliotheek wacht vervolgens op bepaalde gebeurtenissen die de interactiestroom triggeren. Dit kan bijvoorbeeld een aanroep van de functie login zijn. Of, als uw toepassing beschikt over routeringsmechanismen, kan de verificatie in gang worden gezet door de manier waarop de controller voor de route is geconfigureerd.
Wanneer verificatie is vereist, wordt de gebruiker doorgeleid naar de aanmeldingspagina waar hij zijn referenties kan invoeren. Na een geslaagde verificatie wordt de gebruiker teruggeleid naar de aanroepende pagina, waarbij de tokengegevens als een fragment (door middel van #) zijn toegevoegd aan de URL. Hiermee kan de SPA het token verkrijgen en het in cache opslaan, lokaal of in de sessieopslagruimte in de browser. Dit betekent dat de hele pagina na verificatie opnieuw wordt geladen. Nu is echter de informatie voor de geverifieerde gebruiker beschikbaar en de toepassing kan verdergaan met het aanroepen van de web-API van Dynamics 365 of andere resources.
Wanneer u de web-API van Dynamics 365 laat aanroepen, moet u de tokenwaarde opnemen in de header Authorization met uw XMLHTPPRequest. Omdat tokens verlopen, moet u echter ervoor zorgen dat deze niet verloopt terwijl gebruikers werken met uw SPA. Onthoud dat wanneer nieuwe referenties worden ingevoerd, de gehele inhoud van uw SPA-pagina wordt doorgeleid naar de aanmeldingspagina. Wanneer de gebruiker net met een bewerking bezig is, kan dat een zeer slechte indruk maken. Om ervoor te zorgen dat dit niet gebeurt, neemt u uw web-API-aanroepen op in een acquireToken-functie, zodat de geldigheid van de token zonodig kan worden gecontroleerd en vernieuwd zonder de gebruiker om te leiden naar een aanmeldingspagina.
Voorbereidingen treffen om ADAL.js te gebruiken met een SPA
Om uw SPA te configureren voor werken met adal.js, moet u de volgende stappen uitvoeren:
Registreer uw toepassing bij de Azure Active Directory-tenant.
Exporteer het manifest van uw geregistreerde toepassing en bewerk het. Schakel gebruik van OAuth2 Implicit Flow in en importeer het JSON-bestand weer terug in uw toepassingsregistratie.
Stel de configuratievariabelen in uw SPA in met gegevens uit de registratie.
U moet de volgende gegevens opnemen:
De URL naar uw Microsoft Dynamics 365-organisatie
De naam van de Active directory-tenant die uw organisatie gebruikt voor verificatie
De client-ID die u bij de registratie van uw toepassing hebt gekregen
De URL naar waar de SPA wordt uitgerold of waar de fouten worden opgespoord tijdens de ontwikkelingsfase
De hiervoor vereiste stappen worden beschreven in Overzicht: SimpleSPA-toepassing aanmelden en configureren met adal.js.
Zie ook
Gebruikers authenticeren in Microsoft Dynamics 365
Verbinding maken met Microsoft Dynamics 365-webservices via OAuth
Active Directory en verificatie op basis van claims
Microsoft Dynamics 365
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht