Verwenden von OAuth mit Cross-Origin Resource Sharing, um eine Single Page-Anwendung mit Microsoft Dynamics 365 zu verbinden

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Mit Microsoft Dynamics CRM Online 2016 Update und Microsoft Dynamics 365 (lokal) mit Bereitstellung mit Internetzugriff (IFD) können Sie a Single Page Apps (SPAs) erstellen, die JavaScript verwendet, um mit Microsoft Dynamics 365-Daten zu arbeiten. Um dies zu ermöglichen, wird Cross-Origin Resource Sharing (CORS) aktiviert, so das SPAs die Browsereinschränkungen, die normalerweise Anforderungen über Domänengrenzen hinweg beschränken, umgehen können.

Hinweis

Die CORS-Unterstützung wird nur bei Verwendung der Web-API bereitgestellt. Sie können den Organisationsservice oder den veralteten Organisationsdatendienst nicht verwendet.

In diesem Thema

SPAs und die Same-Origin-Richtlinie

Verwendung von CORS mit Microsoft Dynamics 365 (online)

So arbeitet adal.js

Vorbereiten der Nutzung von ADAL.js mit einer SPA

SPAs und die Same-Origin-Richtlinie

SPAs hängen nutzt clientseitige JavaScript, um eine einzige dynamische Seite zu erstellen, die keine neue Seiten laden muss. Stattdessen nutzen Sie XMLHTTPRequests, um Daten sowie andere Ressourcen vom Server anzuzeigen. SPAs funktionieren gut, wenn die Daten und die Ressource in der gleichen Domäne wie die Anwendung sind. Um den Zugriff auf Daten und Ressourcen in anderen Domänen zu schützen, setzen alle modernen Browser eine Same-Origin-Richtlinie durch. Diese verhindert, dass Daten von Websites in einer anderen Domäne verwendet werden. CORS bietet eine Möglichkeit, Zugriff auf Ressourcen einer anderen Domäne zu erhalten. Eine SPA für den Zugriff auf Microsoft Dynamics 365-Daten ohne CORS zu erstellen ist keine brauchbare Option.

Verwendung von CORS mit Microsoft Dynamics 365 (online)

Die Cross-Origin Resource Sharing -Spezifikation stellt eine genaue Beschreibung der Implementierung und Nutzung von CORS bereit. Sie beschreibt die verschiedenen Header und Preflight-Anforderungen, die Sie für CORS benötigen. Die guten Nachricht ist, dass Sie kein Experte, in CORS sein müssen, um es mit Microsoft Dynamics 365 zu nutzen. Der serverseitige Teil wurde schon für Sie erledigt. Sie müssen nur noch wissen, wie Sie ihn nutzen. Sie müssen nicht die alle internen Arbeitsweise von CORS verstehen, um es mit Microsoft Dynamics 365 zu nutzen. Stattdessen können Sie die Azure Active Directory Authentication Library für JavaScript (adal.js) verwenden. Sie kümmert sich um die meisten Dinge von CORS. Da Dynamics 365 (online)- und Bereitstellung mit Internetzugriff (IFD)- über Azure Active Directory authentifiziert werden, stellt ADAL.js die unterstützte Methode für die Authentifizierung von SPA-Benutzern dar.

So arbeitet adal.js

Die Kernbibliothek ist adal.js. Sie können die minimierte Version dieser Bibliothek unter https://secure.aadcdn.microsoftonline-p.com/lib/1.0.0/js/adal.min.js nutzen. Das Github-Projekt und die Dokumentation finden Sie unter https://github.com/AzureAD/azure-activedirectory-library-for-js.

Die adal.js-Bibliothek enthält die Low-Level-Funktionen zur Authentifizierung über OAuth2. Adal.js ist so konzipiert, dass es mit anderen Frameworks verwendet werden kann. Es gibt z. B. eine adal-angular.js-Bibliothek, die dazu konzipiert ist, mit dem Angular-Framework verwendet zu werden. Sie arbeiten mit dieser Bibliothek, indem Sie bestimmte Konfigurationseigenschaften festlegen und dann warten, bis ein Ereignis eintritt, dass den Interaktionsfluss startet. Dies kann die z. B. der Aufruf der login-Funktion sein, oder, wenn die Anwendung Routingfunktionen hat, kann die Authentifizierung über die Konfiguration des Controllers für die Route gestartet werden.

Wenn eine Authentifizierung erforderlich ist, wird der Benutzer auf die Anmeldeseite weitergeleitet. Dort kann er Anmeldeinformationen eingeben. Nach der erfolgreichen Authentifizierung wird er mit Token-Informationen als Fragment (über #) der URL zurück zur aufrufenden Seite geleitet. Dies ermöglicht der SPA das Abrufen des Tokens und das lokale oder sitzungsgebundene Speichern im Browser. Dies bedeutet, dass die gesamte Seite nach der Authentifizierung neu geladen wird. Dieses Mal stehen jedoch Informationen zum autorisierten Benutzer zur Verfügung, und die Anwendun gkann den Vorgang fortsetzen, um die Dynamics 365-Web-API oder andere Ressourcen aufzurufen.

Beim Aufrufen der Dynamics 365-Web-API müssen Sie den Token-Wert in einem Authorization-Header mit Ihrem XMLHTPPRequest einbinden. Da Tokens Ablaufdaten haben sollten Sie dafür sorgen, dass es nicht abläuft, während der Benutzer die SPA verwendet. Beachten Sie, dass die Eingabe neuer Anmeldeinformationen erfordert, dass der gesamte Inhalt der SPA-Seite an die Anmeldeseite übertragen wird. Dadurch würde eine sehr schlechte Benutzerfreundlichkeit zur Folge haben, wenn es geschehen würde, während Benutzern gerade aktiv ist. Um dieses zu vermeiden, verpacken Sie die Web-API-Aufrufe in einer acquireToken-Funktion, so dass Sie die Gültigkeit des Tokens ggf. überprüfen und es bei Bedarf ohne Wechsel zu Anmeldeseite aktualisieren können.

Vorbereiten der Nutzung von ADAL.js mit einer SPA

Um die SPA für adal.js zu konfigurieren müssen Sie folgendes durchführen:

  1. Registrieren Sie die Anwendung beim Azure Active Directory-Mandaten

  2. Exportieren Sie das registrierte Anwendungsmanifest und bearbeiten Sie dieses, um OAuth2 Implicit Flow zuzulassen. Importieren Sie anschließend die JSON-Datei zurück in die Anwendungsregistrierung.

  3. Legen Sie Konfigurationsvariablen in der SPA mit Informationen aus dieser Registrierung fest.

    Sie müssen die folgenden einbeziehen:

    • Die URL Ihrer Microsoft Dynamics 365-Organisation

    • Der Name des Active Directory-Mandanten, den Ihrer Organisation zur Authentifizierung nutzt.

    • Die Client-ID, die Sie erhalten, wenn Sie die Anwendung registrieren

    • Die URL, über die die SPA während der Entwicklung bereitgestellt oder debugged wird

Der erforderlichen Schritte werden in Exemplarische Vorgehensweise: SimpleSPA-Anwendung mit adal.js registrieren und Konfigurieren beschrieben.

Siehe auch

Authentifizieren von Benutzern in Microsoft Dynamics 365
Mithilfe von OAuth mit Microsoft Dynamics 365-Webdiensten verbinden
Active Directory und anspruchsbasierte Authentifizierung

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright