Udostępnij za pośrednictwem


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

Przed rozpoczęciem użyj selektora Wybierz typ zasad, 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 pominie 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.

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

Napiwek

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 nie istnieje, 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 zasad. Na przykład B2C_1A_profile_edit_password_change.

  7. Zmodyfikuj atrybut ReferenceId w wartości DefaultUserJourney , aby był zgodny z identyfikatorem nowo utworzonej podróży użytkownika. Na przykład PasswordChange.

  8. Zapisz zmiany.

Przekazywanie i testowanie zasad

  1. Zaloguj się w witrynie Azure Portal.
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.
  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz usługę Azure AD B2C.
  4. Wybierz pozycję Identity Experience Framework(Struktura obsługi tożsamości).
  5. W obszarze Zasady niestandardowe wybierz pozycję Przekaż zasady.
  6. Wybierz pozycję Zastąp zasady, jeśli istnieje, a następnie wyszukaj i wybierz plik TrustFrameworkExtensions.xml .
  7. Wybierz opcję 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 zmienione zasady. 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.

Następne kroki