Identitätswechsel in Plug-Ins
Veröffentlicht: Januar 2017
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Identitätswechsel wird verwendet, um die Geschäftslogik (benutzerdefinierter Code) im Auftrag eines Microsoft Dynamics 365-Systembenutzers auszuführen, um für den Benutzer eine gewünschte Funktionen oder einen Dienst bereitzustellen. Sämtliche Geschäftslogik, die in einem Plug-Ins, einschließlich Webdienstmethodenaufrufe und Datenzugriff, ausgeführt wird, wird durch die Sicherheitsrechte des Benutzers mit dem Identitätswechsel geregelt.
Plug-Ins, die weder vom Sandkasten noch vom asynchronen Service ausgeführt werden, werden unter dem Sicherheitskonto ausgeführt, das auf der Registerkarte Identität des Dialogfelds CRMAppPool-Eigenschaften angegeben ist. Auf das Dialogfeld kann zugegriffen werden, indem im Internetinformationsdienste (IIS) Manager mit der rechten Maustaste auf den Anwendungspool CRMAppPool geklickt und dann im Kontextmenü auf Eigenschaften geklickt wird. Standardmäßig verwendet CRMAppPool die Netzwerkdienstkontoidentität. Dies kann von einem Systemadministrator jedoch während der Installation geändert werden. Wenn die CRMAppPool-Identität auf eine andere Systemkonto als dem Netzwerkdienst geändert wird, muss das neue Identitätskonto der Gruppe PrivUserGroup in Active Directory hinzugefügt werden.Weitere Informationen:TechNet: Ändern eines Microsoft Dynamics CRM-Dienstkontos oder einer AppPool-Identität für detailliertere Anleitungen.
Die zwei Möglichkeiten, die für einen Identitätswechsel bei einem Benutzer eingesetzt werden können, werden unten behandelt.
Identitätswechsel während der Plug-In-Registrierung
Eine Möglichkeit, innerhalb eines Plug-Ins die Identität eines Systembenutzers anzunehmen, besteht darin, den Benutzer mit der angenommenen Identität während der Registrierung des Plug-Ins anzugeben. Wenn Sie ein Plug-In programmgesteuert registrieren, wird das SdkMessageProcessingStep.ImpersonatingUserId-Attribut auf einen bestimmten Microsoft Dynamics 365-Systembenutzer festgelegt. Webdienstaufrufe des Plug-In werden im Auftrag des Benutzers mit der angenommenen Identität ausgeführt. Wird ImpersonatingUserId während der Plug-In-Registrierung auf einen Wert von null oder Guid.Empty festgelegt, ist der aufrufende/angemeldete Benutzer oder standardmäßige "Systembenutzer" der Benutzer mit der angenommenen Identität.
Ob der aufrufende/angemeldete Benutzer oder der "Systembenutzer" für den Identitätswechsel verwendet wird, hängt davon ab, ob die Anforderung von der Pipeline oder verarbeitet wird, oder außerhalb des Rahmens der SDK-Dokumentation liegt. Weitere Informationen zum "Systembenutzer" finden Sie im nächsten Thema.
Hinweis
Wenn Sie ein Plug-In mithilfe des Beispiel-Plug-In-Regisitrierungstools registrieren, das mit dem SDK-Download bereitgestellt wird, werden die Servicemethoden, die durch das Plug-In aufgerufen werden, standardmäßig unter dem Konto des aufrufenden oder angemeldeten Benutzers ausgeführt, es sei denn, Sie wählen im Dropdownmenü Im Kontext des Benutzers ausführen einen anderen Benutzer aus. Weitere Informationen zum Toolbeispielcode finden Sie im Toolcode im SDK\Tools\PluginRegistration-Ordner des SDK-Pakets.Laden Sie das Microsoft Dynamics CRM SDK-Paket herunter.
Identitätswechsel während der Plug-In-Ausführung
Identitätswechsel, der bei der Plug-In-Registrierung definiert wurde, kann zur Laufzeit eines Plug-Ins geändert werden. Selbst wenn bei Plug-In-Registrierung kein Identitätswechsel definiert wurde, kann für Plug-In-Code dennoch Identitätswechsel verwendet werden. In der folgenden Diskussion werden die Schlüsseleigenschaften und -methoden identifiziert, die beim Identitätswechsel eine Rolle spielen, wenn in einem Plug-In Webdienstmethodeaufrufe ausgeführt werden.
Die Plattform gibt die ID der angenommenen Identität durch die UserId-Eigenschaft zur Laufzeit an das Plug-In weiter. Diese Eigenschaft kann einen von drei verschiedenen Werten haben, wie unten in der folgenden Tabelle aufgeführt.
UserId Wert |
Bedingung |
---|---|
Initiierender Benutzer oder "Systembenutzer" |
Das SdkMessageProcessingStep.ImpersonatingUserId-Attribut wird bei Plug-In-Registrierung auf null oder Guid.Empty festgelegt. |
Vertretener Benutzer |
Die ImpersonatingUserId-Eigenschaft wird bei Plug-In-Registrierung auf eine gültige Systembenutzer-ID festgelegt. |
"Systembenutzer" |
Die aktuelle Pipeline wurde von der Plattform ausgeführt, nicht als direkte Antwort auf einen Servicemethodenaufruf. |
Die InitiatingUserId-Eigenschaft des Ausführungskontexts enthält die ID des Systembenutzers, der die Servicemethode aufgerufen hat, die letztendlich die Ausführung des Plug-Ins veranlasst hat.
Wichtig
Bei Plug-Ins, die offline ausgeführt werden, besitzt der angemeldete Benutzer alle Entitäten, die vom Plug-In erstellt werden. Identitätswechsel in Plug-Ins wird im Offlinemodus nicht unterstützt.
Siehe auch
Plug-In-Entwicklung
Registrieren und Bereitstellen von Plug-Ins
Nachvollziehen des Datenkontexts, der an einem Plug-In übergeben wird
Annehmen der Identität eines anderen Benutzers
Microsoft Dynamics 365
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright