Configuration de l'authentification unique (SSO) pour Salesforce en utilisant Microsoft AD FS en tant que fournisseur d’identité
Permettez à vos utilisateurs de se connecter à une organisation Salesforce depuis un environnement Microsoft en utilisant Microsoft Active Directory Federation Services (AD FS) 2.0. Microsoft AD FS fonctionne en tant que fournisseur d’identité pour l’authentification unique.
Éditions requises
| Disponible avec : Lightning Experience et Salesforce Classic |
| Disponible avec : Enterprise Edition, Performance Edition, Unlimited Edition et Developer Edition |
Microsoft AD FS 2.0 prend en charge le protocole SAML 2.0. Lorsque AD FS 2.0 est configuré en tant que fournisseur d’identité de Salesforce, les utilisateurs peuvent se connecter à Salesforce en utilisant l’authentification unique.
Le point de terminaison AD FS UserInfo renvoie uniquement l'objet claim tel qu'il est spécifié dans les normes OpenID. Il ne fournit pas les claims supplémentaires demandés via le point de terminaison UserInfo. Si vous avez besoin de claims supplémentaires dans le jeton d'identification, utilisez un jeton d'identification personnalisé.
Lors de la configuration d’AD FS 2.0 pour l’utiliser avec Salesforce, il est recommandé de sélectionner Redirection HTTP dans les paramètres d’authentification unique de Salesforce, sous Liaison de requête initiée par le fournisseur de services. Ce paramètre améliore l’interopérabilité avec les appareils iOS.Prérequis
Pour configurer AD FS 2.0 en tant que fournisseur d’identité de Salesforce, vous avez besoin de :
- Microsoft Windows Server 2008 R2 Enterprise ou Datacenter édition. Si vous configurez un environnement pour une évaluation, vous pouvez télécharger une version d’évaluation depuis le centre de téléchargement de Microsoft.
- Microsoft Active Directory Federation Services 2.0.
Remarque Windows Server 2008 R2 inclut AD FS 1.0, qui ne prend pas en charge SAML 2.0. Pour cette raison, téléchargez le package AD FS 2.0 ‘release to web’ (RTW). - Une organisation Salesforce. Vous pouvez l'essayer dans un environnement Developer Edition.
Présentation
SAML 2.0 définit les rôles des parties impliquées dans SSO. Un utilisateur s'authentifie au fournisseur d'identité (IdP), dans le cas présent AD FS 2.0. L'utilisateur peut ensuite accéder à une ressource dans un ou plusieurs fournisseurs de services (SP) sans se connecter à chaque fournisseur de services. Le SP (également appelé « partie de confiance ») est dans cette instance une organisation Salesforce.
Ce diagramme montre le processus pour une connexion initiée par IdP dans Salesforce
- L’utilisateur s’authentifie au serveur AD FS en utilisant une authentification Windows intégrée (jetons Kerberos sur HTTP) et demande une connexion à Salesforce. (1)
- AD FS renvoie une assertion SAML au navigateur de l’utilisateur. (2)
- Le navigateur soumet l’assertion à Salesforce, qui connecte l’utilisateur (3).
Voici les principales étapes de la création d'un déploiement test.
- Installer Microsoft AD FS 2.0.
- Configurer AD FS et votre environnement Salesforce.
- Tester la configuration.
- Dépanner les problèmes d’implémentation éventuels.
Installation de logiciel
- Commencez par installer Windows Server 2008 R2.
Remarque Le serveur AD FS doit être membre d’un domaine Active Directory. Si vous élaborez une configuration de laboratoire pour une évaluation, le serveur AD FS peut être le contrôleur de domaine. Cependant, cette configuration n’est pas une configuration de production recommandée. - Choisissez un nom DNS convivial pour AD FS, par exemple adfs.testzone.local, puis pointez-le vers votre serveur AD FS 2.00
- Téléchargez et installez AD FS 2.0. Cette étape installe d’autres composants Windows prérequis, notamment IIS.
- Dans le gestionnaire d’IIS, créez un certificat SSL pour votre nom DNS convivial. Si vous avez le kit de ressources IIS 6.0, vous pouvez utiliser SelfSSL pour créer un certificat auto-signé.
- Exécutez l’assistant de configuration de serveur AD FS.
- Créez un service de fédération.
- Sélectionnez Serveur autonome.
- Sélectionnez le certificat que vous avez créé pour votre nom DNS convivial.
- Si une erreur se produit lorsque l’installateur enregistre un nom principal de service (SPN), créez manuellement un SPN Kerberos pour le nom DNS. Le SPN autorise une authentification Windows intégrée entre le navigateur et l’instance AD FS IIS pour fonctionner correctement :
1 setspn -a HOST/adfs.testzone.local testzone\ADFSSVR012 setspn -a HOST/adfs testzone\ADFSSVR01Pour plus d’informations sur les SPN Kerberos, reportez-vous à Active Directory and Kerberos SPNs Made Easy.
Configuration de Salesforce
Pour construire une fédération entre deux parties, vous devez établir une relation de confiance en échangeant des métadonnées. Les métadonnées de l’instance AD FS 2.0 sont saisies dans la configuration de Salesforce. Les métadonnées Salesforce sont téléchargées en tant que fichier XML que AD FS 2.0 peut consommer.
Configuration de SAML 2.0.
Dans le snap-in AD FS 2.0 MMC, sélectionnez le nœud des certificats, puis double-cliquez sur le certificat de signature de jeton pour l’afficher. Cliquez sur l’onglet Détails, puis sélectionnez Copier dans un fichier. Enregistrez le certificat sous le format DER.
Sur le serveur AD FS, accédez à l'URL des métadonnées de fédération située dans la MMC AD FS à Service | Points de terminaison | Métadonnées | Type:Métadonnées de fédération . Dans l’exemple, l’URL est https://adfs.testzone.local/FederationMetadata/2007-06/FederationMetadata.xml.
Copiez la valeur de l’attribut entityID. Dans l’exemple, il s’agit de http://adfs.testzone.local.
Dans Salesforce, dans Configuration, saisissez Authentification unique dans la case Recherche rapide, puis sélectionnez Paramètres d'authentification unique. Sélectionnez SAML activé, puis cliquez sur l’option pour créer une configuration SAML SSO.
Configurez les paramètres.
- Nom : saisissez un nom pour les paramètres SAML SSO.
- Version SAML: ce paramètre est défini sur 2.0.
- Émetteur : collez votre entityID ici.
- Certificat de fournisseur d’identité : accédez et sélectionnez le certificat de signature de jeton que vous avez exporté précédemment.
- Certificat de signature de requête : sélectionnez un certificat auto-signé que vous avez créé précédemment (reportez-vous à la procédure de génération d’un certificat auto-signé).
- Méthode de signature de requête : définissez ce paramètre sur RSA-SHA-1.
- Type d’identité SAML : pour connecter un utilisateur, vous pouvez faire correspondre le nom d’utilisateur Salesforce ou l’ID de fédération. Si vous faites correspondre l’ID de fédération, il peut être rempli dans le profil de tous les utilisateurs. Pour effectuer un test, sélectionnez ID de fédération. Si des utilisateurs utilisent leur adresse e-mail en tant que nom d’utilisateur de Salesforce, un déploiement de production peut basculer correspondre au nom d’utilisateur.
- Emplacement d’identité SAML : pour connecter l’utilisateur, vous pouvez utiliser le NameID dans l’assertion SAML ou un autre attribut. Vous pouvez utiliser NameID, car AD FS remplit NameID dans l’assertion SAML.
- Liaison de requête initiée par le fournisseur de services : il est recommandé de choisir Redirection HTTP.
- URL de connexion de fournisseur d’identité : saisissez l’URL du point de terminaison de votre SAML AD FS, auquel Salesforce envoie des requêtes SAML pour une connexion initiée par SP.
Remarque Saisissez une barre oblique à la fin de l’URL.Vous trouverez l'URL dans la MMC AD FS à l'adresse Points de terminaison | Émission de jeton | Type:SAML 2.0/WS-Federation suivante : Dans l’exemple, l’URL est https://adfs.testzone.local/adfs/ls/.
- URL de déconnexion personnalisée : vous pouvez configurez une URL vers laquelle l’utilisateur est dirigé après la déconnexion, par exemple http://intranet.mycompany.com/.
- ID d’entité : ce paramètre spécifie comment l’IdP AD FS identifie le SP Salesforce. Pour activer SSO initié par SP, saisissez l’ID d’entité de votre Mon domaine configuré.
Enregistrez les paramètres et téléchargez le fichier XML des métadonnées.
Configuration d’AD FS 2.0
Vous disposez maintenant des métadonnées Salesforce, vous pouvez créer la partie AD FS de la relation de confiance. Ouvrez le snap-in AD FS 2.0 MMC et ajoutez une nouvelle « Approbation de partie de confiance ».
- Sélectionner une source de données : importez les données de la partie de confiance depuis un fichier. Accédez au fichier XML que vous avez téléchargé depuis Salesforce.
- Spécifier un nom d’affichage : nommez la partie de confiance, par exemple Test Salesforce.
- Choisir des règles d’autorisation d’émission : autorisez tous les utilisateurs à accéder à cette partie de confiance.
- Ouvrir la boîte de dialogue Modifier des règles de réclamation : sélectionnez.
Dans l’éditeur de règles de réclamation, cliquez sur l’onglet Règles de transformation de réclamation. Ajoutez une règle en utilisant le Modèle de règle de réclamation défini sur Envoyer des attributs LDAP en tant que réclamations.
- Nom de règle de réclamation : pour effectuer un test, définissez l’attribut Utilisateur-Principal-Nom en tant que NameID, et appelez la règle Envoyer UPN en tant que NameID. En production, il est fréquent d’envoyer l’adresse e-mail ou l’ID d’employé de l’utilisateur. Il est important d’utiliser un attribut avec une valeur qui ne sera probablement pas modifiée au fil du temps, car toute modification invalide l'authentification unique de cet utilisateur.
- Attribut LDAP : sélectionnez Nom principal d’utilisateur.
- Type de réclamation sortante : sélectionnez ID de nom.
Connexion initiée par SP
Avec un processus de connexion initiée par IdP, vous configurez généralement un lien vers l’Intranet de la société dans lequel les utilisateurs cliquent pour accéder à Salesforce. Une connexion initiée par SP se produit lorsqu’un utilisateur clique sur un lien direct vers Salesforce.
Si vous avez configuré un ID d’entité Mon domaine dans les paramètres SAML de Salesforce (par exemple, https://testinfo-developer-edition.my.salesforce.com), les utilisateurs peuvent accéder aux URL dans ce domaine. Ils sont ensuite redirigés vers AD FS pour l'authentification.
Lorsqu'un ID d’entité Mon domaine personnalisé est configuré dans les paramètres SAML de Salesforce (par exemple, https://testinfo-developer-edition.my.salesforce.com), les utilisateurs peuvent accéder aux URL dans ce domaine. Ils sont ensuite redirigés vers AD FS pour l'authentification.
Pour qu’une connexion initiée par SP fonctionne, définissez le paramètre de l’algorithme de hachage sécurisé AD FS sur SHA-1. Salesforce utilise SHA-1 lors de la signature de requêtes SAML, et AD FS utilise par défaut SHA-256.
Le paramètre SHA est défini dans les propriétés de confiance d’AD FS pour la partie de confiance de Salesforce sous l’onglet Avancé.
Si vous ne définissez pas ce paramètre, vous recevez un message dans le journal des événements d’AD FS.
Event ID: 378SAML request is not signed with expected signature algorithm. SAML request is signed with signature algorithm http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 . Expected signature algorithm is http://www.w3.org/2000/09/xmldsig#rsa-sha1Tests
Vous pouvez désormais définir l’ID de fédération d’un utilisateur de Salesforce sur l’UPN du compte utilisateur AD et tester le processus de connexion.

Pour une connexion initiée par SP, en considérant que vous avez configuré un ID d’entité Mon domaine, accédez directement à l’URL, par exemple https://testinfo-developer-edition.my.salesforce.com.
Pour une connexion initiée par IdP, utilisez l’URL de connexion AD FS, puis spécifiez le paramètre loginToRp en tant qu’ID d’entité SAML de Salesforce, par exemple https://adfs.testzone.local/adfs/ls/idpinitiatedsignon.aspx?loginToRp=https://saml.salesforce.com.
Dans les deux cas, le navigateur suit une chaîne de redirections pour vous connecter à terme à votre application dans Salesforce. Si vous recevez une erreur de connexion Salesforce, utilisez l’outil Validateur d’assertion SAML dans la page de configuration de l'authentification unique de Salesforce. Elle affiche les résultats de la dernière connexion SAML échouée.

Ï
Si vous recevez une erreur d’AD FS, examinez les journaux AD FS dans Server Manager\Diagnostics\Applications et Services Logs\AD FS 2.0\Admin. Vous pouvez également visiter le blog MSDN blog post on AD FS 2.0 diagnostics.
Si vous avez configuré un ID d’entité Mon domaine, une connexion initiée par SP fonctionne pour des liens ciblés. Ajoutez un lien aux favoris au cœur de Salesforce, puis déconnectez-vous. Rechargez votre navigateur et sélectionnez le favori. Vous êtes redirigé vers votre IdP, authentifié, puis vous revenez vers le lien ajouté aux favoris.
Problèmes courants et dépannage
- L’ID de fédération est sensible à la casse.
Si l’identité fédérée est l'adresse e-mail de votre organisation, saisissez-la exactement telle qu'envoyée par AD FS. Sinon, Salesforce ne trouve pas l’utilisateur correspondant.
Vous ne pouvez pas écrire une règle de réclamation personnalisée, pour standardiser la requête de l’attribut LDAP avant de l’envoyer, car le langage de réclamation contient uniquement une expression régulière de base.
- L’assertion a expiré.
Les assertions avec un horodatage datant de plus de 5 minutes sont rejetées.
Remarque Salesforce autorise un écart d'horloge de trois minutes. Par conséquent, une assertion peut être en retard de 8 minutes ou en avance de 3 minutes maximum sur l'horodatage. De plus, une assertion expire en fonction de la période de validité, qui peut être inférieure à cinq minutes.Assurez-vous que l’horloge système de votre serveur AD FS est synchronisée avec une source de temps Internet de qualité, en utilisant Network Time Protocol (NTP).
- Impossible de se connecter à Salesforce.
Si une erreur empêche la connexion à Salesforce par authentification unique, vous pouvez vous connecter avec un nom d’utilisateur et un mot de passe. Ajoutez ?login à l’URL de connexion, par exemple https://login.salesforce.com/?login. Une fois connecté, vous pouvez désactiver l'authentification unique si nécessaire pour résoudre le problème.

