Partager via


Utilisez OAuth avec le partage des ressources cross-origin pour connecter une application sur une seule page à Microsoft Dynamics 365

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Avec Mise à jour de Microsoft Dynamics CRM Online 2016 et Microsoft Dynamics 365 local avec Déploiement avec accès via Internet (IFD) vous pouvez créer des applications sur une seule page qui s'appuient sur JavaScript pour utiliser des données Microsoft Dynamics 365. Pour fournir ces données, le partage des ressources cross-origin (CORS) est activé afin que vos applications sur une seule page puissent ignorer les restrictions du navigateur qui empêchent normalement les demandes de dépasser les limites des domaines.

Notes

La prise en charge du CORS est uniquement fournie si vous utilisez l'API Web. Vous ne pouvez pas utiliser le service d'organisation ou un service de données d'organisation obsolète.

Contenu de la rubrique

Applications sur une seule page et stratégie d'origine identique

Utiliser CORS avec Microsoft Dynamics 365 (online)

Fonctionnement de adal.js

Préparation à l'utilisation de ADAL.js avec une application à une seule page

Applications sur une seule page et stratégie d'origine identique

Les applications sur une seule page dépendent d'une utilisation fréquente de JavaScript côté client pour créer une page dynamique unique qui n'a pas besoin de charger de nouvelles pages. À la place, elles utilisent des XMLHTTPRequest pour récupérer les données et d'autres ressources du serveur. Les applications à une seule page fonctionnent correctement lorsque les données et les ressources se trouvent dans le même domaine que l'application. Mais pour protéger l'accès aux données et aux ressources sur d'autres domaines, tous les navigateurs modernes mettent en place une stratégie d'origine identique pour empêcher les sites d'utiliser les données et les ressources de sites d'un autre domaine. Le CORS permet d'accéder aux ressources sur un autre domaine. La création d'une application à une seule page pour accéder aux données Microsoft Dynamics 365 sans CORS n'est pas une alternative réalisable.

Utiliser CORS avec Microsoft Dynamics 365 (online)

La spécification du partage de ressources cross-origin fournit une description détaillée de la mise en œuvre et de l'utilisation du CORS. Elle explique les différents en-têtes et demandes préalables que vous devez appliquer pour faire fonctionner le CORS. La bonne nouvelle, c'est que vous n'avez pas besoin de devenir un expert du CORS pour l'utiliser avec Microsoft Dynamics 365. La partie côté serveur a été effectuée pour vous et tout ce qu'il vous reste à savoir, c'est comment l'utiliser. Vous n'avez pas besoin de comprendre tous les fonctionnement internes du CORS pour l'utiliser avec Microsoft Dynamics 365. Au lieu de cela, vous pouvez utiliser Bibliothèque d'authentification Azure Active Directory pour JavaScript (adal.js) qui s'occupera de la plus grande partie de la complexité du CORS pour vous. Du fait que les utilisateurs Dynamics 365 (en ligne) et Déploiement avec accès via Internet (IFD) sont authentifiés à l'aide d'Azure Active Directory, ADAL.js est la méthode prise en charge pour authentifier les utilisateurs d'applications à une seule page.

Fonctionnement de adal.js

La bibliothèque principale est adal.js. Vous pouvez accéder à la version réduite de cette bibliothèque à l'adresse https://secure.aadcdn.microsoftonline-p.com/lib/1.0.0/js/adal.min.js. Le projet et la documentation Github se trouvent à l'adresse https://github.com/AzureAD/azure-activedirectory-library-for-js.

La bibliothèque adal.js contient les fonctions de faible niveau permettant l'authentification à l'aide d'OAuth2. Adal.js a été conçu de sorte qu'elle puisse être utilisée avec d'autres infrastructures, par exemple il existe une bibliothèque adal-angular.js qui est conçue pour être utilisée avec l'infrastructure Angular. La façon dont vous utilisez cette bibliothèque consiste à définir certaines propriétés de configuration afin qu'elle attende jusqu'à ce que des événements se produisent pour déclencher le flux d'interaction. Il peut simplement s'agir d'un appel de la fonction login ou, si votre application a des comportement d'acheminement, de l'initiation de l'authentification en fonction de la manière dont le contrôleur de cet acheminement est configuré.

Lorsque l'authentification est requise, l'utilisateur est dirigé vers la page de connexion sur laquelle il peut entrer ses informations d'identification. Une fois authentifié, il est redirigé vers la page d'appel avec les informations de jeton jointe comme fragment (avec #) à l'URL. Cela permet à l'application à une seule page d'acquérir le jeton et de le mettre en cache dans le stockage local ou de session du navigateur. Cela signifie que la page entière est rechargée après l'authentification, mais cette fois les informations relatives à l'utilisateur autorisé sont disponibles et l'application peut continuer à effectuer des appels d'API Web de Dynamics 365 ou d'autres ressources.

Lors de l'appel de l'API Web de Dynamics 365, vous devez inclure la valeur du jeton dans un en-tête Authorization avec votre XMLHTPPRequest. Toutefois, du fait que les jetons ont une date d'expiration vous devez être certain qu'ils n'expirent pas pendant que des utilisateurs utilisent votre application à une seule page. Souvenez-vous, la saisie de nouvelles informations d'identification nécessite que tout le contenu de votre page d'application à une seule page soit transféré vers la page de connexion. Cela aurait un effet négatif pour les utilisateurs si cela se produisait alors qu'ils sont entrain de travailler. Pour garantir cela ne se produise pas, vous enveloppez vos appels d'API Web dans une fonction acquireToken de sorte que la validité du jeton puisse être vérifiée et actualisée si nécessaire sans diriger l'utilisateur vers une page de connexion.

Préparation à l'utilisation de ADAL.js avec une application à une seule page

Pour configurer votre application à une seule page afin d'utiliser adal.js, vous aurez besoin de :

  1. Inscrire votre application auprès du client Azure Active Directory

  2. Exporter le manifeste de votre application inscrite puis de le modifier pour permettre le flux implicite OAuth2, puis de ré-importer le fichier JSON dans votre inscription d'application.

  3. Définir les variables de configuration dans votre application à une seule page avec les informations de cette inscription.

    Vous devez inclure ce qui suit :

    • L'URL de votre organisation Microsoft Dynamics 365

    • Le nom du client Active Directory que votre organisation utilise pour s'authentifier

    • L'ID de client que vous obtenez lorsque vous inscrivez votre application

    • L'URL à laquelle l'application à une seule page sera déployée ou déboguée pendant le développement

L'ensemble d'étapes nécessaires est décrit dans Procédure pas à pas : enregistrement et configuration de l'application SimpleSPA avec adal.js.

Voir aussi

Authentifier les utilisateurs dans Microsoft Dynamics 365
Se connecter aux services Web Microsoft Dynamics 365 à l'aide d'OAuth
Active Directory et authentification basée sur les revendications

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright