Salesforce
En configurant Salesforce pour utiliser Specops Authentication pour l'authentification unique (SSO), un utilisateur tentant de se connecter à Salesforce sera redirigé vers Specops Authentication.
L'utilisateur se verra présenter une liste de services d'identité basée sur la politique configurée pour Salesforce dans Specops Authentication. Pour s'authentifier avec succès, l'utilisateur doit compléter un ou plusieurs de ces services d'identité. Une fois l'authentification réussie, l'utilisateur est redirigé vers Salesforce, qui valide le jeton OIDC et autorise la connexion.
La politique qui définit les services d'identité peut être stockée soit dans le Specops Authentication Cloud, soit dans un objet de stratégie de groupe (GPO) dans Active Directory. Lors de la création de l'application OpenID Connect, vous aurez les options de mode de politique suivantes :
- Cloud - Tous les utilisateurs de l'organisation sont affectés.
- Stratégie de groupe - Seuls les utilisateurs ciblés par un GPO étiqueté sont affectés.
- Les deux - Tous les utilisateurs sont affectés. Si un utilisateur est également ciblé par un GPO étiqueté, la stratégie de groupe prend le pas sur la politique Cloud.
Prérequis
Un compte Salesforce Cloud doit être en place avant de procéder à la configuration.
Configuration
Voici les principales étapes de configuration :
- Configurer un objet de stratégie de groupe
- Créer une application OpenID Connect pour l'authentification unique
- Ajouter Specops Authentication comme nouveau fournisseur d'authentification dans Salesforce
Configurer un objet de stratégie de groupe
Suivez ces étapes uniquement si vous sélectionnez Stratégie de groupe ou Les deux comme mode de politique lors de la création de l'application OpenID Connect.
- Dans la console de gestion des stratégies de groupe, créez un objet de stratégie de groupe et nommez-le, par exemple, Salesforce.
- Liez le GPO à un conteneur avec des utilisateurs qui devraient pouvoir accéder à Salesforce.
- Dans l'outil d'administration Gatekeeper, cliquez sur Single Sign-on.
- Cliquez sur Tag GPOs, sélectionnez le GPO qui devrait être disponible pour être utilisé lors de la configuration d'une application OpenID Connect dans Specops Authentication, et cliquez sur OK.
Créer une application OpenID Connect pour l'authentification unique
- Connectez-vous en tant qu'administrateur au Web Specops Authentication.
- Cliquez sur Single Sign-On.
- Cliquez sur Ajouter nouveau.
- Sélectionnez Type d'application : Salesforce.
- Sous Paramètres généraux, tapez un nom d'application et éventuellement une description pour l'application.
- Sous URL de redirection, ajoutez les URL qui devraient être autorisées pour la redirection lors de l'authentification et de la déconnexion. Laissez vide pour le moment. Une URL de rappel sera ajoutée plus tard lorsque le fournisseur d'authentification aura été enregistré dans Salesforce.
- Dans Mappage des revendications standard, ajoutez des informations sur l'utilisateur qui devraient être fournies d'AD à Salesforce :
- Revendication : Notre gestionnaire d'enregistrement d'exemple dans Salesforce utilise les valeurs suivantes : "email", "given_name" et "family_name".
- Attribut AD ou valeur personnalisée : Sélectionnez une valeur dans la liste des attributs Active Directory. Lorsqu'un attribut AD est sélectionné, la revendication sera remplie à partir de l'utilisateur lors de l'authentification.
- Cliquez sur Enregistrer et continuer.
- Sélectionnez un Mode de politique dans la liste.
- Si vous avez sélectionné Stratégie de groupe ou Les deux comme mode de politique, choisissez votre GPO Salesforce dans la liste Objets de stratégie de groupe, et cliquez sur Ajouter.
- Cliquez sur Modifier les règles d'authentification à côté du GPO ajouté. Configurez vos règles d'authentification souhaitées et cliquez sur Enregistrer.
- Si vous avez sélectionné Cloud ou Les deux comme mode de politique, cliquez sur Configurer et ajoutez les services d'identité que vous souhaitez inclure.
- Cliquez sur J'ai terminé.
-
La page des informations d'identification de l'application contient des informations d'identification et des URL qui peuvent être nécessaires lors de la configuration de Specops Authentication en tant que fournisseur d'identité dans Salesforce. Copiez le Client Secret et assurez-vous de le sauvegarder pour une utilisation ultérieure. Cliquez sur Continuer.
Remarque
La clé secrète du client est affichée une seule fois et ne peut pas être vue ou copiée à nouveau après avoir quitté cette page.
Ajouter Specops Authentication comme nouveau fournisseur d'authentification
Voici les étapes minimales pour ajouter la nouvelle application OpenID Connect dans Salesforce. Pour une documentation détaillée, voir : https://help.salesforce.com/s/articleView?id=xcloud.sso_provider_openid_connect.htm&type=5
Créer une classe de gestionnaire d'enregistrement Apex
Vous devez créer une classe Apex personnalisée qui contrôle comment les nouveaux enregistrements utilisateur sont créés (ou liés) lorsque quelqu'un se connecte via Specops Authentication, en utilisant OpenID Connect.
- Connectez-vous à Salesforce, cliquez sur l'icône Paramètres et sélectionnez Ouvrir la configuration avancée.
- Dans Recherche rapide, entrez "Apex" et sélectionnez Classes Apex.
- Cliquez sur Nouveau.
- Entrez le code pour créer la classe Apex. Reportez-vous à l'exemple ci-dessous et utilisez-le selon vos besoins. Une fois terminé, cliquez sur Enregistrer.
global class MyOpenIdRegistrationHandler implements Auth.RegistrationHandler {
static final String GIVEN_NAME_CLAIM = 'given_name';
static final String FAMILY_NAME_CLAIM = 'family_name';
static Map<String, String> getClaimsFromIdToken(Auth.UserData data) {
return (Map<String, String>) JSON.deserialize(data.idTokenJSONString, Map<String, String>.class);
}
static boolean hasValue(string str) {
return str != null && !str.isWhitespace();
}
global User createUser(Id portalId, Auth.UserData data) {
Map<String, String> m = getClaimsFromIdToken(data);
String firstName = m.get(GIVEN_NAME_CLAIM);
String lastName = m.get(FAMILY_NAME_CLAIM);
User u = new User();
// From id token claims
u.FirstName = hasValue(firstName) ? firstName : 'Unknown';
u.LastName = hasValue(lastName) ? lastName : 'User';
// From user info
u.Email = data.email;
u.Username = data.email;
u.Alias = (u.Username.length() > 8) ? u.Username.substring(0, 8) : u.Username;
u.CommunityNickname = u.Username;
u.FederationIdentifier = data.identifier;
u.IsActive = true;
// Set other required fields
u.EmailEncodingKey = 'UTF-8';
u.LanguageLocaleKey = 'en_US';
u.LocaleSidKey = 'en_US';
u.TimeZoneSidKey = 'America/Los_Angeles';
// Assign a profile (must exist in your org)
u.ProfileId = [SELECT Id FROM Profile WHERE Name = 'Standard User' LIMIT 1].Id;
insert u;
return u;
}
global void updateUser(Id userId, Id portalId, Auth.UserData data) {
Map<String, String> m = getClaimsFromIdToken(data);
String firstName = m.get(GIVEN_NAME_CLAIM);
String lastName = m.get(FAMILY_NAME_CLAIM);
User u = [SELECT Id, FirstName, LastName, Email FROM User WHERE Id = :userId LIMIT 1];
if (hasValue(firstName)) u.FirstName = firstName;
if (hasValue(lastName)) u.LastName = lastName;
if (hasValue(data.email)) u.Email = data.email;
update u;
}
}
Ajouter un fournisseur d'authentification
- Connectez-vous à Salesforce. Dans Recherche rapide, tapez "auth" et sélectionnez Auth. Providers dans la liste.
- Cliquez sur Nouveau.
- Sélectionnez Type de fournisseur : Open ID Connect.
- Entrez un nom, par exemple "sa".
- Pour Clé consommateur, entrez Client Id des informations d'identification de l'application dans Specops Authentication.
- Pour Secret consommateur, entrez Client Secret des informations d'identification de l'application dans Specops Authentication.
- Pour Autoriser, Jeton et URL du point de terminaison des informations utilisateur, entrez les URL correspondantes de Specops Authentication.
- Pour Émetteur de jeton, entrez Émetteur de Specops Authentication.
- Dans URL de déconnexion personnalisée, entrez Point de terminaison de fin de session de Specops Authentication.
- Sélectionnez Type de gestionnaire d'enregistrement : Apex
- Cliquez sur le bouton de recherche à côté de Gestionnaire d'enregistrement et sélectionnez "MyOpenIdRegistrationHandler" qui a été créé précédemment.
- Dans Exécuter l'enregistrement en tant que, sélectionnez un utilisateur existant.
- Cliquez sur Enregistrer.
- Copiez l'URL de rappel et sauvegardez-la pour le moment. Vous l'ajouterez plus tard à l'application OpenID Connect dans Specops Authentication.
Ajouter les URL de redirection à l'application OpenID Connect
- Connectez-vous en tant qu'administrateur au Web Specops Authentication.
- Cliquez sur Single Sign-On.
- Allez à l'application OpenID Connect créée pour Salesforce précédemment, et cliquez sur Modifier l'application.
- Sous URL de redirection, ajoutez l'URL de rappel de Salesforce.
- Cliquez sur Enregistrer.
Ajouter Specops Authentication à la page de connexion
- Connectez-vous à Salesforce. Dans Recherche rapide, entrez "Domaine" et sélectionnez Mon domaine.
- Sous Configuration de l'authentification, cliquez sur Modifier.
- Sous Service d'authentification, cochez la case à côté du fournisseur d'authentification créé précédemment.
- Cliquez sur Enregistrer.