Active Directory et authentification basée sur les revendications
Date de publication : novembre 2016
S’applique à : Dynamics CRM 2015
L’authentification basée sur les revendications fournit un protocole de sécurité standard pour authentifier un utilisateur sur un ordinateur hôte. L'authentification basée sur les revendications est un ensemble de normes WS-* décrivant l'utilisation d'un jeton SAML (Security Assertion Markup Language) en mode passif (lorsque WS-Federation est utilisée avec l'application Web de Mise à jour de Microsoft Dynamics CRM 2015 et de Microsoft Dynamics CRM Online 2015 ) ou en mode actif (lorsque WS-Trust est utilisé avec les clients Windows Communication Foundation (WCF)). Cette authentification fonctionne avec WCF pour fournir une authentification de l'utilisateur et un canal de communication sécurisés avec un serveur Microsoft Dynamics 365. Toutes les éditions Microsoft Dynamics 365 prennent en charge de l’authentification basée sur les revendications.
L’authentification basée sur les revendications nécessite la disponibilité d’un service d'émission de jeton de sécurité (STS) exécuté sur un serveur. Un serveur STS peut être basé sur Active Directory Federation Services (AD FS) V2, ou une plateforme qui fournit le protocole STS officiel. Pour plus d'informations, consultez la rubrique suivante dans la documentationDéploiement et administration de CRM : TechNet : configuration d'IFD pour Microsoft Dynamics CRM 2015.
Contenu de la rubrique
Scénarios d’authentification pris en charge
Scénarios d’authentification non pris en charge
Classes d’authentification
Authentification via des classes proxy clientes
Gestion des exceptions et des défauts de canal
Autres informations sur le jeton de sécurité (SAML)
Scénarios d’authentification pris en charge
Microsoft Dynamics 365 prend en charge les scénarios d’authentification suivants pour chaque type de déploiement.
Déploiement |
Modèle d'authentification |
---|---|
Microsoft Dynamics CRM Online |
Authentification basée sur les revendications ou Active Directory (via la fédération) |
Microsoft Dynamics CRM 2015 local |
Authentification basée sur les revendications ou Active Directory |
Microsoft Dynamics CRM 2015Déploiement avec accès via Internet (IFD) |
Authentification basée sur les revendications ou Active Directory |
Fonctionnement de l’authentification basée sur les revendications
Une demande d’authentification d’un utilisateur est envoyée depuis Microsoft Dynamics CRM 2015 ou Microsoft Dynamics CRM Online ou d’une application personnalisée au serveur STS. Le serveur STS détermine si l’utilisateur doit s’authentifier et, dans ce cas-là, émet un jeton SAML signé et chiffré qui contient les informations d’authentification utilisateur. Le jeton a une durée de vie limitée et peut être régulièrement actualisé en fonction de la durée pendant laquelle votre application utilise le jeton. Ceci est présenté plus en détail plus loin dans cette rubrique.
Fonctionnement de l’authentification Active Directory
Une demande d’authentification d’un utilisateur est envoyée depuis Microsoft Dynamics 365 ou une application personnalisée vers Active Directory. La pile WCF gère le processus d’authentification des appels d’API du SDK Microsoft Dynamics CRM à partir d’une application, alors qu’Internet Information Services (IIS) gère l’authentification pour une application Web.
Scénarios d’authentification non pris en charge
L’utilisation des certificats clients n’est pas prise en charge par le SDK Microsoft Dynamics CRM. Si vous configurez le site Web Microsoft Dynamics CRM pour qu’il requiert des certificats clients IIS, vous recevrez des erreurs d’authentification pour toutes les applications qui ont été créées avec le Kit de développement logiciel.
Pour plus d’informations sur les méthodes de programmation non prises en charge supplémentaires, voir Personnalisations non prises en charge.
Classes d’authentification
Le tableau suivant répertorie les principales classes d’authentification disponibles dans le SDK, explique quand les utiliser et fournit des liens vers de la documentation supplémentaire appropriée.
Classes |
Utilisation |
Documentation connexe |
---|---|---|
IServiceConfiguration<TService>, IServiceManagement<TService> |
Tous les types de déploiement : local/IFD, en ligne (Compte Microsoft et Office 365/MOS*) Le meilleur choix pour les applications multi-thread |
Authentifier les utilisateurs d'Office 365 avec des services Web Microsoft Dynamics CRM Online Exemple : Authentifier les utilisateurs avec des services Web Microsoft Dynamics CRM Améliorer les performances d'allocation des canaux de service |
Tous les types de déploiement : local/IFD, en ligne (Compte Microsoft et Office 365/MOS*) |
Authentification via des classes proxy clientes Exemple : Accéder au service de découverte Améliorer les performances d'allocation des canaux de service |
|
Tous les types de déploiement : local/IFD, en ligne (Compte Microsoft et Office 365/MOS*) |
Connexion simplifiée à Microsoft Dynamics CRM 2015 Exemple : démarrage rapide de la connexion simplifiée avec Microsoft Dynamics CRM |
|
ServerConnection |
Tous les types de déploiement : local/IFD, en ligne (Compte Microsoft et Office 365/MOS*) À utiliser pour les applications test de console et un exemple de code. Conçu pour une meilleure utilisation lors de l’exécution de l’exemple de code du SDK et pour illustrer l’utilisation des classes d’authentification. Contient un code de sortie de la console. |
*Environnement Microsoft Online Services
Authentification via des classes proxy clientes
L’authentification auprès des services Web de Microsoft Dynamics 365 peut être effectué en utilisant les classes OrganizationServiceProxy et DiscoveryServiceProxy dans les applications que vous écrivez. Le constructeur à quatre paramètres de ces classes prend en charge les déploiements de Mise à jour de Microsoft Dynamics CRM 2015 et de Microsoft Dynamics CRM Online 2015. Ces classes proxy gèrent automatiquement les revendications ou l’authentification Active Directory, ainsi que les limitations de ressources sur le point de terminaison des canaux WCF.
Le code suivant montre comment instancier le proxy du service d’organisation :
using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))
Le code suivant montre comment instancier le proxy du service de découverte :
using (DiscoveryServiceProxy _discProxy = new DiscoveryServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials))
Il est important de se débarrasser correctement de l’instance de proxy du service dans votre application avant que l’application prenne fin. L’instruction using vérifie que le proxy du service est correctement supprimé en appelant automatiquement Dispose sur le proxy du service lorsqu’il sort de l’étendue. Toutefois, pour améliorer les performances de l’application, il est recommandé de maintenir l’instance du proxy de service disponible dans votre application pour toute la durée de la session de l’application plutôt que de la supprimer et de l’allouer à nouveau ailleurs dans le code d’application lorsque nécessaire. Ceci est dû au fait que la création et l’authentification d’un canal de service est une opération coûteuse (en temps). Dans ce cas, lorsque vous avez terminé avec l’instance du proxy de service, vous devez directement appeler la méthode Dispose sur le proxy avant que l’application ne se ferme.
Les informations d’identification appareil du périphérique informatique enregistré sont uniquement utilisées lors de l’authentification auprès de Microsoft Dynamics CRM Online via le fournisseur d’identité Compte Microsoft. Pour obtenir un exemple de code qui explique comment renseigner les paramètres de constructeur proxy, voir Exemple : Accéder au service de découverte.
Important
Pour une installation locale ou un déploiement Internet (IFD) de Microsoft Dynamics CRM 2015, les classes proxy clientes utilisent l’authentification basée sur les revendications si un serveur STS est disponible. Sinon, lorsque l’authentification Active Directory est utilisée.
Si vous souhaitez utiliser les types d’entités à liaison anticipée Microsoft Dynamics 365 dans votre code, vous devez ajouter la ligne de code suivante une fois le proxy du service d’organisation instancié, mais avant de passer des appels de méthodes de service Web :
_serviceProxy.EnableProxyTypes()
Sécurité Remarque |
---|
WCF prend en charge une fonctionnalité où il peut interactivement inviter l’utilisateur à entrer des informations d’ouverture de session lorsque cela est nécessaire. Activez cette fonctionnalité en définissant la propriété SupportInteractive de la classe ClientCredentials. Ces informations d’identification sont utilisées dans le paramètre userCredentials, illustré dans l’extrait de code précédent. En effectuant des appels SDK aux services Web de Microsoft Dynamics 365, la propriété des modifications de données opérationnelles et d’entité effectuées par l’appel SDK peut être modifiée par cette fonctionnalité WCF indépendante de votre code. Microsoft Dynamics 365 gère les informations d’identification dans les appels du service Web comme suit :
|
Gestion des exceptions et des défauts de canal
Votre code doit déceler les exceptions et les défauts suivants. Consultez les exemples C# dans le SDK Microsoft Dynamics CRM pour obtenir la liste des exceptions supplémentaires à détecter :
Pour plus d’informations, voir la Documentation WCF de .NET Framework sur la gestion des défauts et des exceptions WCF. Pour obtenir un autre code d’exemple, voir Utiliser l’exemple de code et le code d’assistance.
Autres informations sur le jeton de sécurité (SAML)
Le jeton SAML utilisé pendant l’authentification de l’utilisateur est décrit ci-dessous.
Contenu du jeton SAML
Le jeton SAML 2.0 basé sur XML contient une identité qui définit une ou plusieurs revendications sur un utilisateur. Ce jeton est transmis entre un serveur du fournisseur d’identité (STS) et Microsoft Dynamics 365 pour l’authentification basée sur les revendications. Les revendications dans l’identité ont été définies comme suit.
Revendication |
Utiliser |
---|---|
Nom principal universel (UPN) |
Contient l’ID de l’utilisateur au format domaine\alias sur le serveur Microsoft Dynamics 365 cible. |
Nom |
Si l’utilisateur authentifié est également un administrateur de déploiement dans Microsoft Dynamics 365, cette revendication contient l’ID de l’administrateur de déploiement au format domaine\alias sur le serveur Microsoft Dynamics 365 cible.Windows Identity Foundation mappe la revendication Name à la propriété Identity.name. |
Autres revendications |
Non utilisées par Microsoft Dynamics 365. |
Types de jeton de sécurité pris en charge
Mise à jour de Microsoft Dynamics CRM 2015 et de Microsoft Dynamics CRM Online 2015 prennent en charge deux types de jetons SAML :
Application Web - L’application Web Microsoft Dynamics 365 reçoit un jeton porteur de STS. Certaines informations requises sont manquantes dans ce jeton ; par conséquent, une URL basée sur SSL (Secure Sockets Layer)(https://) est utilisée pour la protection de sécurité lorsque vous accédez au point de terminaison WCF.
SDK - Une application personnalisée reçoit un jeton actif à une clé de vérification qui contient les informations requises.
Cycle de vie du jeton de sécurité
Un SecurityToken a une durée de vie indiquée dans ses propriétés ValidFrom et ValidTo. Votre conception de l’application doit prendre en compte le risque que le jeton peut expirer, ce qui entraînerait la levée d’une exception ExpiredSecurityTokenException par les services Web de Microsoft Dynamics 365 lorsque la requête de messages suivante de votre application est traitée.
Voir aussi
Authentifier les utilisateurs avec les services Web Microsoft Dynamics CRM 2015
Connexion avec Microsoft Office 365 et Microsoft Dynamics CRM Online
Connexion simplifiée à Microsoft Dynamics CRM 2015
Découvrir l’URL de votre organisation avec le service Web IDiscoveryService
Utilisez le service Web IOrganizationService pour lire et écrire des données ou des métadonnées
Utiliser les classes d’entité à liaison anticipée dans le code
Exemple : créer, récupérer, mettre à jour et supprimer des enregistrements (liaison anticipée)
Code d’assistance : classe ServerConnection
Code d’assistance : classe DeviceIdManager
Blog : Création de clients pour Windows Phone et Windows 8 RT
© 2017 Microsoft. Tous droits réservés. Copyright