Menyiapkan alur reset kata sandi 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.

Dalam perjalanan pendaftaran dan rincian masuk, pengguna dapat mengatur ulang kata sandi mereka sendiri menggunakan tautan Lupa kata sandi?. Alur pengaturan ulang kata sandi layanan mandiri ini berlaku untuk akun lokal di Azure Active Directory B2C (Azure AD B2C) yang menggunakan alamat email atau nama pengguna dengan kata sandi untuk masuk.

Alur reset kata sandi melibatkan langkah-langkah berikut:

  1. Di halaman masuk dan pendaftaran, pengguna mengeklik tautan Lupa kata sandi?. Azure AD B2C memulai alur reset kata sandi.
  2. Di dialog berikutnya yang muncul, pengguna memasukkan alamat email mereka, lalu memilih Kirim kode verifikasi. Azure AD B2C mengirimkan kode verifikasi ke akun email pengguna. Pengguna kemudian menyalin kode verifikasi dari email, memasukkan kode di dialog pengaturan ulang kata sandi Azure AD B2C, dan memilih Verifikasi kode.
  3. Pengguna kemudian dapat memasukkan kata sandi baru. (Setelah email diverifikasi, pengguna masih dapat memilih tombol Ubah email; lihat Menyembunyikan tombol ubah email.)

Diagram that shows three dialogs in the password reset flow.

Tip

Pengguna dapat mengubah kata sandi mereka dengan menggunakan alur pengaturan ulang kata sandi mandiri jika mereka lupa kata sandi mereka dan ingin mengatur ulang. Anda juga dapat memilih salah satu opsi alur pengguna berikut:

  • Jika pengguna mengetahui sandinya dan ingin mengubahnya, gunakan alur perubahan sandi.
  • Jika Anda ingin memaksa pengguna untuk mengatur ulang kata sandi mereka (misalnya, ketika mereka masuk untuk pertama kali, ketika kata sandi mereka telah diatur ulang oleh admin, atau setelah mereka dimigrasikan ke Azure AD B2C dengan kata sandi acak), gunakan alur paksa setel ulang kata sandi.

Nama default tombol Ubah email di selfasserted.html adalah changeclaims. Untuk menemukan nama tombol, pada halaman pendaftaran, periksa sumber halaman dengan menggunakan alat browser seperti Inspeksi.

Prasyarat

Menyembunyikan tombol ubah email

Setelah email diverifikasi, pengguna masih dapat memilih Ubah email, memasukkan alamat email lain, dan mengulangi verifikasi email dari awal. Jika Anda lebih suka menyembunyikan tombol Ubah email, Anda dapat memodifikasi CSS untuk menyembunyikan elemen HTML terkait di dialog. Misalnya, Anda dapat menambahkan entri CSS berikut ini ke selfAsserted.HTML dan menyesuaikan antarmuka pengguna dengan templat HTML:

<style type="text/css">
   .changeClaims
   {
     visibility: hidden;
   }
</style>

Pengalaman reset kata sandi baru sekarang menjadi bagian dari kebijakan pendaftaran atau masuk. Ketika pengguna memilih tautan Lupa kata sandi Anda?, mereka akan segera dialihkan ke pengalaman Lupa Kata Sandi. Aplikasi Anda tidak perlu lagi menangani kode kesalahan AADB2C90118, dan Anda tidak memerlukan kebijakan terpisah untuk reset kata sandi.

Pengalaman pengaturan ulang kata sandi mandiri dapat dikonfigurasi untuk alur pengguna Masuk (Disarankan) atau Daftar dan masuk (Disarankan). Jika Anda tidak menyiapkan salah satu alur pengguna ini, buat alur pengguna pendaftaran atau masuk.

Untuk mengaktifkan pengaturan ulang kata sandi mandiri untuk alur pengguna pendaftaran atau masuk:

  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. Di portal Microsoft Azure, cari dan pilih AAD B2C.
  4. Pilih Alur pengguna.
  5. Pilih alur pengguna mendaftar atau masuk (jenis Disarankan) yang ingin Anda sesuaikan.
  6. Di menu di bawah Pengaturan,pilih Properti.
  7. Pada Konfigurasi kata sandi, pilih Reset kata sandi mandiri.
  8. Pilih Simpan.
  9. Di menu sebelah kiri di bawah Kustomisasi, pilih Tata letak halaman.
  10. Di Versi Tata Letak Halaman, pilih 2.1.3 atau versi lebih baru.
  11. Pilih Simpan.

Bagian berikut ini menjelaskan cara menambahkan pengalaman kata sandi layanan mandiri ke kebijakan kustom. Sampel didasarkan pada file kebijakan yang termasuk dalam paket pemula kebijakan kustom.

Tip

Anda dapat menemukan sampel lengkap kebijakan Daftar atau Masuk dengan Pengaturan ulang kata sandi di GitHub.

Untuk menunjukkan ke kebijakan bahwa pengguna telah memilih tautan Lupa kata sandi Anda?, tentukan klaim Boolean. Gunakan klaim untuk mengarahkan perjalanan pengguna ke profil teknis Lupa Kata Sandi. Klaim ini juga dapat dikeluarkan untuk token sehingga aplikasi mendeteksi bahwa pengguna masuk menggunakan alur pengguna Lupa Kata Sandi.

Nyatakan klaim Anda dalam skema klaim. Buka file ekstensi kebijakan Anda, misalnya, di SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  1. Cari elemen BuildingBlocks. Jika elemen tersebut tidak ada, tambahkan.

  2. Temukan elemen ClaimsSchema. Jika elemen tersebut tidak ada, tambahkan.

  3. Tambahkan klaim berikut ke elemen ClaimsSchema.

    <!-- 
    <BuildingBlocks>
      <ClaimsSchema> -->
        <ClaimType Id="isForgotPassword">
          <DisplayName>isForgotPassword</DisplayName>
          <DataType>boolean</DataType>
          <AdminHelpText>Whether the user has selected Forgot your Password</AdminHelpText>
        </ClaimType>
      <!--
      </ClaimsSchema>
    </BuildingBlocks> -->
    

Meningkatkan versi tata letak halaman

Versi tata letak halaman 2.1.2 diperlukan untuk mengaktifkan alur pengaturan ulang kata sandi mandiri dalam perjalanan pendaftaran atau masuk. Untuk meningkatkan versi tata letak halaman:

  1. Buka file dasar kebijakan Anda, misalnya, SocialAndLocalAccounts/TrustFrameworkBase.xml.

  2. Cari elemen BuildingBlocks. Jika elemen tersebut tidak ada, tambahkan.

  3. Temukan elemen ContentDefinitions. Jika elemen tersebut tidak ada, tambahkan.

  4. Ubah elemen DataURI dalam elemen ContentDefinition agar memiliki ID api.signuporsignin:

    <!-- 
    <BuildingBlocks>
      <ContentDefinitions> -->
        <ContentDefinition Id="api.signuporsignin">
          <DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:2.1.2</DataUri>
        </ContentDefinition>
      <!-- 
      </ContentDefinitions>
    </BuildingBlocks> -->
    

Menambahkan profil teknis baru

Profil teknis transformasi klaim mengakses klaim isForgotPassword. Profil teknis dirujuk nanti. Ketika dipanggil, profil akan menetapkan nilai klaim isForgotPassword menjadi true.

  1. Buka file ekstensi kebijakan Anda, misalnya, di SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
  2. Temukan elemen ClaimsProviders (jika elemen tidak ada, buatlah), kemudian tambahkan penyedia klaim berikut:
<!-- 
<ClaimsProviders> -->
  <ClaimsProvider>
    <DisplayName>Local Account</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="ForgotPassword">
        <DisplayName>Forgot your password?</DisplayName>
        <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="true" AlwaysUseDefaultValue="true"/>
        </OutputClaims>
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
      </TechnicalProfile>
      <TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
        <Metadata>
          <Item Key="setting.forgotPasswordLinkOverride">ForgotPasswordExchange</Item>
        </Metadata>
      </TechnicalProfile>
      <TechnicalProfile Id="LocalAccountWritePasswordUsingObjectId">
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
<!-- 
</ClaimsProviders> -->

Profil teknis SelfAsserted-LocalAccountSignin-Emailsetting.forgotPasswordLinkOverride menentukan pertukaran klaim pengaturan ulang kata sandi yang dijalankan dalam perjalanan pengguna Anda.

Profil teknis LocalAccountWritePasswordUsingObjectId manajer sesi UseTechnicalProfileForSessionManagementSM-AAD diperlukan agar pengguna berhasil melakukan pembentukan awal login berikutnya dalam syarat SSO.

Menambahkan sub perjalanan reset kata sandi

Pengguna sekarang dapat masuk, mendaftar, dan melakukan pengaturan ulang kata sandi dalam perjalanan pengguna Anda. Untuk mengatur perjalanan pengguna dengan lebih baik, Anda dapat menggunakan sub perjalanan untuk menangani alur pengaturan ulang kata sandi.

Sub perjalanan akan dipanggil dari perjalanan pengguna dan akan melakukan langkah-langkah khusus untuk memberikan pengalaman pengaturan ulang kata sandi kepada pengguna. Gunakan sub perjalanan jenis Call sehingga ketika sub perjalanan selesai, kontrol dikembalikan ke langkah orkestrasi yang memulai sub perjalanan.

  1. Buka file ekstensi kebijakan Anda, seperti SocialAndLocalAccounts/TrustFrameworkExtensions.xml.
  2. Temukan elemen SubJourneys. Jika elemen tidak ada, tambahkan setelah elemen User Journeys. Kemudian tambahkan sub perjalanan berikut:
<!--
<SubJourneys>-->
  <SubJourney Id="PasswordReset" Type="Call">
    <OrchestrationSteps>
      <!-- Validate user's email address. -->
      <OrchestrationStep Order="1" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="PasswordResetUsingEmailAddressExchange" TechnicalProfileReferenceId="LocalAccountDiscoveryUsingEmailAddress" />
        </ClaimsExchanges>
      </OrchestrationStep>

      <!-- Collect and persist a new password. -->
      <OrchestrationStep Order="2" Type="ClaimsExchange">
        <ClaimsExchanges>
          <ClaimsExchange Id="NewCredentials" TechnicalProfileReferenceId="LocalAccountWritePasswordUsingObjectId" />
        </ClaimsExchanges>
      </OrchestrationStep>
    </OrchestrationSteps>
  </SubJourney>
<!--
</SubJourneys>-->

Persiapkan perjalanan pengguna Anda

Selanjutnya, untuk menyambungkan tautan Lupa kata sandi Anda? ke sub perjalanan Lupa Kata Sandi , Anda perlu mereferensikan ID sub perjalanan Lupa Kata Sandi di elemen ClaimsProviderSelection dari langkah CombinedSignInAndSignUp .

Jika Anda tidak memiliki perjalanan pengguna kustom Anda sendiri yang memiliki langkah CombinedSignInAndSignUp, selesaikan langkah-langkah berikut untuk menduplikasi perjalanan pengguna pendaftaran atau masuk yang sudah ada. Jika tidak, lanjutkan ke bagian berikutnya.

  1. Dalam paket pemula, buka file TrustFrameworkBase.xml seperti SocialAndLocalAccounts/TrustFrameworkBase.xml.
  2. Temukan dan salin seluruh konten elemen UserJourney yang menyertakan Id="SignUpOrSignIn".
  3. Buka file TrustFrameworkExtensions.xml, seperti SocialAndLocalAccounts/TrustFrameworkExtensions.xml, dan temukan elemen UserJourneys. Jika elemen tidak ada, buatlah.
  4. Buat elemen turunan dari elemen UserJourneys dengan menempelkan seluruh konten elemen UserJourney yang Anda salin di langkah 2.
  5. Ganti nama ID perjalanan pengguna. Contohnya, Id="CustomSignUpSignIn".

Dalam perjalanan pengguna, Anda dapat mewakili sub perjalanan Lupa Kata Sandi sebagai ClaimsProviderSelection. Dengan menambahkan elemen ini, Anda menyambungkan tautan Lupa kata sandi Anda? ke sub perjalanan Lupa Kata Sandi.

  1. Buka file TrustFrameworkExtensions.xml, seperti SocialAndLocalAccounts/TrustFrameworkExtensions.xml.

  2. Dalam perjalanan pengguna, temukan elemen langkah orkestrasi yang mencakup Type="CombinedSignInAndSignUp" atau Type="ClaimsProviderSelection". Ini biasanya langkah orkestrasi pertama. Elemen ClaimsProviderSelections berisi daftar penyedia identitas yang dapat digunakan pengguna untuk masuk. Tambahkan baris berikut:

    <ClaimsProviderSelection TargetClaimsExchangeId="ForgotPasswordExchange" />
    
  3. Pada langkah orkestrasi berikutnya, tambahkan elemen ClaimsExchange dengan menambahkan baris berikut:

    <ClaimsExchange Id="ForgotPasswordExchange" TechnicalProfileReferenceId="ForgotPassword" />
    
  4. Tambahkan langkah orkestrasi berikut antara langkah saat ini dan langkah berikutnya. Langkah orkestrasi baru yang Anda tambahkan, memeriksa apakah klaim isForgotPassword ada. Jika klaim ada, akan memanggil sub perjalanan reset kata sandi.

    <OrchestrationStep Order="3" Type="InvokeSubJourney">
      <Preconditions>
        <Precondition Type="ClaimsExist" ExecuteActionsIf="false">
          <Value>isForgotPassword</Value>
          <Action>SkipThisOrchestrationStep</Action>
        </Precondition>
      </Preconditions>
      <JourneyList>
        <Candidate SubJourneyReferenceId="PasswordReset" />
      </JourneyList>
    </OrchestrationStep>
    
  5. Setelah Anda menambahkan langkah-langkah orkestrasi baru, ulangi langkah-langkah secara berurutan tanpa melewati bilangan bulat dari 1 hingga N.

Mengatur perjalanan pengguna yang akan dieksekusi

Sekarang setelah Anda memodifikasi atau membuat perjalanan pengguna, di bagian Pihak Yang Mengandalkan, tentukan perjalanan yang akan dijalankan Azure AD B2C untuk kebijakan kustom ini.

  1. Buka file yang memiliki elemen Pihak Yang Mengandalkan, seperti SocialAndLocalAccounts/SignUpOrSignin.xml.

  2. Dalam elemen RelyingParty, temukan elemen DefaultUserJourney.

  3. Perbarui DefaultUserJourney ReferenceId agar sesuai dengan ID perjalanan pengguna di mana Anda menambahkan ClaimsProviderSelections.

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

Menunjukkan alur Lupa Kata Sandi ke Aplikasi Anda

Aplikasi Anda mungkin perlu mendeteksi apakah pengguna masuk dengan menggunakan alur pengguna Lupa Kata Sandi. Klaim isForgotPassword berisi nilai Boolean yang menunjukkan bahwa mereka melakukannya. Klaim dapat dikeluarkan di token yang dikirimkan ke aplikasi Anda. Jika perlu, tambahkan isForgotPassword ke klaim output di bagian Pihak Yang Mengandalkan. Aplikasi Anda dapat memeriksa klaim isForgotPassword untuk menentukan apakah pengguna mengatur ulang kata sandi mereka.

<RelyingParty>
  <OutputClaims>
    ...
    <OutputClaim ClaimTypeReferenceId="isForgotPassword" DefaultValue="false" />
  </OutputClaims>
</RelyingParty>

Mengunggah kebijakan kustom

  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 dari menu Direktori + langganan.
  3. Di portal Microsoft Azure, cari dan pilih AAD B2C.
  4. Di menu di bawah Kebijakan, pilih Identity Experience Framework (IEF).
  5. Pilih Unggah kebijakan kustom. Dalam urutan berikut, unggah file kebijakan yang Anda ubah:
    1. File dasar kebijakan Anda, misalnya TrustFrameworkBase.xml.
    2. Kebijakan ekstensi, misalnya, TrustFrameworkExtensions.xml.
    3. Kebijakan pihak yang mengandalkan, misalnya SignUpSignIn.xml.

Menguji alur reset kata sandi

  1. Pilih alur pengguna daftar atau masuk (Tipe yang direkomendasikan) yang ingin Anda uji.
  2. Pilih Jalankan alur pengguna.
  3. Untuk Aplikasi, pilih aplikasi web bernama webapp1 yang sebelumnya Anda daftarkan. URL Balasan harus menunjukkan https://jwt.ms.
  4. Pilih Jalankan alur pengguna.
  5. Dari halaman pendaftaran atau masuk, pilih Lupa kata sandi Anda?.
  6. Verifikasi alamat email akun yang sebelumnya Anda buat, lalu pilih Lanjutkan.
  7. Di dialog yang ditampilkan, ubah kata sandi untuk pengguna, lalu pilih Lanjutkan. Token dikembalikan ke https://jwt.ms dan browser menampilkannya.
  8. Periksa nilai klaim isForgotPassword token yang dikembalikan. Jika ada dan diatur ke true, pengguna telah mengatur ulang kata sandi.

Kebijakan reset kata sandi (warisan)

Jika pengalaman pengaturan ulang kata sandi mandiri tidak diaktifkan, mengeklik tautan ini tidak secara otomatis memicu alur pengguna pengaturan ulang kata sandi. Sebagai gantinya, kode kesalahan AADB2C90118 dikembalikan ke aplikasi Anda. Aplikasi Anda harus menangani kode kesalahan ini dengan menginisialisasi ulang pustaka autentikasi untuk mengautentikasi alur pengguna pengaturan ulang kata sandi Azure AD B2C.

Diagram berikut menggambarkan prosesnya:

  1. Di aplikasi, pengguna memilih Masuk. Aplikasi ini memulai permintaan otorisasi dan mengarahkan pengguna ke Azure AD B2C sehingga pengguna dapat menyelesaikan masuk. Permintaan otorisasi menentukan nama kebijakan pendaftaran atau masuk, seperti B2C_1_signup_signin.

  2. Pengguna memilih tautan Lupa kata sandi Anda?. Azure AD B2C mengembalikan kode kesalahan AADB2C90118 ke aplikasi.

  3. Aplikasi menangani kode kesalahan dan memulai permintaan otorisasi baru. Permintaan otorisasi menentukan nama kebijakan reset kata sandi, seperti B2C_1_pwd_reset.

    Diagram that shows the legacy password reset user flow.

Anda dapat melihat sampel ASP.NET dasar, yang menunjukkan bagaimana alur pengguna ditautkan.

Alur pengguna pengaturan ulang kata sandi

Untuk memungkinkan pengguna aplikasi mengatur ulang kata sandi mereka, buat alur pengguna pengaturan ulang kata sandi:

  1. Di portal Microsoft Azure, buka ringkasan penyewa Azure AD B2C Anda.
  2. Di menu sebelah kiri di bawah Kebijakan, pilih Alur pengguna, lalu pilih Alur pengguna baru.
  3. Pada halaman Buat alur pengguna, pilih alur pengguna Pengaturan ulang kata sandi.
  4. Di bawah Pilih versi, pilih Direkomendasikan, lalu pilih Buat.
  5. Untuk Nama, masukkan nama untuk alur pengguna. Misalnya, passwordreset1.
  6. Untuk Penyedia identitas, aktifkan Setel ulang kata sandi menggunakan nama pengguna atau Setel ulang kata sandi menggunakan alamat email.
  7. Di bawah Autentikasi multifaktor, jika Anda ingin mengharuskan pengguna memverifikasi identitas mereka dengan menggunakan metode autentikasi kedua, pilih jenis metode dan waktu untuk menerapkan autentikasi multifaktor (MFA). Pelajari lebih lanjut.
  8. Di bawah Akses bersyarat, jika Anda telah mengonfigurasi kebijakan akses bersyarat untuk penyewa Azure AD B2C dan Anda ingin menggunakannya untuk alur pengguna ini, pilih kotak centang Terapkan kebijakan akses bersyarat. Anda tidak perlu menentukan nama kebijakan. Pelajari lebih lanjut.
  9. Di bawah Klaim aplikasi, klik Tampilkan lainnya. Pilih klaim yang ingin Anda tampilkan dalam token otorisasi yang dikirim kembali ke aplikasi Anda. Misalnya, pilih ID Objek Pengguna.
  10. Pilih OK.
  11. Pilih Buat untuk menambahkan alur pengguna. Prefiks B2C_1 secara otomatis ditambahkan ke nama.

Menguji alur pengguna

Untuk menguji alur pengguna:

  1. Pilih alur pengguna yang Anda buat. Pada halaman gambaran umum alur pengguna, pilih Jalankan alur pengguna.
  2. Untuk Aplikasi, pilih aplikasi web yang ingin Anda uji, seperti yang bernama webapp1 jika Anda mendaftarkan itu sebelumnya. URL Balasan harus berupa https://jwt.ms.
  3. Pilih Jalankan alur pengguna, verifikasi alamat email akun yang ingin Anda reset kata sandinya, lalu pilih Lanjutkan.
  4. Ubah kata sandi dan pilih Lanjutkan. Token dikembalikan ke https://jwt.ms dan browser menampilkannya.

Membuat kebijakan reset kata sandi

Kebijakan kustom adalah set file XML yang Anda unggah ke penyewa Azure AD B2C untuk menentukan perjalanan pengguna. Kami menyediakan paket pemula yang memiliki beberapa kebijakan bawaan, termasuk pendaftaran dan masuk, pengaturan ulang kata sandi, dan kebijakan pengeditan profil. Untuk informasi selengkapnya, lihat Mulai menggunakan kebijakan kustom di Azure Active Directory B2C.

Memecahkan masalah alur pengguna Azure AD B2C dan kebijakan kustom

Aplikasi Anda perlu menangani kesalahan tertentu yang berasal dari layanan Azure B2C. Pelajari cara memecahkan masalah kebijakan kustom dan alur pengguna Azure AD B2C.

Langkah berikutnya

Siapkan reset kata sandi paksa.

Daftar dan Masuk dengan pengaturan ulang kata sandi yang disematkan.