Nastavení změny hesla pomocí vlastních zásad v 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ší.

Azure Active Directory B2C (Azure AD B2C) můžete nakonfigurovat tak, aby uživatel, který je přihlášen pomocí místního účtu, mohl změnit heslo bez ověření e-mailu, aby prokázal svou identitu.

Tok změny hesla zahrnuje následující kroky:

  1. Uživatel se přihlásí ke svému místnímu účtu. Pokud je relace stále aktivní, Azure AD B2C autorizuje uživatele a přeskočí k dalšímu kroku.

  2. Ve starém hesle uživatel ověří své staré heslo. V části Nové heslo vytvoří a potvrdí nové heslo.

    Screenshot that shows two numbered dialogs for making a password change.

Tip

Uživatel může použít tok změn hesel, který je popsaný v tomto článku, jenom když zná heslo a chce změnit heslo. Doporučujeme také povolit samoobslužné resetování hesla pro případy podpory, ve kterých uživatel zapomene heslo.

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

Předpoklady

Přidání prvků

  1. Otevřete soubor TrustFrameworkExtensions.xml . Do elementu ClaimsSchema přidejte následující element ClaimType s identifikátorem oldPassword:

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="oldPassword">
          <DisplayName>Old Password</DisplayName>
          <DataType>string</DataType>
          <UserHelpText>Enter your old password</UserHelpText>
          <UserInputType>Password</UserInputType>
        </ClaimType>
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. Element ClaimsProvider obsahuje technický profil, který ověřuje uživatele. Do elementu ClaimsProviders přidejte následující zprostředkovatele deklarací identity:

    <ClaimsProviders>
      <ClaimsProvider>
        <DisplayName>Local Account SignIn</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="login-NonInteractive-PasswordChange">
            <DisplayName>Local Account SignIn</DisplayName>
            <InputClaims>
              <InputClaim ClaimTypeReferenceId="oldPassword" PartnerClaimType="password" Required="true" />
              </InputClaims>
            <IncludeTechnicalProfile ReferenceId="login-NonInteractive" />
          </TechnicalProfile>
        </TechnicalProfiles>
      </ClaimsProvider>
      <ClaimsProvider>
        <DisplayName>Local Account Password Change</DisplayName>
        <TechnicalProfiles>
          <TechnicalProfile Id="LocalAccountWritePasswordChangeUsingObjectId">
            <DisplayName>Change password (username)</DisplayName>
            <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
            <Metadata>
              <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
            </Metadata>
            <InputClaims>
              <InputClaim ClaimTypeReferenceId="objectId" />
            </InputClaims>
            <OutputClaims>
              <OutputClaim ClaimTypeReferenceId="oldPassword" Required="true" />
              <OutputClaim ClaimTypeReferenceId="newPassword" Required="true" />
              <OutputClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
            </OutputClaims>
            <ValidationTechnicalProfiles>
              <ValidationTechnicalProfile ReferenceId="login-NonInteractive-PasswordChange" />
              <ValidationTechnicalProfile ReferenceId="AAD-UserWritePasswordUsingObjectId" />
            </ValidationTechnicalProfiles>
          </TechnicalProfile>
        </TechnicalProfiles>
      </ClaimsProvider>
    </ClaimsProviders>
    
  3. Element UserJourneys definuje cestu, kterou uživatel vezme při interakci s vaší aplikací. Přidejte element UserJourneys, pokud neexistuje, s identifikátorem UserJourney :PasswordChange

    <UserJourneys>
      <UserJourney Id="PasswordChange">
        <OrchestrationSteps>
          <OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.signuporsignin">
            <ClaimsProviderSelections>
              <ClaimsProviderSelection TargetClaimsExchangeId="LocalAccountSigninEmailExchange" />
            </ClaimsProviderSelections>
          </OrchestrationStep>
          <OrchestrationStep Order="2" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="3" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="NewCredentials" TechnicalProfileReferenceId="LocalAccountWritePasswordChangeUsingObjectId" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="4" Type="ClaimsExchange">
            <ClaimsExchanges>
              <ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
            </ClaimsExchanges>
          </OrchestrationStep>
          <OrchestrationStep Order="5" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
        </OrchestrationSteps>
        <ClientDefinition ReferenceId="DefaultWeb" />
      </UserJourney>
    </UserJourneys>
    
  4. Uložte soubor zásad TrustFrameworkExtensions.xml.

  5. Zkopírujte soubor ProfileEdit.xml, který jste stáhli s úvodní sadou, a pojmenujte ho ProfileEditPasswordChange.xml.

  6. Otevřete nový soubor a aktualizujte atribut PolicyId jedinečnou hodnotou. Tato hodnota je název vaší zásady. Například B2C_1A_profile_edit_password_change.

  7. Upravte atribut ReferenceId v DefaultUserJourney tak, aby odpovídal ID nové cesty uživatele, kterou jste vytvořili. Například PasswordChange.

  8. Uloží vaše změny.

Nahrání a otestování zásad

  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. Vyberte Architekturu prostředí identit.
  5. Ve vlastních zásadách vyberte Nahrát zásadu.
  6. Vyberte Přepsat zásadu, pokud existuje, a pak vyhledejte a vyberte soubor TrustFrameworkExtensions.xml .
  7. Vyberte Odeslat.
  8. Opakujte kroky 5 až 7 pro soubor předávající strany, například ProfileEditPasswordChange.xml.

Spuštění zásad

  1. Otevřete zásadu, kterou jste změnili. Například B2C_1A_profile_edit_password_change.
  2. V části Aplikace vyberte aplikaci, kterou jste zaregistrovali dříve. Aby se zobrazil token, měla by se zobrazit https://jwt.msadresa URL odpovědi .
  3. Vyberte Spustit. Na nové kartě, která se otevře, odeberte z adresy URL "&prompt=login" a aktualizujte kartu. Pak se přihlaste pomocí účtu, který jste vytvořili dříve. Dialogové okno pro změnu hesla umožňuje změnit heslo.

Další kroky

  • Najděte ukázkovou zásadu na GitHubu.
  • Přečtěte si, jak v Azure AD B2C nakonfigurovat složitost hesel.
  • Nastavte tok resetování hesla.