Nastavení přihlášení pomocí poskytovatele SALESFORCE SAML pomocí protokolu SAML ve službě Azure Active Directory B2C

Než začnete, pomocí selektoru Zvolit typ zásady zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.

Tato funkce je dostupná jenom pro vlastní zásady. Pro kroky nastavení vyberte v předchozím selektoru vlastní zásady .

Poznámka:

V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.

V tomto článku se dozvíte, jak povolit přihlašování uživatelům z organizace Salesforce pomocí vlastních zásad v Azure Active Directory B2C (Azure AD B2C). Přihlášení povolíte přidáním zprostředkovatele identity SAML do vlastních zásad.

Předpoklady

Nastavení Salesforce jako zprostředkovatele identity

  1. Přihlaste se k Salesforce.
  2. V nabídce vlevo v části Nastavení rozbalte Položku Identita a pak vyberte Zprostředkovatele identity.
  3. Vyberte Povolit zprostředkovatele identity.
  4. V části Vybrat certifikát vyberte certifikát, který má Salesforce použít ke komunikaci s Azure AD B2C. Můžete použít výchozí certifikát.
  5. Klikněte na Uložit.

Vytvoření připojené aplikace v Salesforce

  1. Na stránce Zprostředkovatel identity vyberte Poskytovatelé služeb, které se teď vytvářejí prostřednictvím Připojení ed Aplikací. Klikněte sem.

  2. V části Základní informace zadejte požadované hodnoty pro připojenou aplikaci.

  3. V části Web App Nastavení zaškrtněte políčko Povolit SAML.

  4. Do pole ID entity zadejte následující adresu URL. Ujistěte se, že hodnotu your-tenant nahraďte názvem vašeho tenanta Azure AD B2C.

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

    Při použití vlastní domény použijte následující formát:

    https://your-domain-name/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase
    
  5. Do pole adresa URL služby ACS zadejte následující adresu URL. Ujistěte se, že hodnotu your-tenant nahraďte názvem vašeho tenanta Azure AD B2C.

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

    Při použití vlastní domény použijte následující formát:

    https://your-domain-name/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer
    
  6. Posuňte se do dolní části seznamu a klikněte na uložit.

Získání adresy URL metadat

  1. Na stránce přehledu připojené aplikace klikněte na Spravovat.
  2. Zkopírujte hodnotu koncového bodu zjišťování metadat a uložte ji. Použijete ho později v tomto článku.

Nastavení uživatelů Salesforce pro federaci

  1. Na stránce Spravovat připojenou aplikaci klikněte na Spravovat profily.
  2. Vyberte profily (nebo skupiny uživatelů), které chcete federovat s Azure AD B2C. Jako správce systému zaškrtněte políčko System Správa istrator, abyste mohli federovat pomocí účtu Salesforce.

Vytvoření certifikátu podepsaného jeho držitelem (self-signed certificate)

Pokud ještě certifikát nemáte, můžete použít certifikát podepsaný svým držitelem. Certifikát podepsaný svým držitelem je certifikát zabezpečení, který není podepsaný certifikační autoritou (CA) a neposkytuje záruky zabezpečení certifikátu podepsaného certifikační autoritou.

Ve Windows použijte rutinu New-SelfSignedCertificate v PowerShellu k vygenerování certifikátu.

  1. Spuštěním následujícího příkazu PowerShellu vygenerujte certifikát podepsaný svým držitelem. -Subject Upravte argument podle potřeby pro vaši aplikaci a název tenanta Azure AD B2C, například contosowebapp.contoso.onmicrosoft.com. Můžete také upravit -NotAfter datum a určit jiné vypršení platnosti certifikátu.

    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. Na počítači s Windows vyhledejte a vyberte Spravovat uživatelské certifikáty.

  3. V části Certifikáty – Aktuální uživatel vyberte osobní>certifikáty>yourappname.yourtenant.onmicrosoft.com.

  4. Vyberte certifikát a pak vyberte Akce>Všechny úkoly>exportu.

  5. Vyberte Další>ano, exportujte privátní klíč>Další.

  6. Přijměte výchozí hodnoty formátu exportu souboru a pak vyberte Další.

  7. Povolte možnost Heslo , zadejte heslo pro certifikát a pak vyberte Další.

  8. Pokud chcete zadat umístění pro uložení certifikátu, vyberte Procházet a přejděte do libovolného adresáře.

  9. V okně Uložit jako zadejte název souboru a pak vyberte Uložit.

  10. Vyberte Next (Další)>Finish (Dokončit).

Aby služba Azure AD B2C přijala heslo k souboru .pfx, musí být heslo zašifrované pomocí možnosti TripleDES-SHA1 v nástroji Pro export z Úložiště certifikátů windows, a ne pomocí AES256-SHA256.

Vytvoření klíče zásad

Musíte uložit certifikát, který jste vytvořili v tenantovi Azure AD B2C.

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  4. Na stránce Přehled vyberte rozhraní Identity Experience Framework.
  5. Vyberte Klíče zásad a pak vyberte Přidat.
  6. V nabídce Možnosti zvolte Upload.
  7. Zadejte Název zásady. Například SAMLSigningCert. Předpona B2C_1A_ se automaticky přidá do názvu klíče.
  8. Vyhledejte a vyberte certifikát B2CSigningCert.pfx, který jste vytvořili.
  9. Zadejte heslo pro certifikát.
  10. Klikněte na Vytvořit.

Přidání zprostředkovatele deklarací identity

Pokud chcete, aby se uživatelé přihlásili pomocí účtu Salesforce, musíte účet definovat jako zprostředkovatele deklarací identity, se kterým může Azure AD B2C komunikovat prostřednictvím koncového bodu. Koncový bod poskytuje sadu deklarací identity, které Azure AD B2C používá k ověření ověření konkrétního uživatele.

Účet Salesforce můžete definovat jako zprostředkovatele deklarací tím, že ho přidáte do elementu ClaimsProviders v souboru s příponou vaší zásady. Další informace najdete v tématu definování zprostředkovatele identity SAML.

  1. Otevřete Soubor TrustFrameworkExtensions.xml.

  2. Vyhledejte element ClaimsProviders . Pokud neexistuje, přidejte ho pod kořenový prvek.

  3. Přidejte nový ClaimsProvider následujícím způsobem:

    <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. Aktualizujte hodnotu PartnerEntity pomocí adresy URL metadat Salesforce, kterou jste si zkopírovali dříve.

  5. Aktualizujte hodnotu obou instancí StorageReferenceId na název klíče podpisového certifikátu. Například B2C_1A_SAMLSigningCert.

  6. <ClaimsProviders> Vyhledejte oddíl a přidejte následující fragment kódu XML. Pokud už vaše zásada obsahuje SM-Saml-idp technický profil, přejděte k dalšímu kroku. Další informace najdete v tématu Správa relací jednotného přihlašování.

    <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. Soubor uložte.

Přidání cesty uživatele

V tuto chvíli je zprostředkovatele identity nastavený, ale zatím není k dispozici na žádné přihlašovací stránce. Pokud nemáte vlastní cestu uživatele, vytvořte duplikát existující cesty uživatele šablony, jinak pokračujte dalším krokem.

  1. Otevřete soubor TrustFrameworkBase.xml z úvodní sady.
  2. Najděte a zkopírujte celý obsah prvku UserJourney , který obsahuje Id="SignUpOrSignIn".
  3. Otevřete TrustFrameworkExtensions.xml a najděte element UserJourneys. Pokud prvek neexistuje, přidejte ho.
  4. Vložte celý obsah elementu UserJourney , který jste zkopírovali jako podřízený prvek UserJourneys .
  5. Přejmenujte ID cesty uživatele. Například, Id="CustomSignUpSignIn".

Přidání zprostředkovatele identity do cesty uživatele

Teď, když máte cestu uživatele, přidejte do cesty uživatele nového zprostředkovatele identity. Nejdřív přidáte tlačítko pro přihlášení a pak tlačítko propočítáte s akcí. Akce je technický profil, který jste vytvořili dříve.

  1. Najděte prvek kroku orchestrace, který zahrnuje Type="CombinedSignInAndSignUp"nebo Type="ClaimsProviderSelection" na cestě uživatelem. Obvykle se jedná o první krok orchestrace. Element ClaimsProviderSelections obsahuje seznam zprostředkovatelů identity, se kterými se uživatel může přihlásit. Pořadí prvků řídí pořadí tlačítek pro přihlášení, která jsou uživateli prezentována. Přidejte element XML ClaimsProviderSelection. Nastavte hodnotu TargetClaimsExchangeId na popisný název.

  2. V dalším kroku orchestrace přidejte element ClaimsExchange . Nastavte ID na hodnotu ID cílové výměny deklarací identity. Aktualizujte hodnotu TechnicalProfileReferenceId na ID technického profilu, který jste vytvořili dříve.

Následující KÓD XML ukazuje první dva kroky orchestrace cesty uživatele se zprostředkovatelem identity:

<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>

Konfigurace zásad předávající strany

Zásady předávající strany, například SignUpSignIn.xml, určují cestu uživatele, kterou azure AD B2C spustí. Najděte element DefaultUserJourney v rámci předávající strany. Aktualizujte ID reference tak, aby odpovídalo ID cesty uživatele, do kterého jste přidali zprostředkovatele identity.

V následujícím příkladu CustomSignUpSignIn je pro cestu uživatele nastavena hodnota ReferenceId na CustomSignUpSignIn:

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

Nahrání vlastních zásad

  1. Přihlaste se k portálu Azure.
  2. Na panelu nástrojů portálu vyberte ikonu Adresář a předplatné a pak vyberte adresář, který obsahuje vašeho tenanta Azure AD B2C.
  3. Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
  4. V části Zásady vyberte Architekturu prostředí identit.
  5. Vyberte Nahrát vlastní zásady a potom nahrajte dva soubory zásad, které jste změnili, v následujícím pořadí: zásady rozšíření, například TrustFrameworkExtensions.xml, pak zásady předávající strany, například SignUpSignIn.xml.

Testování vlastních zásad

  1. Vyberte například zásadu B2C_1A_signup_signinpředávající strany.
  2. V části Aplikace vyberte webovou aplikaci, kterou jste předtím zaregistrovali. Adresa URL odpovědi by se měla zobrazit https://jwt.ms.
  3. Vyberte tlačítko Spustit hned.
  4. Na registrační nebo přihlašovací stránce vyberte Salesforce a přihlaste se pomocí účtu Salesforce.

Pokud je proces přihlášení úspěšný, prohlížeč se přesměruje na https://jwt.msobsah tokenu vráceného službou Azure AD B2C.