Menyiapkan perubahan kata sandi menggunakan kebijakan kustom di Azure Active Directory B2C

Sebelum memulai, gunakan pemilih Pilih jenis kebijakan untuk memilih jenis kebijakan yang Anda siapkan. Azure Active Directory B2C menawarkan dua metode untuk menentukan cara pengguna berinteraksi dengan aplikasi Anda: melalui alur pengguna yang telah ditentukan sebelumnya atau melalui kebijakan kustom yang sepenuhnya dapat dikonfigurasi. Langkah yang diperlukan dalam artikel ini berbeda untuk setiap metode.

Anda dapat mengonfigurasi Azure Active Directory B2C (Azure AD B2C) sehingga pengguna yang masuk dengan akun lokal dapat mengubah kata sandi mereka tanpa menggunakan verifikasi email untuk membuktikan identitas mereka.

Alur perubahan kata sandi melibatkan langkah-langkah berikut:

  1. Pengguna masuk ke akun lokal mereka. Jika sesi masih aktif, Azure Active Directory B2C memberi otorisasi kepada pengguna, dan melompat ke langkah berikutnya.

  2. Di Kata sandi lama, pengguna memverifikasi kata sandi lama mereka. Di Kata sandi baru, mereka membuat dan mengkonfirmasi kata sandi baru mereka.

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

Tip

Pengguna dapat menggunakan alur perubahan kata sandi yang dijelaskan dalam artikel ini hanya ketika mereka mengetahui kata sandi mereka dan mereka ingin mengubah kata sandi mereka. Kami menyarankan Anda untuk juga mengaktifkan pengaturan ulang kata sandi mandiri untuk mendukung kasus ketika pengguna lupa kata sandi mereka.

Fitur ini tersedia hanya untuk kebijakan kustom. Untuk langkah-langkah penyiapan, pilih Kebijakan kustom dalam pemilih sebelumnya.

Prasyarat

Menambahkan elemen

  1. Buka file TrustFrameworkExtensions.xml Anda. Tambahkan elemen ClaimType berikut ke elemen ClaimsSchema, dengan pengidentifikasi 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. Elemen ClaimsProvider berisi profil teknis yang mengautentikasi pengguna. Tambahkan penyedia klaim berikut ke elemen 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. Elemen UserJourney menentukan jalur yang dibutuhkan pengguna saat berinteraksi dengan aplikasi Anda. Tambahkan elemen UserJourneys jika tidak ada, dengan pengidentifikasi UserJourney dari 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. Simpan file kebijakanTrustFrameworkExtensions.xml.

  5. Salin ProfileEdit.xml yang Anda unduh dengan paket permulaan dan beri nama ProfileEditPasswordChange.xml.

  6. Buka file baru dan perbarui atribut PolicyId dengan nilai unik. Nilai ini adalah nama kebijakan Anda. Misalnya, B2C_1A_profile_edit_password_change.

  7. Ubah atribut ReferenceId di DefaultUserJourney agar sesuai dengan ID perjalanan pengguna baru yang Anda buat. Misalnya, PasswordChange.

  8. Simpan perubahan.

Mengunggah dan menguji kebijakan

  1. Masuk ke portal Azure.
  2. Jika Anda memiliki akses ke beberapa penyewa, pilih ikon Pengaturan di menu atas untuk beralih ke penyewa Azure AD B2C Anda dari menu Direktori + langganan.
  3. Pilih Semua layanan di pojok kiri atas portal Microsoft Azure, lalu cari dan pilih AAD B2C.
  4. Pilih IEF.
  5. Dalam Kebijakan Kustom,pilih Kebijakan Pengunggahan.
  6. Pilih Timpa kebijakan jika ada, lalu telusuri dan pilih file TrustFrameworkExtensions.xml.
  7. Pilih Unggah.
  8. Ulangi langkah 5 sampai 7 untuk file pihak yang mengandalkan, seperti ProfileEditPasswordChange.xml.

Menjalankan kebijakan

  1. Buka kebijakan yang Anda ubah. Misalnya, B2C_1A_profile_edit_password_change.
  2. Untuk Aplikasi, pilih aplikasi yang Anda daftarkan sebelumnya. Untuk melihat token tersebut, URL Balasan akan menampilkan https://jwt.ms.
  3. Pilih Jalankan sekarang. Di tab baru yang terbuka, hapus "&prompt=login" dari URL dan segarkan tab. Kemudian, masuk dengan akun yang Anda buat sebelumnya. Dialog perubahan kata sandi memberi Anda opsi untuk mengubah kata sandi.

Langkah berikutnya