Active Directory und anspruchsbasierte Authentifizierung
Veröffentlicht: November 2016
Gilt für: Dynamics CRM 2015
Anspruchsbasierte Authentifizierung bietet ein branchenkompatibles Sicherheitsprotokoll, um einen Benutzer auf einem Hostcomputer zu authentifizieren. Anspruchsbasierte Authentifizierung ist eine Reihe WS-*-Standards, die die Verwendung eines Security Assertion Markup Language (SAML)-Tokens im passiven Modus (wenn der WS-Verbund mit der Microsoft Dynamics CRM 2015 und Microsoft Dynamics CRM Online 2015-Update-Webanwendung verwendet wird) oder aktiven Modus (wobei WS-Trust mit Windows Communication Foundation (WCF)-Clients verwendet wird) beschreiben. Diese Authentifizierung arbeitet mit WCF, um eine sichere Benutzerauthentifizierung und einen Kommunikationskanal mit einem Microsoft Dynamics 365-Server zu bieten. Alle Microsoft Dynamics 365-Editionen unterstützen anspruchsbasierte Authentifizierung.
Die anspruchsbasierte Authentifizierung erfordert die Verfügbarkeit von Sicherheitstokendienst (STS), das auf einem Server ausgeführt wird. Ein STS-Server kann auf Active Directory Federation Services (AD FS) V2 basiert sein, oder einer Plattform, die das offizielle STS-Protokoll bereitstellt. Weitere Informationen finden Sie im folgenden Thema in der CRM-Bereitstellungs- und -Verwaltungsdokumentation: TechNet: Konfigurieren von IFD für Microsoft Dynamics CRM 2015.
In diesem Thema
Unterstützte Authentifizierungsszenarien
Nicht-unterstützte Authentifizierungsszenarien
Authentifizierungsklassen
Authentifizierung mithilfe der Clientproxyklassen
Behandlung von Kanalausnahmen und -fehlern
Zusätzliche Informationen zum Sicherheitstoken (SAML)
Unterstützte Authentifizierungsszenarien
Microsoft Dynamics 365 unterstützt die folgenden Authentifizierungsszenarien für jede Bereitstellungsart.
Bereitstellung |
Authentifizierungsmodell |
---|---|
Microsoft Dynamics CRM Online |
Anspruchsbasierte oder Active Directory-Authentifizierung (durch Verbund) |
Microsoft Dynamics CRM 2015 (lokal) |
Anspruchsbasierte oder Active Directory-Authentifizierung |
Microsoft Dynamics CRM 2015Bereitstellung mit Internetzugriff (IFD) |
Anspruchsbasierte oder Active Directory-Authentifizierung |
So funktioniert die anspruchsbasierte Authentifizierung.
Eine Anforderung, einen Benutzer zu authentifizieren, wird von Microsoft Dynamics CRM 2015 oder Microsoft Dynamics CRM Online einer benutzerdefinierten Anwendung an den STS-Server gesendet. Der STS-Server ermittelt, ob der Benutzer authentifiziert werden soll, und gibt, wenn ja, ein verschlüsseltes SAML-Token aus, das die Benutzerauthentifizierungsinformationen enthält. Das Token hat eine begrenzte Lebensdauer und muss möglicherweise regelmäßig aktualisiert werden, abhängig davon, wie lange die Anwendung das Token verwendet. Dies wird weiter unten in diesem Thema detaillierter behandelt.
So funktioniert Active Directory-Authentifizierung.
Eine Anforderung, einen Benutzer zu authentifizieren, wird von Microsoft Dynamics 365 oder einer benutzerdefinierten Anwendung an Active Directory gesendet. Der WCF-Stapel verwaltet den Authentifizierungsprozess für Microsoft Dynamics CRM SDK-API-Aufrufe aus einer Anwendung, während Internetinformationsdienste (IIS) die Authentifizierung für eine Webanwendung verwaltet.
Nicht-unterstützte Authentifizierungsszenarien
Die Verwendung von Clientzertifikaten wird von Microsoft Dynamics CRM SDK nicht unterstützt. Wen Sie die Microsoft Dynamics CRM-Website so konfigurieren, dass IIS-Clientzertifikate erforderlich sind, erhalten Sie Authentifizierungsfehler bei allen Anwendungen, die mithilfe des SDK erstellt wurden.
Weitere Informationen zu zusätzlichen unterstützten Programmierverfahren finden Sie unter Nicht unterstützte Anpassungen.
Authentifizierungsklassen
Die folgende Tabelle enthält die primären Authentifizierungsklassen, die im SDK verfügbar sind, beschreibt, wann sie verwendet werden, und enthält Links zu weiteren relavanten Dokumentationen.
Klassen |
Verwendung |
Verwandte Dokumentationen |
---|---|---|
IServiceConfiguration<TService>, IServiceManagement<TService> |
Alle Bereitstellungstypen: lokale Version/IFD, online (Microsoft-Konto und Office 365/MOS*) Beste Option für Multi-Thread-Anwendungen |
Authentifizieren von Office 365-Benutzern durch die Microsoft Dynamics CRM Online-Webdienste Beispiel: Authentifizieren von Benutzern durch die Microsoft Dynamics CRM-Webdienste |
Alle Bereitstellungstypen: lokale Version/IFD, online (Microsoft-Konto und Office 365/MOS*) |
Authentifizierung mithilfe der Clientproxyklassen |
|
Alle Bereitstellungstypen: lokale Version/IFD, online (Microsoft-Konto und Office 365/MOS*) |
||
Verbindung mit dem Server |
Alle Bereitstellungstypen: lokale Version/IFD, online (Microsoft-Konto und Office 365/MOS*) Verwendung für Konsolentest-Anwendungen und Beispielcode. Entworfen, um die Benutzerfreundlichkeit zu verbessern, wenn SDK-Beispielcode ausgeführt wird und um die Nutzung der Authentifizierungsklassen vorzuführen. Enthält Konsolenausgabecode. |
*Microsoft Online Services-Umgebung
Authentifizierung mithilfe der Clientproxyklassen
Eine Möglichkeit, sich bei den Microsoft Dynamics 365-Webdiensten zu authentifizieren, ist durch Verwendung der OrganizationServiceProxy- und DiscoveryServiceProxy-Klassen in der Anwendung, die Sie schreiben. Der Vier-Parameter-Konstruktor dieser Klassen unterstützt Microsoft Dynamics CRM 2015 und Microsoft Dynamics CRM Online 2015-Update-Bereitstellungen. Diese Proxyklassen verarbeiten Ansprüche oder Active Directory-Authentifizierung automatisch und verwalten auch Ressourcenbegrenzungen im WCF-Kanalendpunkt.
Der folgende Codezeigt, wie der Organisationsserviceproxy instanziiert wird:
using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))
Der folgende Codezeigt, wie der Suchdienst-Proxy instanziiert wird:
using (DiscoveryServiceProxy _discProxy = new DiscoveryServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))
Es ist wichtig, die Serviceproxyinstanz ordnungsgemäß in der Anwendung zu entfernen, bevor die Anwendung beendet wird. Duch die using-Anweisung wird sichergestellt, dass der Serviceproxy ordnungsgemäß entfernt wird, indem automatisch auf dem Serviceproxy Dispose aufgerufen wird, wenn er den Bereich verlässt. Für verbesserte Leistung der Anwendung ist es jedoch eine bewährte Methode, die Serviceproxyinstanz in der Anwendung für die gesamte Anwendungssitzung verfügbar sein zu lassen, anstatt sie zu entfernen und sie an einer anderen Stelle in Anwendungscode nach Bedarf erneut zuzuweisen. Der Grund ist der, dass das Erstellen und Authentifizieren eines Servicekanals ein (zeitlich) aufwändiger Vorgang ist. In diesem Fall müssen Sie, wenn Sie die Serviceproxyinstanz beendet haben, die Entfernungs -Methode direkt auf dem Proxy aufrufen, bevor die Anwendung endet.
Die Geräteanmeldeinformationen des registrierten des Computers werden nur bei der Authentifizierung bei Microsoft Dynamics CRM Online durch den Microsoft-Konto-Identitätsanbieter verwendet. Beispielcode, der zeigt, wie die Proxykonstruktorparameter aufgefüllt werden, finden Sie unter Beispiel: Zugreifen auf den Suchdienst.
Wichtig
Bei einer lokale Bereitstellung oder einer Installatiopn mit Internetzugriff (IFD) von Microsoft Dynamics CRM 2015 verwenden die Clientproxyklassen anspruchsbasierte Authentifizierung, wenn ein STS-Server verfügbar ist. Andernfalls wird Active Directory-Authentifizierung verwendet.
Wenn Sie Microsoft Dynamics 365-Entitätstypen mit früher Bindung verwenden möchten, müssen Sie die folgende Codezeile hinzufügen, nachdem der Organisationsserviceproxy instanziiert ist, aber bevor Sie Webdienstmethodenaufrufe durchführen:
_serviceProxy.EnableProxyTypes()
Sicherheit Hinweis |
---|
WCF unterstützt eine Funktion, mit in der sie den Benutzer interaktiv zur Eingabe von Anmeldeinformationen auffordern können, falls es erforderlich ist. Diese Funktion wird aktiviert, indem die Eigenschaft SupportInteractive der ClientCredentials-Klasse festgelegt wird. Diese Anmeldeinformationen werden im userCredentials-Parameter verwendet, der im vorherigen Codeausschnitt gezeigt wurde. Wenn SDK-Aufrufe an die Microsoft Dynamics 365-webdienste durchgeführt werden, können der Besitz des Vorgangs und Entitätsdatenänderungen, die vom SDK-Aufruf durchgeführt werden, durch diese WCF-Funktion unabhängig von Ihrer Auswahl geändert werden. Microsoft Dynamics 365 behandelt bereitgestellte Anmeldeinformationen in Webdienstaufrufen wie folgt:
|
Behandlung von Kanalausnahmen und -fehlern
Ihr Code sollte die folgenden Ausnahmen und Fehler abfangen. In den C#- oder -Beispielen in Microsoft Dynamics CRM SDK finden Sie eine Liste von zusätzlichen Ausnahmen, die abzufangen sind:
Weitere Information finden Sie in der .NET FrameworkWCF-Dokumentation zur Behandlung von WCF-Fehlern und -Ausnahmen. Vgl. Verwenden des Beispiel- und Hilfscode für zusätzlichen Beispielcode.
Zusätzliche Informationen zum Sicherheitstoken (SAML)
Das SAML-Token, das bei der Benutzerauthentifizierung verwendet wird, wird unten beschrieben.
Inhalt des SAML-Tokens
Das XML-basierte SAML 2.0-Token enthält eine Identität, die einen oder mehrere Ansprüche zu einem Benutzer definiert. Dieses Token wird zwischen einem Identitätsanbieter (STS)-Server und Microsoft Dynamics 365 für anspruchsbasierte Authentifizierung übergeben. Die Ansprüche in der Identität sind wie folgt definiert worden.
Anspruch |
Verwenden |
---|---|
Universeller Prinzipalname (UPN) |
Enthält die ID des Benutzers im domain\alias-Format auf dem Ziel-Microsoft Dynamics 365-Server. |
Name |
Wenn der authentifizierte Benutzer auch ein Bereitstellungsadministrator in Microsoft Dynamics 365 ist, enthält dieser Anspruch die ID des Bereitstellungsadministrators im domain\alias-Format auf dem Ziel-Microsoft Dynamics 365-Server.Windows Identity Foundation ordnet den Name-Anspruch zur Identity.name-Eigenschaft zu. |
Weitere Ansprüche |
Nicht verwendet von Microsoft Dynamics 365. |
Unterstützte Sicherheitstokentypen
Microsoft Dynamics CRM 2015 und Microsoft Dynamics CRM Online 2015-Update unterstützen zwei Typen von SAML-Tokens:
Webanwendung - Die Microsoft Dynamics 365-Webanwendung erhält ein Trägertoken von STS. Diesem Token fehlen einige der erforderlichen Informationen, daher wird eine SSL (Secure Sockets Layer)-basierte URL (https://) als Sicherheitsschutz verwendet, wenn Sie auf den WCF-Endpunkt zugreifen.
SDK - Eine benutzerdefinierte Anwendung empfängt ein aktives Token mit einem Prüfschlüssel, das die erforderlichen Informationen enthält.
Lebenszyklus eines Sicherheitstokens
Die Gültigkeitsdauer eines SecurityToken wird durch seine ValidFrom- und ValidTo-Eigenschaften identifiziert. Ihr Anwendungsdesign sollte die Möglichkeit berücksichigen, dass das Token ablaufen könnte, mit dem Ergebnis, dass eine ExpiredSecurityTokenException durch die Microsoft Dynamics 365-Webdienste ausgelöst wird, wenn die nächste Nachrichtenanforderung von Ihrer Anwendung verarbeitet wird.
Siehe auch
Authentifizieren von Benutzern durch die Microsoft Dynamics CRM 2015-Webdienste
Verbinden Sie sich mit Microsoft Office 365 und Microsoft Dynamics CRM Online
Vereinfachte Verbindung mit Microsoft Dynamics CRM 2015
Ermitteln der URL für Ihre Organisation mit IDiscoveryService-Webdienst
Verwenden des IOrganizationService-Webdiensts, um Daten oder Metadaten zu lesen und zu schreiben
Verwenden Sie im Code die Entitätsklassen mit früher Bindung
Beispiel: Erstellen, Abrufen, Aktualisieren und Löschen von Datensätzen (frühe Bindung)
Hilfscode: Klasse "ServerConnection"
Hilfscode: Klasse DeviceIdManager
Blog: Erstellung von Clients für Windows Phone und Windows 8 RT
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright