Udostępnij przez


Konfigurowanie zmiany hasła przy użyciu zasad niestandardowych w usłudze Azure Active Directory B2C

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

Przed rozpoczęciem użyj selektora Wybierz typ zasad w górnej części tej strony, aby wybrać typ konfigurowanych zasad. Usługa Azure Active Directory B2C oferuje dwie metody definiowania sposobu interakcji użytkowników z aplikacjami: za pomocą wstępnie zdefiniowanych przepływów użytkowników lub w pełni konfigurowalnych zasad niestandardowych. Kroki wymagane w tym artykule są różne dla każdej metody.

Możesz skonfigurować usługę Azure Active Directory B2C (Azure AD B2C), aby użytkownik zalogowany przy użyciu konta lokalnego mógł zmienić swoje hasło bez użycia weryfikacji poczty e-mail w celu potwierdzenia tożsamości.

Przepływ zmiany hasła obejmuje następujące kroki:

  1. Użytkownik loguje się do swojego konta lokalnego. Jeśli sesja jest nadal aktywna, usługa Azure AD B2C autoryzuje użytkownika i przechodzi do następnego kroku.

  2. W obszarze Stare hasło użytkownik weryfikuje swoje stare hasło. W obszarze Nowe hasło tworzą i potwierdzają nowe hasło.

    Zrzut ekranu przedstawiający dwa ponumerowane okna dialogowe służące do wprowadzania zmiany hasła.

Wskazówka

Użytkownik może użyć przepływu zmiany hasła opisanego w tym artykule tylko wtedy, gdy zna swoje hasło i chce zmienić hasło. Zalecamy również włączenie samoobsługowego resetowania hasła do obsługi przypadków, w których użytkownik zapomni hasła.

Ta funkcja jest dostępna tylko dla zasad niestandardowych. Aby uzyskać instrukcje konfiguracji, wybierz pozycję Zasady niestandardowe w poprzednim selektorze.

Wymagania wstępne

Dodawanie elementów

  1. Otwórz plik TrustFrameworkExtensions.xml . Dodaj następujący element ClaimType do elementu ClaimsSchema o identyfikatorze 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 zawiera profil techniczny, który uwierzytelnia użytkownika. Dodaj następujących dostawców oświadczeń do elementu ClaimsProviders :

    <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 definiuje ścieżkę, którą użytkownik przyjmuje podczas interakcji z aplikacją. Dodaj element UserJourneys, jeśli jeszcze nie istnieje, wraz z identyfikatorem 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. Zapisz plik zasad TrustFrameworkExtensions.xml .

  5. Skopiuj pobrany plik ProfileEdit.xml z pakietem startowym i nadaj mu nazwę ProfileEditPasswordChange.xml.

  6. Otwórz nowy plik i zaktualizuj atrybut PolicyId przy użyciu unikatowej wartości. Ta wartość to nazwa Twojej zasady. Na przykład B2C_1A_profile_edit_password_change.

  7. Zmodyfikuj atrybut ReferenceId w DefaultUserJourney, aby był zgodny z identyfikatorem nowo utworzonej ścieżki użytkownika. Na przykład PasswordChange.

  8. Zapisz zmiany.

Wyślij i przetestuj politykę

  1. Zaloguj się do witryny Azure Portal.
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się na dzierżawę Azure AD B2C z menu Katalogi + subskrypcje.
  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz pozycję Azure AD B2C.
  4. Wybierz Identity Experience Framework.
  5. W obszarze Zasady Niestandardowe wybierz pozycję Prześlij Zasady.
  6. Wybierz pozycję Zastąp politykę, jeśli istnieje, a następnie wyszukaj i wybierz plik TrustFrameworkExtensions.xml.
  7. Wybierz pozycję Prześlij.
  8. Powtórz kroki od 5 do 7 dla pliku jednostki uzależnionej, na przykład ProfileEditPasswordChange.xml.

Uruchamianie zasad

  1. Otwórz zmienioną zasadę. Na przykład B2C_1A_profile_edit_password_change.
  2. W polu Aplikacja wybierz zarejestrowaną wcześniej aplikację. Aby wyświetlić token, adres URL odpowiedzi powinien zawierać wartość https://jwt.ms.
  3. Wybierz opcję Uruchom teraz. Na nowej karcie, która zostanie otwarta, usuń ciąg "&prompt=login" z adresu URL i odśwież kartę. Następnie zaloguj się przy użyciu utworzonego wcześniej konta. Okno dialogowe zmiany hasła umożliwia zmianę hasła.