Benutzerimitation

Manche Fehler existieren nur bei einer Person. Ein Datensatz, der nicht geöffnet wird, ein Menüpunkt, der nicht vorhanden ist, ein Gesamteintrag, der falsch aussieht – all das hängt von den Webrollen, Tabellenberechtigungen und Dataverse-Sicherheitsrollen ab, die diesem Kontakt zugeordnet sind. Die Benutzerimitation ermöglicht es einem internen Administrator, sich als Kontakt einzuloggen, genau zu sehen, was er sieht, und dann wieder herauszutreten.

Wenn es hilft

Imitation beantwortet Fragen, die eine Beschreibung des Problems nicht beantworten kann.

Sie nutzen

Die Affordance befindet sich im Profilmenü und erscheint nur für Nutzer, die sie nutzen dürfen.

  1. Melden Sie sich als interner Benutzer in der Administratorrolle an, öffnen Sie dann das Profilmenü und wählen Sie 'Als anderer Benutzer anzeigen'.
  2. Geben Sie mindestens drei Zeichen ein, um nach Namen oder E-Mail-Adresse zu suchen, oder fügen Sie eine Benutzer-ID ein, um eine exakte Übereinstimmung zu erhalten.
  3. Wähle die Person aus und bestätige sie. Das Portal lädt als sie neu – gleiche Webrollen, gleiche Tabellenberechtigungen, gleiche Zeilen.
  4. Ein Banner bleibt so lange wie möglich oben auf jeder Seite befestigt. Wählen Sie Stopp, um zu Ihrer eigenen Sitzung zurückzukehren.

Wer kann sich ausgeben

Für jeden Aufruf werden zwei Bedingungen auf dem Server überprüft, unabhängig davon, was die Schnittstelle anbot:

Das Ziel ist immer ein Portalkontakt, der allein über die Kontakttabelle gelöst wird. Die Bereitstellung einer internen Benutzer-ID löst sich einfach nicht auf – es gibt keinen Weg von hier zu einem zweiten Mitarbeiterkonto.

Imitation reduziert nur den Zugang

Ein interner Benutzer wird zum Kontakt, nie umgekehrt und nie zu einem weiteren internen Benutzer. Diese Richtung sorgt dafür, dass die Funktion sicher ausgeliefert werden kann: Die nachgeahmte Sitzung kann nur weniger leisten als der Administrator, daher gibt es keine Privilegien durch die Nutzung der Funktion.

Einschränkung, wer nachgeahmt werden darf

Standardmäßig ist jeder aktive Kontakt ein Kandidat. Implementieren IImpersonationTargetFilter Sie diese Einschränkung – indem Sie Kontakte ausschließen, die mit Mitarbeiterkonten, Datensätzen außerhalb der Geschäftseinheit des Administrators oder allem, was Ihre Organisation als tabu behandelt.

Der Filter steuert sowohl die Suche als auch die Imitation. Ein von Ihnen abgelehnter Kontakt ist im Picker unsichtbar und nicht nur unauswählbar – sonst würde die Suche still und leise zu einer Möglichkeit werden, Personen aufzuzählen, die ein Administrator niemals werden kann.

Die Prüfungsspur

Jeder Start, jeder Stopp und jeder abgelehnte Versuch wird aufgezeichnet. Ablehnungen werden absichtlich aufgezeichnet: Eine Erfolgsspur allein kann nicht beantworten, ob jemand es versucht hat.

Dataverse kann nicht aufzeichnen, wer hinter der Sitzung steckte

Das Portal verbindet sich mit Dataverse als einzelner Anwendungsnutzer und drückt die angemeldete Sitzung durch die Imitation des Ziels aus. Der Administrator wird nie übertragen, sodass im Dataverse-Auditlog "ein Administrator, der als Kontakt fungiert" und "der Kontakt sich normal anmeldet" nicht unterscheidbar sind – und alles, was während der Impersonation geschrieben wird, wird dem Kontakt in createdby und modifiedbyzugeordnet. Der portalseitige Pfad ist der einzige Ort, an dem diese Informationen existieren, weshalb sie nicht optional sind.

Aus der Box wird jedes Ereignis ins Anwendungsprotokoll geschrieben. Implementieren Sie IImpersonationAuditSink es so, dass es überall dort gespeichert wird, wo Ihre Organisation ihre Audit-Aufzeichnungen speichert – Sinks werden neben dem integrierten hinzugefügt, anstatt ihn zu ersetzen.

Von React

Das gleiche Erlebnis wird für React ausgeliefert: ein Profilmenü-Eintrag, der Picker und das Banner. Die zugrundeliegenden Aktionen sind aktiviert useAuth() , wenn du lieber deine eigene Benutzeroberfläche darum herum aufbauen möchtest.

Es lohnt sich zu wissen

  • Wenn der nachgeahmte Kontakt sein Passwort mitten in der Sitzung ändert, endet die Sitzung und du wirst wieder in den ausgeloggten Zustand zurückgesetzt, statt auf dein eigenes Konto. Eine erneute Anmeldung stellt das Passwort wieder her.
  • Imitation kann nicht verschachtelt werden. Stoppe die aktuelle Sitzung, bevor du eine neue startest.
  • Sie überdauert die Browsersitzung nicht – das Schließen des Browsers beendet sie.