Active Directory en verificatie op basis van claims
Gepubliceerd: november 2016
Is van toepassing op: Dynamics CRM 2015
Op claims gebaseerde verificatie biedt een beveiligingsprotocol volgens industrienormen om een gebruiker op een hostcomputer te verifiëren. Op claims gebaseerde verificatie is een reeks WS-* standaarden die het gebruik van een Security Assertion Markup Language (SAML) token in passieve modus (indien WS-federatie wordt gebruikt met de Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update webtoepassing) of actieve modus (waarbij WS-trust wordt gebruikt met Windows Communication Foundation (WCF) clients.) Deze verificatie werkt samen met WCF om beveiligde gebruikersverificatie te bieden en een communicatiekanaal met een Microsoft Dynamics 365 server. Alle Microsoft Dynamics 365 versies ondersteunen op claims gebaseerde verificatie.
Op claims gebaseerde verificatie vereist de beschikbaarheid van een beveiligingstokenservice (STS) die op een server wordt uitgevoerd. Een STS-server kan zijn gebaseerd op Active Directory Federation Services (AD FS) V2 of een platform dat het officiële STS-protocol biedt. Zie voor meer informatie het volgende onderwerp in de documentatie voor CRM-installatie en -beheer: TechNet: IFD configureren voor Microsoft Dynamics CRM 2015.
In dit onderwerp
Ondersteuning van op verificatie gebaseerde scenario's
Niet-ondersteunde verificatiescenario's
Verificatieklasses
Verificatie door de clientproxyklasses te gebruiken
Kanaaluitzonderingen en fouten verwerken
Aanvullende informatie over het veiligheidstoken (SAML)
Ondersteuning van op verificatie gebaseerde scenario's
Microsoft Dynamics 365 ondersteunt de volgende verificatiescenario's voor elk installatietype.
Installatie |
Verificatiemodel |
---|---|
Microsoft Dynamics CRM Online |
Op claims gebaseerde Active Directory (via federatie) verificatie |
Microsoft Dynamics CRM 2015 on-premises |
Op claims gebaseerde of Active Directory verificatie |
Microsoft Dynamics CRM 2015Internet Facing Deployment (IFD) |
Op claims gebaseerde of Active Directory verificatie |
Hoe op claims gebaseerde verificatie werkt
Een aanvraag is om een gebruiker te verifiëren wordt verzonden van Microsoft Dynamics CRM 2015 of Microsoft Dynamics CRM Online of een aangepaste toepassing naar de STS-server. De STS-server bepaalt of de gebruiker moet worden geverifieerd, en als dat zo is, geeft deze een getekend en gecodeerd SAML-token uit die informatie over gebruikersverificatie bevat. Het token heeft een bepaalde levensduur en moet mogelijk af en toe worden vernieuwd, afhankelijk van hoe lang uw toepassing het token gebruikt. Dit wordt later in dit onderwerp meer in detail besproken.
Hoe Active Directory-verificatie werkt
Een aanvraag om een gebruiker te verifiëren wordt verzonden van Microsoft Dynamics 365 of een aangepaste toepassing naar Active Directory. De WCF-stack beheert het verificatieproces voor Microsoft Dynamics CRM SDK API oproepen van een toepassing, terwijl Internet Information Services (IIS) verificatie beheert voor een webtoepassing.
Niet-ondersteunde verificatiescenario's
Het gebruik van clientcertificaten wordt niet ondersteund door Microsoft Dynamics CRM SDK. Als u de Microsoft Dynamics CRM-website zo configureert dat IIS-clientcertificaten vereist zijn, krijgt u verificatiefouten voor alle toepassingen die met de SDK zijn gebouwd.
Voor meer informatie over verdere niet-ondersteunde programmeermethoden, raadpleegt u Niet-ondersteunde aanpassingen.
Verificatieklasses
De volgende tabel geeft de primaire verificatieklassen die beschikbaar zijn in de SDK, beschrijft wanneer deze kunnen worden gebruikt, en bevat koppelingen naar aanvullende relevante documentatie.
Klassen |
Gebruik |
Verwante documentatie |
---|---|---|
IServiceConfiguration<TService>, IServiceManagement<TService> |
Alle installatietypes: on-premises/IFD, online (Microsoft-account en Office 365/MOS*) Beste keuze voor multi-threaded toepassingen |
Gebruikers van Office 365 verifiëren met Microsoft Dynamics CRM Online-webservices Voorbeeld: Gebruikers verifiëren met Microsoft Dynamics CRM-webservices De prestaties bij toewijzing van het servicekanaal verbeteren |
Alle installatietypes: on-premises/IFD, online (Microsoft-account en Office 365/MOS*) |
Verificatie door de clientproxyklasses te gebruiken Voorbeeld: Toegang tot de Discovery-service De prestaties bij toewijzing van het servicekanaal verbeteren |
|
Alle installatietypes: on-premises/IFD, online (Microsoft-account en Office 365/MOS*) |
Vereenvoudigde verbinding met Microsoft Dynamics CRM 2015 Voorbeeld: Snel aan de slag met een vereenvoudigde verbinding met Microsoft Dynamics CRM |
|
ServerConnection |
Alle installatietypes: on-premises/IFD, online (Microsoft-account en Office 365/MOS*) Gebruik voor de consoletesttoepassingen en voorbeeldcode. Ontworpen om de bruikbaarheid te verbeteren bij het uitvoeren van SDK-voorbeeldcode en het gebruik van de verificatieklasses weer te geven. Bevat code van de console-uitvoer. |
*Microsoft Online Services-omgeving
Verificatie door de clientproxyklasses te gebruiken
Een manier om te verifiëren met de Microsoft Dynamics 365 webservices is het gebruik van de OrganizationServiceProxy en DiscoveryServiceProxy klasses in de toepassingen die u schrijft. De constructor met vier parameters voor deze klasses ondersteunt Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update implementaties. Deze proxyklasses verwerken automatisch claims of Active Directory verificatie en beheren ook resourcelimieten op het WCF-kanaaleindpunt.
De volgende code toont hoe u een exemplaar maakt van de organisatieserviceproxy:
using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))
De volgende code toont hoe u een exemplaar maakt van de discoveryserviceproxy:
using (DiscoveryServiceProxy _discProxy = new DiscoveryServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))
Het is belangrijk om het exemplaar van de serviceproxy in uw toepassing goed te verwijderen voordat u de toepassing afsluit. De verklaring using zorgt ervoor dat de serviceproxy correct wordt verwijderd door automatisch Dispose aan te roepen wanneer deze buiten bereik raakt. Voor een verbeterde prestatie van de toepassing is het echter aan te raden een exemplaar van de serviceproxy beschikbaar te hebben in uw toepassing voor de volledige toepassingssessie in plaats van het te verwijderen en ergens anders in de toepassingscode opnieuw toe te wijzen. De reden is dat het maken en verifiëren van een servicekanaal een dure bewerking (wat betreft tijd) is. In dit geval moet u, wanneer u klaar bent met het exemplaar van de serviceproxy, rechtstreeks de methode Dispose op de proxy aanroepen voordat de toepassing wordt beëindigd.
De apparaatreferenties van het geregistreerde gegevensverwerkingsapparaat worden alleen gebruikt voor verificatie met Microsoft Dynamics CRM Online via Microsoft-account identiteitsprovider. Voor voorbeeldcode die laat zien hoe u de parameters van de proxyconstructor invult, raadpleegt u Voorbeeld: Toegang tot de Discovery-service.
Belangrijk
Voor een on-premises of een Internet-facing deployment (IFD) installatie van Microsoft Dynamics CRM 2015, gebruiken de klassen van de clientproxy op claims gebaseerde verificatie als er een STS-server beschikbaar is. Anders wordt Active Directory verificatie gebruikt.
Als u Microsoft Dynamics 365 vroeg gebonden entiteittypes in uw code wilt gebruiken, moet u de volgende regel code toevoegen nadat een exemplaar is gemaakt van de serviceproxy van de organisatie, maar voordat u de webservicemethode aanroep:
_serviceProxy.EnableProxyTypes()
Beveiliging Opmerking |
---|
WCF ondersteunt een functie waarmee het de gebruiker interactief kan vragen naar aanmeldgegevens indien nodig. Deze functie is ingeschakeld door de eigenschap SupportInteractive van de klasse ClientCredentials in te stellen. Deze referenties worden gebruikt in de parameter userCredentials in het vorige codestukje. Bij het maken van SDK-aanroepen naar de Microsoft Dynamics 365 webservices, kan eigendom van de bewerking en wijziging van entiteitgegevens, uitgevoerd door de SDK-oproep, worden gewijzigd door deze WCF-functie, ongeacht uw code. Microsoft Dynamics 365 verwerkt de ingevoerde referenties in webserviceaanroepen als volgt:
|
Kanaaluitzonderingen en fouten verwerken
Uw code moet de volgende uitzonderingen en fouten bevatten. Zie de C#-voorbeelden in de Microsoft Dynamics CRM SDK voor een lijst met aanvullende uitzonderingen om op te vangen:
Voor meer informatie, zie de .NET FrameworkWCF-documentatie over het verwerken van WCF-fouten en uitzonderingen. Zie Het voorbeeld en de helpercode gebruiken voor aanvullende voorbeeldcode.
Aanvullende informatie over het veiligheidstoken (SAML)
Het SAML token dat werd gebruikt tijdens gebruikersverificatie wordt hieronder beschreven.
Inhoud van de SAML token
De op XML gebaseerde SAML 2.0 token bevat een identiteit die een of meerdere claims over een gebruiker bepaalt. Het token is doorgegeven tussen een identiteitsprovider (STS) server en Microsoft Dynamics 365 voor op claims gebaseerde verificatie. Claims in de identiteit zijn als volgt gedefinieerd.
Claim |
Gebruiken |
---|---|
Universal Principal Name (UPN) |
Bevat de gebruikers-id in domain\aliasindeling op de doel Microsoft Dynamics 365 server. |
Naam |
Als de geverifieerde gebruiker ook een Deployment Administrator is in Microsoft Dynamics 365, bevat deze claim de ide van de deployment administrator in domein/aliasindeling op de doel Microsoft Dynamics 365 server.Windows Identity Foundation koppelt de claim Name aan de eigenschap Identity.name. |
Andere claims |
Niet gebruikt door Microsoft Dynamics 365. |
Ondersteunde types beveiligingstoken
Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update ondersteunt twee types SAML-tokens:
Webtoepassing De Microsoft Dynamics 365 webtoepassing ontvangt een dragerstoken van STS. In dit token ontbreekt wat vereiste informatie zodat een op Secure Sockets Layer (SSL) gebaseerde URL (https://) wordt gebruikt voor beveiliging wanneer u het WCF-eindpunt opent.
SDK - Een aangepaste toepassing ontvangt een actieve token met een bewijssleutel die de vereiste informatie bevat.
De levenscyclus van de beveiligingstoken
Een SecurityToken heeft een levensduur die wordt bepaald door ValidFrom en ValidTo eigenschappen. Uw toepassingontwerp moet rekening houden met de mogelijkheid dat het token kan verlopen, wat leidt tot een ExpiredSecurityTokenException die door de Microsoft Dynamics 365 webservices wordt geretourneerd wanneer de volgende berichtaanvraag van uw toepassing wordt verwerkt.
Zie ook
Gebruikers verifiëren met Microsoft Dynamics CRM 2015-webservices
Verbinding maken met Microsoft Office 365 en Microsoft Dynamics CRM Online
Vereenvoudigde verbinding met Microsoft Dynamics CRM 2015
De URL voor uw organisatie bepalen met de IDiscoveryService-webservice
Gebruik de IOrganizationService-webservice om metagegevens of gegevens te lezen en schrijven
De eerder gebonden entiteitklassen in code gebruiken
Voorbeeld: Records maken, ophalen, bijwerken en verwijderen (vroeg gebonden)
Helpercode: klasse ServerConnection
Helpercode: klasse DeviceIdManager
Blog: clients bouwen voor Windows Phone en Windows 8 RT
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht