Skip to main content

Anpassen der primär auf Mobilgeräte ausgelegten Anmeldung mit Code

Lernziele

Nachdem Sie dieses Modul abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Bestimmen und Umbenennen des Anmeldungserkennungs-Handlers
  • Hinzufügen von Funktionalität zur Anmeldung über soziale Netzwerke (Social Sign-On) zum Anmeldungserkennungs-Handler
  • Sammeln von Benutzerinformationen mit Anforderungsattributen

Bestimmen des standardmäßigen Anmeldungserkennungs-Handlers

Wenn Sie auf der Seite "Anmeldung & Registrierung" Ihren Anmeldeerkennungs-Handler erstellen, erstellt Salesforce den Standard-Handler als Apex-Klasse. Dieser Handler ist zusammen mit anderen Apex-Klassen auf der Seite "Apex-Klassen" Ihrer Organisation zu finden.

  1. Notieren (oder kopieren) Sie auf der Seite "Login & Registration (Anmeldung & Registrierung)" unter "Login Page Setup (Anmeldeseiten-Setup)" den Namen des Handlers, der im Textfeld "Login Discovery Handler (Anmeldeerkennungs-Handler)" aufgeführt ist.  Wenn Sie die Seite "Login & Registration (Anmeldung & Registrierung)" erneut öffnen möchten, geben Sie im Feld "Quick Find (Schnellsuche)" den Text "All Sites" (Alle Sites) ein und wählen Sie dann "All Sites (Alle Sites)" aus. Klicken Sie für die Website "NTO Customers" auf "Workspaces (Arbeitsumgebungen)". Klicken Sie auf die Kachel "Administration (Verwaltung)" und dann auf "Login & Registration (Anmeldung & Registrierung)".Screenshot des standardmäßigen Anmeldungserkennungs-Handlers
  2. Geben Sie auf einer anderen Registerkarte in Setup im Feld "Quick Search (Schnellsuche)" den Text Apex Classes (Apex-Klassen) ein und klicken Sie auf Apex Classes (Apex-Klassen). Der Handler wird in einer Liste mit Klassen auf der Seite "Apex-Klassen" angezeigt.
  3. Wechseln Sie in der Liste zum Namen des Anmeldungserkennungs-Handlers. Es ist nicht so einfach, den Handler in der Liste der Apex-Klassen zu finden, nicht wahr? Wir können das ändern, indem wir den Handler in etwas besser Erkennbares umbenennen. Außerdem können Sie durch dessen Umbenennung auf einen Blick erkennen, dass der Handler angepasst wurde. Der Handler muss nicht mehr "automatisch erstellt" werden, weshalb wir nun den Namen entsprechend ändern.
  4. Klicken Sie neben dem Namen des Handlers auf Bearbeiten. Der Name des Handlers wird in der ersten Zeile des Codes angezeigt.
  5. Ersetzen Sie den Salesforce-Namen durch Ihren eigenen und klicken Sie auf SpeichernScreenshot des Namens des Anmeldungserkennungs-Handlers in 'Apex-Klassen'Kehren Sie zur Seite "Anmeldung & Registrierung" zurück und aktualisieren Sie sie. Sie stellen fest, dass der Anmeldeerkennungs-Handler mit seinem neuen Namen angezeigt wird.Screenshot der Seite 'Anmeldung & Registrierung' mit dem neuen Namen des Anmeldungserkennungs-Handlers

Grundlegendes zum standardmäßigen Anmeldungserkennungs-Handler

Bevor wir uns der Anpassung des Handlers zuwenden, sollten wir uns mit dem von Salesforce generierten Handler vertraut machen. Sie können sich das vollständige Codebeispiel im Salesforce Apex Developer Guide ansehen: LoginDiscoveryHandler Example Implementation. Hier erläutern wir, wie der Anmeldungserkennungs-Handler funktioniert.

Der erste Schritt besteht darin, das Identifizierungsmerkmal (E-Mail oder Telefonnummer) abzurufen, das auf der Anmeldeseite eingegeben wurde. Prüfen Sie dann, ob das Identifizierungsmerkmal in einem gültigen Format vorliegt.

Als Nächstes fragen Sie die Datenbank nach einem Benutzer ab, der mit diesem Identifizierungsmerkmal verknüpft ist. Wenn der Benutzer aktiv ist und das Identifizierungsmerkmal eindeutig ist, prüfen Sie, ob der Benutzer dieses Identifizierungsmerkmal bereits überprüft hat.

Hinweis

Vom Benutzer überprüfte E-Mail-Adressen und Telefonnummern werden auf der Detailseite des Benutzers nachverfolgt. Das Feld "Überprüfte Benutzer-E-Mail" wird auf "True" festgelegt, wenn Benutzer Ihre E-Mail-Adresse verifizieren. Das Feld "Überprüfte Mobiltelefonnummer des Benutzers" wird auf "True" festgelegt, wenn Benutzer Ihre Mobiltelefonnummer überprüfen. (In der nächsten Einheit erfahren Sie mehr über den Status der Identitätsüberprüfung von Benutzern.)

Wenn das Identifizierungsmerkmal überprüft wurde, senden Sie einen Prüfcode per E-Mail oder SMS, und geben Sie an, wohin der Benutzer nach erfolgreicher Verifizierung gelangt. Leiten Sie den Benutzer dann auf die Seite "Bestätigen" weiter, wo er den Prüfcode eingibt. Wenn das Identifizierungsmerkmal nicht verifiziert wurde, leiten Sie den Benutzer auf die Seite um, auf der er ein Kennwort eingeben muss.

Sehen wir uns nun an, wie die Logik des Handlers als Grafik aussieht.

Logik des Anmeldungserkennungs-Handlers in einem Flussdiagramm

Es gibt noch eine andere Möglichkeit der Betrachtung des Prozesses zur Identitätsüberprüfung.

  1. Das Identifizierungsmerkmal abfragen.
  2. Ist das Identifizierungsmerkmal gültig?
  3. Falls ja, einen mit dem Identifizierungsmerkmal verknüpften Benutzer nachschlagen.
  4. Ist der Benutzer aktiv?
  5. Falls ja, ist das Identifizierungsmerkmal eindeutig?
  6. Falls ja, hat der Benutzer seine Identität anhand dieses Identifizierungsmerkmals überprüft?
  7. Falls ja (das Identifizierungsmerkmal wurde überprüft), einen Prüfcode senden. Falls nein (das Identifizierungsmerkmal wurde nicht überprüft), ein Kennwort abfragen.
  8. Wenn Prüfcode oder Kennwort richtig eingegeben wurden, wird der Benutzer zur Startseite der Experience Cloud-Site geleitet.

Anpassen des Anmeldungserkennungs-Handlers für die Anmeldung über soziale Netzwerke (Social Sign-On)

Kunden melden sich oft gerne mit ihren Anmeldeinformationen für ein soziales Netzwerk wie Twitter, Google oder LinkedIn auf einer Website an. Wenn Sie Ihre Organisation so eingerichtet haben, dass die Anmeldung über soziale Netzwerke möglich ist, macht die Anmeldungserkennung es Ihren Kunden noch einfacher. Sie können dem Handler für die Anmeldung über soziale Netzwerke programmgesteuert Logik hinzufügen. Kunden werden direkt an das soziale Netzwerk weitergeleitet, das von Ihrer Handler-Logik bestimmt wird.

  1. Richten Sie Salesforce-Authentifizierungsanbieter ein . Der erste Schritt zur Anpassung des Handlers für die Anmeldung bei sozialen Netzwerken besteht im Überprüfen, ob Ihre Organisation für die sozialen Netzwerke, die Sie unterstützen möchten, konfiguriert ist. Ihre Organisation benötigt Authentifizierungsanbieter, um eine Verbindung mit dem jeweiligen Authentifizierungsanbieter herzustellen. Salesforce bietet mehrere Standardauthentifizierungsanbieter für die Verbindung mit beliebten sozialen Netzwerken – und wir fügen neue hinzu, sobald sie auftauchen. Wenn über die gewünschten sozialen Netzwerke nicht angeboten werden, können Sie sie mit wenigen Klicks erstellen.
    1. Geben Sie unter "Setup" im Feld "Quick Find (Schnellsuche)" den Text Auth. Providers (Authentifizierungsanbieter) ein und wählen Sie Auth.Providers (Authentifizierungsanbieter) aus .
    2. Erstellen Sie einen Authentifizierungsanbieter für ein soziales Netzwerk. In Ihrer Playground-Organisation sind keine Authentifizierungsanbieter konfiguriert. Informationen zum Erstellen eines Authentifizierungsanbieters finden Sie im Trailhead-Modul "Identity für Kunden" in der Lektion "Einrichten der Anmeldung über soziale Netzwerke (Social Sign-On)". In dieser Einheit wird gezeigt, wie Sie Authentifizierungsanbieter einrichten und sie mit wenigen Klicks zu Ihrer Anmeldeseite hinzufügen können.
  1. Wechseln Sie zu den SSO-URLs für Ihr soziales Netzwerk. Wenn Sie Authentifizierungsanbieter programmgesteuert hinzufügen, müssen Sie die entsprechenden SSO-URLs zum sozialen Netzwerk hinzufügen.
    1. Um zur Seite "Auth. Providers (Authentifizierungsanbieter)" zurückzukehren, geben Sie unter "Setup" im Feld "Quick Find (Schnellsuche)" den Text Auth. Providers (Authentifizierungsanbieter) ein und wählen Auth.Providers (Authentifizierungsanbieter) aus .
    2. Klicken Sie auf den Link zum Namen des gewünschten sozialen Netzwerks. Sie klicken auf den Namen selbst, nicht auf den Link "Bearbeiten".
    3. Klappen Sie Experience Cloud-Sites auf. Die SSO-URLs für jeden Authentifizierungsanbieter in Ihrer Organisation sind aufgeführt.
      Screenshot von SSO-URLs auf der Setup-Seite 'Authentifizierungsanbieter'
  1. Fügen Sie Ihrem Anmeldungserkennungs-Handler die SSO-Logik hinzu. Bei dieser Übung wird SSO-Logik für die Site "NTO Customers" bereitgestellt. Für Ihre Produktionsorganisation fügen Sie Ihrem Anmeldungserkennungs-Handler Logik hinzu, um zu bestimmen, wann Benutzer zu ihrem sozialen Netzwerk weitergeleitet werden. Ihr benutzerdefinierter Code enthält Logik, um zu bestimmen, ob der Benutzer ein soziales Netzwerk verwenden oder sich direkt bei Salesforce anmelden soll. Im Code kann beispielsweise ein benutzerdefiniertes Feld des Objekts "Benutzer" nachgeschlagen werden. Hier ist ein Beispiel, das die Anmeldung über soziale Netzwerke unter Verwendung des Standardobjekts ThirdPartyAccountLink (TPAL) implementiert. Eine Liste mit Links zu Drittanbieter-Account-Links (TPAL) wird erstellt, wenn Benutzer einer Organisation sich über einen Drittanbieter authentifizieren. Dieses Beispiel fragt die TPAL-Tabelle ab und leitet den Benutzer zur Anmeldung über Facebook oder LinkedIn um, wenn die mit TPAL verknüpfte E-Mail des Benutzers gefunden wird.
//Redirect to Social Sign-On private PageReference getSsoRedirect(User user, String startUrl, Map<String, String> requestAttributes) { // You can look up whether the user can log in with their social credentials.
 List<ThirdPartyAccountLink> providers = [select provider from ThirdPartyAccountLink where Handle = :user.email]; String provider = providers[0].Provider; if (provider == 'facebook') {  return new PageReference([select SsoKickoffUrl from AuthProvider where DeveloperName='facebook'].SsoKickoffUrl); } else if (provider == 'linkedin') {  Return new PageReference([select SsoKickoffUrl from AuthProvider where DeveloperName='linkedin'].SsoKickoffUrl); } else {  return null; }

Sammeln von Benutzerinformationen mit Anforderungsattributen

Sie können Anmeldungsrichtlinien auf Grundlage des Browserstatus des Benutzers beim Zugriff auf die Anmeldeseite festlegen. So können Sie beispielsweise unterschiedliche Richtlinien festlegen, je nachdem, ob sich Personen von den USA oder von China aus anmelden.

Erfassen Sie die Browserdaten mit dem Parameter requestAttributes der Methode LoginDiscoveryHandler.login. Der Parameter übergibt diese Werte: CommunityUrl, IpAddress, UserAgent, Platform, Application, City, Country und Subdivision. Die Werte für City, Country und Subdivision stammen aus der IP-Geolokalisierung.

CommunityUrl=http://MyDomainName-dev-ed.my.site.com:5555/discover IpAddress=55.555.0.0 UserAgent=Mozilla/5.0(Macintosh; Intel Mac OS X 10_13_4) Version/11.1 Safari/605.15 Platform=Mac OSX City=Chicago Country=United States Subdivision=Illinois

Hier ist ein Beispiel mit IP-Geolokalisierungswerten.

private PageReference getSsoRedirect(User user, String startUrl, Map<String, String> requestAttributes) { // Send US users through a local IdP service if(requestAttributes.get('Country') == 'United States') { String ssoURL = 'https://mycompany.com/idp'; return new PageReference(ssoURL); } return null; }

Hier ist ein Beispiel für mobile Benutzer (iOS).

private PageReference getSsoRedirect(User user, String startUrl, Map<String, String> requestAttributes) { // Send iOS users through Facebook SSO if(requestAttributes.get('Platform') == 'iPhone') { String ssoURL = 'https://<MyDomainName>.my.salesforce.com/nto/services/auth/sso/Facebook'; return new PageReference(ssoURL); } return null; }

Sicherstellen der Eindeutigkeit von Benutzern

Ihre Produktionsorganisation kann mehrere Benutzer mit der gleichen überprüfen E-Mail-Adresse und Mobiltelefonnummer enthalten. Aber Ihre Kunden benötigen eindeutige Identifizierungsmerkmale. Um dieses Problem zu vermeiden, können Sie dem Anmeldungserkennungs-Handler einige Codezeilen hinzufügen, die Benutzer zur Gewährleistung von Eindeutigkeit filtern.

Die im Apex Developer Guide beschriebene Klasse LoginDiscoveryHandler enthält ein Codebeispiel, das sicherstellt, dass Benutzer mit der Lizenz "External Identity" eindeutig sind. Sie können den Code anpassen, um andere Anwendungsfälle zu unterstützen. Sie können den Code zum Beispiel so ändern, dass er Benutzer mit anderen Benutzerlizenzen oder Kriterien berücksichtigt.

Sie haben gelernt, wie Sie Ihre primär auf Mobilgeräte ausgelegten Anmeldeseiten einrichten und anpassen können. In der nächsten Lektion lernen Sie, wie Sie Ihre Fortschritte verfolgen, indem Sie Berichte, Diagramme und ein Dashboard für deren Anzeige einrichten.

Teilen Sie Ihr Trailhead-Feedback über die Salesforce-Hilfe.

Wir würden uns sehr freuen, von Ihren Erfahrungen mit Trailhead zu hören: Sie können jetzt jederzeit über die Salesforce-Hilfe auf das neue Feedback-Formular zugreifen.

Weitere Infos Weiter zu "Feedback teilen"