Freigeben über


Einrichten der Anmeldung bei einem Salesforce-SAML-Anbieter mithilfe des SAML-Protokolls in Azure Active Directory B2C

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

Bevor Sie beginnen, verwenden Sie die Auswahl eines Richtlinientyps oben auf dieser Seite, um den Typ der Richtlinie auszuwählen, die Sie einrichten. Azure Active Directory B2C bietet zwei Methoden zum Definieren der Benutzerinteraktion mit Ihren Anwendungen: vordefinierte Benutzerflows oder vollständig konfigurierbare benutzerdefinierte Richtlinien. Die Schritte, die in diesem Artikel erforderlich sind, unterscheiden sich für jede Methode.

Dieses Feature ist nur für benutzerdefinierte Richtlinien verfügbar. Wählen Sie für Setupschritte im vorherigen Selektor die Option "Benutzerdefinierte Richtlinie " aus.

Hinweis

In Azure Active Directory B2C sind benutzerdefinierte Richtlinien in erster Linie für komplexe Szenarien konzipiert. Für die meisten Szenarien empfehlen wir die Verwendung von integrierten Benutzerflows. Informieren Sie sich, sofern noch nicht geschehen, unter Tutorial: Erstellen von Benutzerflows und benutzerdefinierten Richtlinien in Azure Active Directory B2C über das Starter Pack für benutzerdefinierte Richtlinien.

In diesem Artikel erfahren Sie, wie Sie die Anmeldung für Benutzer aus einer Salesforce-Organisation mithilfe von benutzerdefinierten Richtlinien in Azure Active Directory B2C (Azure AD B2C) aktivieren. Sie aktivieren die Anmeldung, indem Sie einer benutzerdefinierten Richtlinie einen SAML-Identitätsanbieter hinzufügen.

Voraussetzungen

Einrichten von Salesforce als Identitätsanbieter

  1. Melden Sie sich bei Salesforce an.
  2. Erweitern Sie im linken Menü unter Einstellungen die Option Identität, und wählen Sie dann Identitätsanbieter aus.
  3. Wählen Sie Identitätsanbieter aktivieren aus.
  4. Wählen Sie unter Zertifikat auswählen das Zertifikat aus, das Salesforce für die Kommunikation mit Azure AD B2C verwenden soll. Sie können das Standardzertifikat verwenden.
  5. Klicken Sie auf Speichern.

Erstellen einer verbundenen Anwendung in Salesforce

  1. Wählen Sie auf der Seite Identitätsanbieter die Option Dienstanbieter werden jetzt über verbundene Apps erstellt aus. Klicken Sie hier.

  2. Geben Sie unter Grundlegende Informationen die erforderlichen Werte für Ihre verbundene App ein.

  3. Aktivieren Sie unter Web-App-Einstellungen das Kontrollkästchen SAML aktivieren .

  4. Geben Sie im Feld Entitäts-ID die folgende URL ein. Stellen Sie sicher, dass Sie den Wert for your-tenant durch den Namen Ihres Azure AD B2C-Mandanten ersetzen.

    https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase
    

    Wenn Sie eine benutzerdefinierte Domäne verwenden, verwenden Sie das folgende Format:

    https://your-domain-name/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase
    
  5. Geben Sie im Feld ACS-URL die folgende URL ein. Stellen Sie sicher, dass Sie den Wert for your-tenant durch den Namen Ihres Azure AD B2C-Mandanten ersetzen.

    https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer
    

    Wenn Sie eine benutzerdefinierte Domäne verwenden, verwenden Sie das folgende Format:

    https://your-domain-name/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer
    
  6. Scrollen Sie zum Ende der Liste, und klicken Sie dann auf Speichern.

Abrufen der Metadaten-URL

  1. Klicken Sie auf der Übersichtsseite Ihrer verbundenen App auf Verwalten.
  2. Kopieren Sie den Wert für Endpunkt der Metadatenermittlung, und speichern Sie ihn. Sie werden es weiter unten in diesem Artikel verwenden.

Einrichten von Salesforce-Benutzenden für einen Verbund

  1. Klicken Sie auf der Seite Verwalten Ihrer verbundenen App auf Profile verwalten.
  2. Wählen Sie die Profile (oder Benutzergruppen) aus, die Sie mit Azure AD B2C verbinden möchten. Aktivieren Sie als Systemadministrator das Kontrollkästchen Systemadministrator , damit Sie mithilfe Ihres Salesforce-Kontos eine Verbindung herstellen können.

Erstellen eines selbstsignierten Zertifikats

Wenn Sie noch nicht über ein Zertifikat verfügen, können Sie ein selbstsigniertes Zertifikat verwenden. Ein selbstsigniertes Zertifikat ist ein Sicherheitszertifikat, das nicht von einer Zertifizierungsstelle (ZS) signiert ist und nicht die Sicherheitsgarantien eines Zertifikats bietet, das von einer Zertifizierungsstelle signiert wurde.

Verwenden Sie unter Windows das Cmdlet New-SelfSignedCertificate in PowerShell, um ein Zertifikat zu generieren.

  1. Führen Sie den folgenden PowerShell-Befehl aus, um ein selbstsigniertes Zertifikat zu generieren. Ändern Sie das Argument -Subject entsprechend Ihrer Anwendung und dem Azure AD B2C-Mandantennamen, z. B. contosowebapp.contoso.onmicrosoft.com. Sie können auch das -NotAfter-Datum anpassen, um einen anderen Ablaufzeitpunkt für das Zertifikat anzugeben.

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. Suchen sie auf Windows-Computern nach Benutzerzertifikaten, und wählen Sie "Benutzerzertifikate verwalten" aus.

  3. Wählen Sie unter Zertifikate – Aktueller BenutzerPersönliche>Zertifikate>yourappname.yourtenant.onmicrosoft.com aus.

  4. Wählen Sie das Zertifikat aus und dann Aktion>Alle Aufgaben>Exportieren.

  5. Wählen Sie "Weiter> Ja" aus, exportieren Sie den privaten Schlüssel>"Weiter".

  6. Übernehmen Sie die Standardwerte für das Exportdateiformat, und wählen Sie dann "Weiter" aus.

  7. Option "Kennwort aktivieren", geben Sie ein Kennwort für das Zertifikat ein, und wählen Sie dann "Weiter" aus.

  8. Wenn Sie einen Speicherort angeben möchten, an dem Ihr Zertifikat gespeichert werden soll, wählen Sie " Durchsuchen" aus, und navigieren Sie zu einem Verzeichnis Ihrer Wahl.

  9. Geben Sie im Fenster "Speichern unter " einen Dateinamen ein, und wählen Sie dann " Speichern" aus.

  10. Wählen Sie "Nächstes>Ende" aus.

Damit das Kennwort für die PFX-Datei in Azure AD B2C akzeptiert wird, muss es statt mit „AES256-SHA256“ mit der Option „TripleDES-SHA1“ im Exporthilfsprogramm des Windows-Zertifikatspeichers verschlüsselt werden.

Richtlinienschlüssel erstellen

Sie müssen das Zertifikat, das Sie in Ihrem Azure AD B2C-Mandanten erstellt haben, speichern.

  1. Melden Sie sich beim Azure-Portal an.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
  3. Wählen Sie "Alle Dienste " in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach Azure AD B2C, und wählen Sie sie aus.
  4. Wählen Sie auf der Seite "Übersicht" die Option "Identity Experience Framework" aus.
  5. Wählen Sie "Richtlinienschlüssel" und dann "Hinzufügen" aus.
  6. Wählen Sie unter "Optionen" die Option Uploadaus.
  7. Geben Sie einen Namen für die Richtlinie ein. Beispiel: SAMLSigningCert. Das Präfix B2C_1A_ wird automatisch an den Namen Ihres Schlüssels angehängt.
  8. Navigieren Sie zu dem Zertifikat B2CSigningCert.pfx, das Sie erstellt haben, und wählen Sie es aus.
  9. Geben Sie das Kennwort für das Zertifikat ein.
  10. Klicken Sie auf "Erstellen".

Hinzufügen eines Anspruchsanbieters

Wenn Sie möchten, dass sich Benutzer mit einem Salesforce-Konto anmelden, müssen Sie das Konto als Anspruchsanbieter definieren, mit dem Azure AD B2C über einen Endpunkt kommunizieren kann. Der Endpunkt stellt eine Reihe von Ansprüchen bereit, die von Azure AD B2C verwendet werden, um zu überprüfen, ob ein bestimmter Benutzer authentifiziert wurde.

Sie können einen Salesforce-Account als Anspruchsanbieter definieren, indem Sie ihn dem ClaimsProviders-Element in der Erweiterungsdatei Ihrer Richtlinie hinzufügen. Weitere Informationen finden Sie unter Definieren eines SAML-Identitätsanbieters.

  1. Öffnen Sie die Datei TrustFrameworkExtensions.xml.

  2. Suchen Sie das ClaimsProviders-Element . Wenn sie nicht vorhanden ist, fügen Sie es unter dem Stammelement hinzu.

  3. Fügen Sie einen neuen ClaimsProvider wie folgt hinzu:

    <ClaimsProvider>
      <Domain>salesforce.com</Domain>
      <DisplayName>Salesforce</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Salesforce-SAML2">
          <DisplayName>Salesforce</DisplayName>
          <Description>Login with your Salesforce account</Description>
          <Protocol Name="SAML2"/>
          <Metadata>
            <Item Key="WantsEncryptedAssertions">false</Item>
            <Item Key="WantsSignedAssertions">false</Item>
            <Item Key="PartnerEntity">https://contoso-dev-ed.my.salesforce.com/.well-known/samlidp.xml</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userId"/>
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/>
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/>
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email"/>
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="username"/>
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication"/>
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="salesforce.com" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Aktualisieren Sie den Wert von PartnerEntity mit der Salesforce-Metadaten-URL, die Sie zuvor kopiert haben.

  5. Aktualisieren Sie den Wert beider Instanzen von StorageReferenceId auf den Namen des Schlüssels Ihres Signaturzertifikats. Beispiel: B2C_1A_SAMLSigningCert.

  6. Suchen Sie den <ClaimsProviders> Abschnitt, und fügen Sie den folgenden XML-Codeausschnitt hinzu. Wenn Ihre Richtlinie bereits das SM-Saml-idp technische Profil enthält, fahren Sie mit dem nächsten Schritt fort. Weitere Informationen finden Sie unter Sitzungsverwaltung für einmaliges Anmelden.

    <ClaimsProvider>
      <DisplayName>Session Management</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="SM-Saml-idp">
          <DisplayName>Session Management Provider</DisplayName>
          <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
          <Metadata>
            <Item Key="IncludeSessionIndex">false</Item>
            <Item Key="RegisterServiceProviders">false</Item>
          </Metadata>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  7. Speichern Sie die Datei.

Hinzufügen einer Benutzerreise

Zum jetzigen Zeitpunkt wurde der Identitätsanbieter eingerichtet, ist aber noch nicht auf einer der Anmeldeseiten verfügbar. Wenn Sie nicht über eine eigene benutzerdefinierte Benutzerreise verfügen, erstellen Sie ein Duplikat einer vorhandenen Benutzerreise für Vorlagen, andernfalls fahren Sie mit dem nächsten Schritt fort.

  1. Öffnen Sie die TrustFrameworkBase.xml Datei aus dem Startpaket.
  2. Suchen und kopieren Sie den gesamten Inhalt des UserJourney-Elements, das Id="SignUpOrSignIn" enthält.
  3. Öffnen Sie TrustFrameworkExtensions.xml und finden Sie das UserJourneys-Element. Wenn das Element nicht vorhanden ist, fügen Sie eins hinzu.
  4. Fügen Sie den gesamten Inhalt des UserJourney-Elements ein, das Sie als untergeordnetes Element des UserJourneys-Elements kopiert haben .
  5. Benennen Sie die ID der User Journey um. Beispiel: Id="CustomSignUpSignIn".

Fügen Sie den Identitätsanbieter zu einem Benutzerablauf hinzu

Nachdem Sie nun über eine Benutzerreise verfügen, fügen Sie den neuen Identitätsanbieter zur Benutzerreise hinzu. Sie fügen zuerst eine Anmeldeschaltfläche hinzu und verknüpfen dann die Schaltfläche mit einer Aktion. Die Aktion ist das technische Profil, das Sie zuvor erstellt haben.

  1. Suchen Sie nach dem Orchestrierungsschrittelement, das Type="CombinedSignInAndSignUp" enthält, oder Type="ClaimsProviderSelection" in der User Journey. Es ist in der Regel der erste Orchestrierungsschritt. Das ClaimsProviderSelections-Element enthält eine Liste von Identitätsanbietern, mit denen sich ein Benutzer anmelden kann. Die Reihenfolge der Elemente steuert die Reihenfolge der Anmeldeschaltflächen, die dem Benutzer angezeigt werden. Fügen Sie ein ClaimsProviderSelection-XML-Element hinzu. Legen Sie den Wert von TargetClaimsExchangeId auf einen benutzerfreundlichen Namen fest.

  2. Fügen Sie im nächsten Orchestrierungsschritt ein ClaimsExchange-Element hinzu. Legen Sie die ID auf den Wert der Zielansprücheaustausch-ID fest. Aktualisieren Sie den Wert von TechnicalProfileReferenceId auf die ID des zuvor erstellten technischen Profils.

Der folgende XML-Code veranschaulicht die ersten beiden Orchestrierungsschritte einer Benutzerreise mit dem Identitätsanbieter:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="SalesforceExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="SalesforceExchange" TechnicalProfileReferenceId="Salesforce-SAML2" />
  </ClaimsExchanges>
</OrchestrationStep>

Konfigurieren einer Richtlinie für die vertrauende Seite

Die Richtlinie der vertrauenden Seite, z. B. SignUpSignIn.xml, gibt die Benutzerreise an, die Azure AD B2C ausführt. Suchen Sie das DefaultUserJourney-Element in Vertrauende Seite. Aktualisieren Sie die ReferenceId so, dass sie mit der Benutzerreise-ID übereinstimmt, in der Sie den Identitätsanbieter hinzugefügt haben.

Im folgenden Beispiel wird für den CustomSignUpSignIn Benutzerablauf die ReferenceId auf CustomSignUpSignIn festgelegt.

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Hochladen der benutzerdefinierten Richtlinie

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie auf der Portalsymbolleiste das Symbol "Verzeichnis + Abonnement " und dann das Verzeichnis aus, das Ihren Azure AD B2C-Mandanten enthält.
  3. Suchen Sie im Azure-Portal nach Azure AD B2C, und wählen Sie diese Option dann aus.
  4. Wählen Sie unter "Richtlinien" die Option "Identity Experience Framework" aus.
  5. Wählen Sie "Benutzerdefinierte Richtlinie hochladen" aus, und laden Sie dann die beiden geänderten Richtliniendateien in der folgenden Reihenfolge hoch: die Erweiterungsrichtlinie, z.B. TrustFrameworkExtensions.xml, dann die Richtlinie der vertrauenden Seite, z.B. SignUpSignIn.xml.

Testen der benutzerdefinierten Richtlinie

  1. Wählen Sie die Richtliniendatei für die vertrauende Seite aus, z. B. B2C_1A_signup_signin.
  2. Wählen Sie für "Anwendung" eine Webanwendung aus, die Sie zuvor registriert haben. Als Antwort-URL sollte https://jwt.ms angezeigt werden.
  3. Wählen Sie die Schaltfläche " Jetzt ausführen " aus.
  4. Wählen Sie auf der Registrierungs- oder Anmeldeseite Salesforce aus, um sich mit dem Salesforce-Konto anzumelden.

Wenn der Anmeldevorgang erfolgreich ist, wird Ihr Browser zu https://jwt.ms umgeleitet, wo der Inhalt des von Azure AD B2C zurückgegebenen Tokens angezeigt wird.