Einrichtung der Dataverse-Verbindung

Dein Portal kommuniziert mit Dataverse als eigenständige Anwendung, nicht als der Besucher, der es gerade durchstöbert. Das erfordert zwei Teile: eine App-Registrierung in der Microsoft Entra-ID, die die Zugangsdaten besitzt, und einen Anwendungsbenutzer in deiner Dataverse-Umgebung, der diesen Zugangsdaten eine Identität und eine Sicherheitsrolle verleiht. Diese Seite führt beide Seiten durch und den Zugriff, den das Portal tatsächlich benötigt.

Das ist nicht die Anmelde-App

Diese Registrierung ist die eigene Service-Identität des Portals – sie liest und schreibt Daten im Namen des Portals, und ihre Zugangsdaten liegen unter D365:ClientId / D365:ClientSecret. Eine zweite, separate Registrierung übernimmt die Anmeldung von Nutzern bei Microsoft. Halten Sie sie getrennt: Diese benötigt keine Redirect-URI und keine delegierten Berechtigungen, aber sie hat in Ihrer Umgebung deutlich mehr Macht. Siehe Entra ID Anmeldeeinrichtung

1. Registrieren Sie den Antrag

Erstelle die Registrierung im Microsoft Entra-Verwaltungszentrum, im Tenant, der deine Dataverse-Umgebung besitzt.

  1. Besuchen Sie Entra ID > App-Registrierungen und wählen Sie Neue Anmeldung.
  2. Geben Sie zum Beispiel Contoso Portal — Dataverse (Production)einen Namen ein, der das Portal und die Umgebung identifiziert. Niemand sieht dies auf einem Einwilligungsbildschirm, daher sollten Sie später Klarheit für den Prüfer bevorzugen.
  3. Unter Unterstützte Kontotypen wählen Sie Nur Einzelmieter. Diese Identität verlässt Ihre Organisation nie.
  4. Lassen Sie die Umleitungs-URI leer. Kein Benutzer wird hierher jemals umgeleitet – das Portal authentifiziert sich mit dem Fluss der Client-Zugangsdaten, von Maschine zu Maschine, ohne Browser.
  5. Wählen Sie Registrieren.
  6. Auf der Übersichtsseite kopieren Sie die Anwendungs-(Client-)ID. Dieser Wert wird D365:ClientIdzu , und Sie benötigen ihn erneut in Schritt 4, um den Anwendungsbenutzer zu erstellen.

2. Erstelle eines Kundengeheimnisses

Das Geheimnis ist die einzige Zugangsberechtigung des Portals, also betrachte sie als Schlüssel zu den Daten deiner Umgebung.

  1. Öffnen Sie Zertifikate & Geheimnisse unter Verwalten und wählen Sie den Reiter Client-Geheimnisse aus.
  2. Wählen Sie Neues Clientgeheimnis, beschreiben Sie es nach Umgebung (zum Beispiel portal-production) und wählen Sie ein Ablaufdatum aus.
  3. Kopiere sofort die Wert-Spalte – nicht die Secret ID. Sie wird nur einmal angezeigt und wird dann zu D365:ClientSecret.

Wichtig

Wenn das Geheimnis abläuft, erreicht das Portal das Dataverse komplett nicht mehr – nicht nur für eine Funktion, sondern für jede Anfrage – also gib das Ablaufdatum irgendwo an, wo du es sehen kannst. Für die Produktion vermeidet ein Zertifikatszugang die Ablauf-Klippe und AuthenticationType.Certificate akzeptiert einen anstelle des Geheimnisses.

3. API-Berechtigungen: Keine erforderlich.

Dieser Schritt ist absichtlich leer, und das überrascht die Leute. Viele ältere Leitfäden empfehlen, die Berechtigung Dynamics CRMuser_impersonation delegiert hinzuzufügen. Diese Berechtigung ist für Anwendungen, die im Auftrag eines angemeldeten Benutzers handeln. Das Portal tut das nicht – es authentifiziert sich als sich selbst, und sein Zugriff erfolgt vollständig über den Dataverse-Anwendungsbenutzer, den du im nächsten Schritt anlegst.

Anmerkung

Microsofts eigene Server-to-Server-Richtlinien sagen dasselbe: Wenn Sie sich als App verbinden, gewähren Sie Access Dynamics 365 als Organisationsnutzer nicht, da die Anwendung stattdessen an ein bestimmtes Benutzerkonto gebunden ist. Das Hinzufügen bewirkt nichts, aber es gewährt eine Funktion, die das Portal nie ausübt – lassen Sie sie weg.

4. Erstellen Sie den Anwendungsbenutzer in Dataverse

Die App-Registrierung allein kann Daten nicht berühren. Dataverse benötigt einen Benutzereintrag, der an sich gebunden ist, was die Client-ID in eine Identität umwandelt, die Ihre Umgebung erkennt.

  1. Melden Sie sich im Power Platform Verwaltungszentrum an.
  2. Wählen Sie im Navigationsfenster "Verwalten " aus, dann Umgebungen und dann Ihre Umgebung.
  3. Wählen Sie Einstellungen > Benutzer + Berechtigungen > Anwendungsbenutzer.
  4. Wählen Sie + Neuer App-Nutzer.
  5. Wählen Sie + App hinzufügen und suchen Sie Ihre Registrierung nach Namen oder Kunden-ID ab Schritt 1, dann wählen Sie Hinzufügen. Nur Entra-App-Registrierungen erscheinen in dieser Liste – Unternehmensanwendungen nicht.
  6. Wähle eine Business Unit. Die Root-Business Unit ist die übliche Antwort; eine Child-Unit schränkt die Erreichbarkeit des Portals ein, noch bevor Sicherheitsrollen angewendet werden.
  7. Wählen Sie das Bearbeiten-Symbol neben Sicherheitsrollen aus und weisen Sie die Rolle, die Sie für das Portal erstellt haben, zu – sehen Sie sich den nächsten Schritt an, um zu sehen, was es enthalten muss.
  8. Wählen Sie Erstellen.

Tipp

Ein Anwendungsnutzer verbraucht keine bezahlte Lizenz, und pro Entra-App-Registrierung pro Umgebung kann man nur eine registrieren. Verwenden Sie für jede Umgebung eine separate Registrierung, damit der Entzug des Entwicklungszugriffs nie die Produktion berührt.

5. Dem Anwendungsbenutzer eine Sicherheitsrolle geben

Erstelle eine benutzerdefinierte Sicherheitsrolle, anstatt eine eingebaute wiederzuverwenden, damit der Zugriff auf das Portal sichtbar und überprüfbar ist. Was die Rolle benötigt, hängt davon ab, welche Framework-Funktionen du nutzt:

Was das Portal bewirkt Zugreifen Sie auf die Rollenbedürfnisse
Stellt die Daten deines Portals bereit Erstellen, lesen, schreiben und löschen Sie auf jeder Tabelle, die Ihr Portal offenstellt, in dem Umfang, den Besucher erreichen sollen. Das ist der Großteil der Rolle und vollständig spezifisch für Ihre Anwendung.
Registriert und meldet sich in Portalnutzern an Erstellen, Lesen und Schreiben auf contact, sowie Erstellen, Lesen, Schreiben und Löschen auf adx_externalidentity, das die Verbindung zwischen einem Portalbenutzer und einem externen Login speichert.
Bindet Raster an Dataverse-Ansichten und formatiert Werte Lesen Sie weiter savedquery , um die Ansichten zu erhalten, an die Ihre Raster gebunden sind, und lesen Sie weiter organization, usersettings und timezonedefinition so formatieren Sie Datum, Zahlen und Währung korrekt.
Sendet Bestätigungs- und Passwort-Zurücksetzungs-E-Mail Erstellen, Lesen und Schreiben auf email, Erstellen auf activitymimeattachment, plus die Rechte E-Mail senden und E-Mail als anderer Benutzer senden . Die von Ihnen konfigurierte Absenderadresse wird auf einen queue oder systemuser Datensatz aufgelöst, sodass die Rolle auch auf diesen Adressen lesen muss – weshalb das Senden als diese Adresse als Senden als anderer Benutzer gilt.
Validiert die Website-Lizenz Die Erlaubnis, die ppp_ProWebsiteLicenseCheck Aktion auszuführen und die Portal-Website zu lesen, zeichnet die ausgelieferten Daten in der verwalteten Lösung auf. Ohne diese Authentifizierung schlägt jeder lizenzierte Endpunkt fehl.
Dataverse-native Sicherheit (optional) Nur wenn Sie das Vorschau-Sicherheitsmodell aktivieren: Erstellen und Lesen weiter, Weiterlesenbusinessunit, Erstellen und Lesen weiterpowerpagesusermapping, Weiterlesen powerpagesite und mspp_webrole, sowie das Rechte "Im Namen eines anderen Benutzers handeln", sodass das Portal jeden bereitgestellten Benutzer nachahmen kann.systemuser

Wichtig

Widerstehe der Versuchung, Systemadministrator zu werden, und mach weiter. Das Portal ist internetorientiert, und diese Berechtigung entscheidet, was ein Angreifer erreicht, falls das Geheimnis jemals durchsickert. Es lohnt sich den Nachmittag, um eine echte Rolle aufzubauen – und eine Entwicklungsumgebung ist der richtige Ort, um herauszufinden, was du verpasst hast.

6. Speichere die Verbindungseinstellungen

Das Portal liest diese aus der Konfiguration unter dem Abschnitt D365 . Bewahren Sie sie während der Entwicklung in Benutzergeheimnissen auf, damit sie nie zur Quellcode-Kontrolle gelangen:

EmailSenderEmailAddress ist die Adresse, von der die ausgehende E-Mail des Portals gesendet wird. Sie muss mit einem queue oder einem aktivierten systemuser in der Umgebung übereinstimmen – eine Warteschlange ist die übliche Wahl, da sie keine Portal-Post an eine Person bindet, die später gehen könnte.

Tipp

In gehosteten Umgebungen sollten die gleichen Schlüssel wie Umgebungsvariablen oder aus einem geheimen Speicher bereitgestellt werden, wobei anstelle des Doppelpunkts – , D365__Secret , – ein doppelter Unterstrich verwendet D365__ClientIdwird, da der Doppelpunkttrenner nicht plattformübergreifend portabel ist.

7. Verbindung verkabeln

Das Serverprojekt konfiguriert ConnectionOptions sich, wenn es das Framework registriert:

Die Projektvorlage schreibt das für dich, also gibt es in einem generierten Projekt hier nichts hinzuzufügen – gib die drei Konfigurationswerte an und die Verbindung funktioniert. Starte das Portal und durchsuche jede Seite, die von Dataverse-Daten unterstützt wird, um es zu bestätigen.

Fehlerbehebung