Neuigkeiten von trion.
Immer gut informiert.

Salesforce als IdP für Keycloak

Salesforce

Ein starkes Identity and Access Management (IAM) ist entscheidend für die Sicherheit und Effizienz moderner Anwendungen. In diesem Blogbeitrag tauchen wir in die Welt der Konfiguration von Salesforce als Identity Provider für Keycloak ein, insbesondere wie du nahtlos Salesforce integrieren kannst, um ein robustes Authentifizierungssystem zu schaffen und so die Anmeldung an Salesforce delegieren kannst.

Salesforce, als eine der führenden Customer Relationship Management (CRM) Plattformen, bietet eine Reihe von Identitätsmanagementfunktionen. Durch die Kopplung von Salesforce mit Keycloak kannst du nicht nur die Sicherheit deiner Anwendungen erhöhen, sondern auch einen reibungslosen Authentifizierungsprozess für deine Benutzer gewährleisten.

In diesem Artikel werden wir Schritt für Schritt durch die Konfiguration gehen, angefangen bei den grundlegenden Einstellungen in Keycloak bis hin zur nahtlosen Integration mit Salesforce als Identity Provider. Egal, ob du ein Entwickler bist, der nach bewährten Methoden sucht, oder ein Systemadministrator, der die Sicherheit der Unternehmensanwendungen stärken möchte, diese Anleitung wird dir dabei helfen, das volle Potenzial von Keycloak in Verbindung mit Salesforce auszuschöpfen.

Bereit, deine Anwendungen auf die nächste Stufe der Sicherheit und Benutzerfreundlichkeit zu heben? Lass uns direkt in die Konfiguration eintauchen!

Schritt 1: Identity Provider in Keycloak anlegen

In Keycloak wählst du in einem passenden Realm den Menüpunkt "Identity Providers" aus. Füge einen neuen Identity Provider vom Typ "OpenID Connect v1.0" hinzu.

Hier musst du folgende Angaben machen:

  • Alias (z.B. "salesforce")

  • Display name (z.B. "Salesforce")

  • Discovery endpoint (z.B. "https://mydomain.my.salesforce.com/.well-known/openid-configuration")

Der "Discovery endpoint" ergibt aus dem unternehmenspezifischen Salesforce-URL erweitert um /.well-known/openid-configuration.

salesforce identity provider

Unter "Show metadata" werden dir dann die vom Discovery endpoint abgerufenen Einstellungen angezeigt.

Um die Pflichtfelder Client ID und Client Secret befüllen zu können, musst du parallel zur Anlage von Salesforce als Identity Provider in Keycloak umgekehrt in Salesforce Keycloak als Connected App anlegen.

Für diesen Schritt notieren wir uns den Redirect URI, den Keycloak uns anzeigt (im Beispiel "https://keycloak.traefik.me:8443/realms/master/broker/salesforce/endpoint").

Schritt 2: Connected App in Salesforce anlegen

Unter dem Menüpunkt "Platform Tools/Apps/App Manager" erreichst du den Button "New Connected App" über den du Keycloak als App einrichten kannst.

Dabei müssen die Pflichtfelder ausgefüllt werden:

  • Connected App Name (z.B. "Keycloak")

  • API Name (z.B. "Keycloak")

  • Contact Email

Um die neue App als OpenID Connect Service Provider zu nuten, aktivierst du unter "API (Enable OAuth Settings)" die Einstellung "Enable OAuth Settings". Den Callback URL füllst du mit dem Wert, den dir Keycloak als Redirect URI angezeigt hat.

Nun wählst du die folgenden OAuth Scopes aus:

  • Access the identity URL service (id, profile, email, address, phone)

  • Access unique user identifiers (openid)

connected app

Nachdem die Connected App angelegt wurde kannst du über "Platform Tools/Apps/App Manager" die Anwendung "Keycloak" suchen und gelangst über "View" (Drop-Down am Ende der Zeile) zur Ansicht deiner App.

salesforce view app

Über einen Klick auf "Manage Consumer Details" kommst du nun zur Ansicht von Consumer Key und Consumer Secret.

salesforce consumer details

Die Werte Consumer Key und Consumer Secret werden in Keycloak jetzt als Client ID und Client Secret eingetragen.

Nun kannst du die Anlge des Identity Providers in Keycloak abschließen.

Mögliche Fehler

redirect_uri must match configuration

Direkt nachdem Keycloak zu Salesforce weiterleitet wird folgende Meldung angezeigt:

error=redirect_uri_mismatch&error_description=redirect_uri%20must%20match%20configuration

Dekodiert bedeutet der Fehler:

error: redirect_uri_mismatch
error_description: redirect_uri must match configuration

Der in Salesforce hinterlegte Callback URL muss exakt dem von Keycloak vorgegebenen Redirect URI entsprechen.

Zur Lösung noch einmal die beiden Werte abgleichen.

Zu diesem Fehler kommt es häufig, wenn z.B. noch einmal der Alias des Identity Providers in Keycloak geändert wurde, da dieser Wert in den Redirect URI aufgenommen wird und sich der Redirect URI somit durch Änderung des Alias ebenfalls ändert.

missing required code challenge

Keycloak meldet in einem Dialog "Missing state parameter in response from identity provider."

Hier hilft es sich mit Hilfe der Dev-Tools im Browser einmal die Anwort von Salesforce anzuschauen:

error: invalid_request
error_description: missing required code challenge

Dies deutet darauf hin, dass Salesforce PKCE (Proof of Key-code exchange) erwartet, Keycloak aber keinen Code mitgeschickt hat.

Die Lösung ist einfach: In Keycloak den Identity Provider Salesforce noch einmal bearbeiten und "Use PKCE" aktivieren, als PKCE Method "S256" auswählen.




Zu den Themen Security, Passwordless und Keycloak bieten wir sowohl Beratung, Entwicklungsunterstützung als auch passende Schulungen an:

Auch für Ihren individuellen Bedarf können wir Workshops und Schulungen anbieten. Sprechen Sie uns gerne an.

Feedback oder Fragen zu einem Artikel - per Twitter @triondevelop oder E-Mail freuen wir uns auf eine Kontaktaufnahme!

Los geht's!

Bitte teilen Sie uns mit, wie wir Sie am besten erreichen können.