Salesforce
Durch die Konfiguration von Salesforce zur Nutzung von Specops Authentication für Single Sign-On (SSO) wird ein Benutzer, der versucht, sich bei Salesforce anzumelden, zu Specops Authentication umgeleitet.
Dem Benutzer wird eine Liste von Identity Services basierend auf der für Salesforce in Specops Authentication konfigurierten Richtlinie angezeigt. Um sich erfolgreich zu authentifizieren, muss der Benutzer einen oder mehrere dieser Identity Services abschließen. Sobald die Authentifizierung erfolgreich ist, wird der Benutzer zurück zu Salesforce umgeleitet, das das OIDC-Token validiert und die Anmeldung erlaubt.
Die Richtlinie, die die Identity Services definiert, kann entweder in der Specops Authentication Cloud oder in einem Gruppenrichtlinienobjekt (GPO) in Active Directory gespeichert werden. Bei der Erstellung der OpenID Connect-Anwendung haben Sie folgende Richtlinienmodus-Optionen:
- Cloud - Alle Benutzer in der Organisation sind betroffen.
- Gruppenrichtlinie - Nur Benutzer, die von einem markierten GPO betroffen sind, sind betroffen.
- Beide - Alle Benutzer sind betroffen. Wenn ein Benutzer auch von einem markierten GPO betroffen ist, hat die Gruppenrichtlinie Vorrang vor der Cloud-Richtlinie.
Voraussetzungen
Ein Salesforce Cloud-Konto muss vorhanden sein, bevor mit der Konfiguration fortgefahren wird.
Konfiguration
Dies sind die Hauptkonfigurationsschritte:
- Konfigurieren eines Gruppenrichtlinienobjekts
- Erstellen einer OpenID Connect-Anwendung für Single Sign-On
- Hinzufügen von Specops Authentication als neuen Authentifizierungsanbieter in Salesforce
Konfigurieren eines Gruppenrichtlinienobjekts
Folgen Sie diesen Schritten nur, wenn Sie Gruppenrichtlinie oder Beide als Richtlinienmodus auswählen, wenn Sie die OpenID Connect-Anwendung erstellen.
- Erstellen Sie in der Gruppenrichtlinien-Verwaltungskonsole ein Gruppenrichtlinienobjekt und benennen Sie es z.B. Salesforce.
- Verknüpfen Sie das GPO mit einem Container mit Benutzern, die auf Salesforce zugreifen können sollen.
- Klicken Sie im Gatekeeper Admin Tool auf Single Sign-on.
- Klicken Sie auf GPOs markieren, wählen Sie das GPO aus, das bei der Konfiguration einer OpenID Connect-Anwendung in Specops Authentication verfügbar sein soll, und klicken Sie auf OK.
Erstellen einer OpenID Connect-Anwendung für Single Sign-On
- Melden Sie sich als Administrator bei der Specops Authentication Web an.
- Klicken Sie auf Single Sign-On.
- Klicken Sie auf Neu hinzufügen.
- Wählen Sie Anwendungstyp: Salesforce.
- Geben Sie unter Allgemeine Einstellungen einen Anwendungsnamen und optional eine Beschreibung für die Anwendung ein.
- Fügen Sie unter Redirect-URLs URLs hinzu, die während der Authentifizierung und Abmeldung für die Umleitung erlaubt sein sollen. Lassen Sie es vorerst leer. Eine Callback-URL wird später hinzugefügt, wenn der Authentifizierungsanbieter in Salesforce registriert wurde.
- Fügen Sie in Standard-Claim-Zuordnung Informationen über den Benutzer hinzu, die von AD an Salesforce übermittelt werden sollen:
- Claim: Unser Beispielregistrierungshandler in Salesforce verwendet die folgenden Werte: "email", "given_name" und "family_name".
- AD-Attribut oder benutzerdefinierter Wert: Wählen Sie einen Wert aus der Liste der Active Directory-Attribute aus. Wenn ein AD-Attribut ausgewählt ist, wird das Claim während der Authentifizierung vom Benutzer ausgefüllt.
- Klicken Sie auf Speichern und Fortfahren.
- Wählen Sie einen Richtlinienmodus aus der Liste.
- Wenn Sie Gruppenrichtlinie oder Beide als Richtlinienmodus ausgewählt haben, wählen Sie Ihr Salesforce-GPO aus der Liste Gruppenrichtlinienobjekte und klicken Sie auf Hinzufügen.
- Klicken Sie auf Authentifizierungsregeln bearbeiten neben dem hinzugefügten GPO. Konfigurieren Sie Ihre gewünschten Authentifizierungsregeln und klicken Sie auf Speichern.
- Wenn Sie Cloud oder Beide als Richtlinienmodus ausgewählt haben, klicken Sie auf Konfigurieren und fügen Sie die Identity Services hinzu, die Sie einbeziehen möchten.
- Klicken Sie auf Ich bin fertig.
-
Die Seite Anwendungsanmeldeinformationen enthält Anmeldeinformationen und URLs, die möglicherweise benötigt werden, wenn Specops Authentication als Identitätsanbieter in Salesforce konfiguriert wird. Kopieren Sie den Client Secret und stellen Sie sicher, dass Sie ihn für die spätere Verwendung speichern. Klicken Sie auf Weiter.
Hinweis
Der Client Secret wird nur einmal angezeigt und kann nach dem Verlassen dieser Seite nicht mehr angezeigt oder kopiert werden.
Hinzufügen von Specops Authentication als neuen Authentifizierungsanbieter
Dies sind die Mindestschritte zum Hinzufügen der neuen OpenID Connect-Anwendung in Salesforce. Für detaillierte Dokumentation siehe: https://help.salesforce.com/s/articleView?id=xcloud.sso_provider_openid_connect.htm&type=5
Erstellen einer Apex-Registrierungshandler-Klasse
Sie müssen eine benutzerdefinierte Apex-Klasse erstellen, die steuert, wie neue Benutzerdatensätze erstellt (oder verknüpft) werden, wenn sich jemand über Specops Authentication mit OpenID Connect anmeldet.
- Melden Sie sich bei Salesforce an, klicken Sie auf das Einstellungen-Symbol und wählen Sie Erweiterte Einrichtung öffnen.
- Geben Sie in Schnellsuche "Apex" ein und wählen Sie Apex-Klassen.
- Klicken Sie auf Neu.
- Geben Sie den Code zum Erstellen der Apex-Klasse ein. Beziehen Sie sich auf das untenstehende Beispiel und verwenden Sie es nach Bedarf. Wenn Sie fertig sind, klicken Sie auf Speichern.
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;
}
}
Authentifizierungsanbieter hinzufügen
- Melden Sie sich bei Salesforce an. Geben Sie in Schnellsuche "auth" ein und wählen Sie Auth. Providers aus der Liste.
- Klicken Sie auf Neu.
- Wählen Sie Anbietertyp: Open ID Connect.
- Geben Sie einen Namen ein, z.B. "sa".
- Geben Sie für Consumer Key die Client Id aus den Anwendungsanmeldeinformationen in Specops Authentication ein.
- Geben Sie für Consumer Secret den Client Secret aus den Anwendungsanmeldeinformationen in Specops Authentication ein.
- Geben Sie für Authorize, Token und User Info Endpoint URL die entsprechenden URLs aus Specops Authentication ein.
- Geben Sie für Token Issuer den Issuer aus Specops Authentication ein.
- Geben Sie in Custom Logout URL den End Session Endpoint aus Specops Authentication ein.
- Wählen Sie Registrierungshandler-Typ: Apex
- Klicken Sie auf die Suchschaltfläche neben Registrierungshandler und wählen Sie "MyOpenIdRegistrationHandler", der zuvor erstellt wurde.
- Wählen Sie in Ausführen der Registrierung als einen vorhandenen Benutzer aus.
- Klicken Sie auf Speichern.
- Kopieren Sie die Callback URL und speichern Sie sie vorerst. Sie werden sie später zur OpenID Connect-Anwendung in Specops Authentication hinzufügen.
Fügen Sie die Redirect-URLs zur OpenID Connect-Anwendung hinzu
- Melden Sie sich als Administrator bei der Specops Authentication Web an.
- Klicken Sie auf Single Sign-On.
- Gehen Sie zur zuvor für Salesforce erstellten OpenID Connect-Anwendung und klicken Sie auf Anwendung bearbeiten.
- Fügen Sie unter Redirect-URLs die Callback URL von Salesforce hinzu.
- Klicken Sie auf Speichern.
Fügen Sie Specops Authentication zur Anmeldeseite hinzu
- Melden Sie sich bei Salesforce an. Geben Sie in Schnellsuche "Domain" ein und wählen Sie Meine Domain.
- Klicken Sie unter Authentifizierungskonfiguration auf Bearbeiten.
- Aktivieren Sie unter Authentifizierungsdienst das Kontrollkästchen neben dem zuvor erstellten Authentifizierungsanbieter.
- Klicken Sie auf Speichern.