SystemUser-Anmeldung

Power Portals Pro erkennt angemeldete Dataverse-Datensätze systemuser als Portalnutzer – zusammen mit den standardmäßig contactunterstützten Nutzern. Es ist keine Konfiguration erforderlich: Wenn sich ein Benutzer über eine Microsoft-Authentifizierung anmeldet, sucht das Portal zunächst nach einem Match; systemuserfalls vorhanden, läuft die Sitzung als dieser Systemuser, und Dataverse erzwingt die Sicherheit durch Imitation. Wenn kein passender Systemuser gefunden wird, fällt die Anmeldung auf den Kontaktpfad zurück. Dasselbe Portal kann sowohl interne Dataverse-lizenzierte Mitarbeiter als auch externe Kundenkontakte gleichzeitig bedienen.

Wenn das wichtig ist

Der systembenutzerunterstützte Fluss ist nützlich, wenn:

Nur Microsoft-Authentifizierung

Nur der externe Anbieter der Microsoft / Entra-ID kann auf einen Systemuser auflösen; Benutzer werden mit systemuser.azureactivedirectoryobjectidabgeglichen, und jeder SystemBenutzer mit isdisabled = true wird blockiert. Lokaler Benutzername/Passwort und andere externe Anbieter (Google usw.) melden sich immer als Kontakt an.

Wie es funktioniert

Bei einer Microsoft-Anmeldung folgt das Portal:

  1. Sucht die authentifizierte Azure AD Object ID gegen systemuser.azureactivedirectoryobjectid. Wenn ein aktiver Datensatz übereinstimmt, ist die Sitzung an diesen Systemuser gebunden.
  2. Andernfalls fällt er auf den kontaktunterstützten Fluss zurück (wobei der externe Login über abgestimmt wird adx_externalidentity).
  3. Für Systemuser-Sitzungen ist es so systemuserid eingestellt, ServiceClient.CallerId dass jeder Dataverse-Aufruf als angemeldeter Benutzer ausgeführt wird – mit deren Sicherheitsrollen, Geschäftseinheitsbereich und zeilenebenem Zugriff. Portalseitige ITablePermissionHandler / ITableRecordPermissionHandler Instanzen werden für die Anfrage umgangen.
  4. Raster, Formulare und Buttons spiegeln die tatsächlichen Dataverse-Privilegien des Nutzers wider – RetrieveUserPrivilegesRequest berechnet und zwischengespeichert pro Nutzer. Kontaktsitzungen fließen wie bisher weiterhin über die registrierten Betreuer.

Sicherheitsmodell

Für systembenutzerunterstützte Sitzungen, weil CallerId Imitation die Durchsetzung an Dataverse delegiert:

Admins: Testing als Kontakt

Portaladministratoren müssen in der Regel die Kontakterfahrung überprüfen – wird die Startseite für einen angemeldeten Kunden korrekt angezeigt? Versteckt dieser Fall diesen Symbolleisten-Button korrekt? – ohne ihre Fähigkeit zu verlieren, Admin-Aktionen auszuführen. Power Portals Pro unterstützt dies direkt: Ein Administrator kann eine Microsoft-Anmeldung sowohl mit einem systemuser (seinem internen Konto) als auch mit einem contact (Testdatensatz oder seinem eigenen Kundendatensatz) verknüpfen lassen und zwischen den beiden wechseln, ohne sich abzumelden.

Gemischte Zielgruppen: Gestalten Sie Ihre Daten entsprechend

Ein einzelnes Portal kann sowohl Systemnutzer als auch Kontaktnutzer in derselben Bereitstellung bedienen. Wenn deine Anpassungen FetchXML-Filter enthalten, die Zeilen nach adx_contactid == currentUserId abgrenzen (ein häufiges Muster bei Kontaktportalen), ergeben diese Filter keinen Sinn, wenn der angemeldete Nutzer ein SystemUser ist. Verzweigen Sie Ihren Anpassungscode auf der Benutzerart, damit jede Zielgruppe die passenden Daten sieht.

Privilegien-Caches

Die umweltweite Privilegien-Metadatenkarte wird einmal beim Anwendungsstart geladen und unbegrenzt zwischengespeichert; Neustarte die Anwendung (oder den Aufruf IPrivilegeMetadataCache.InvalidateAsync) neu, um neue Tabellen oder Berechtigungsschema-Änderungen zu erkennen. Die effektiven Privilegien jedes angemeldeten SystemUsers werden 24 Stunden lang zwischengespeichert und können mit IUserPrivilegeCache.InvalidateAsync(userId)entfernt werden.