Mengonfigurasi Keamanan Transmisi dengan Azure Active Directory B2C untuk autentikasi tanpa kata sandi

Sebelum Anda 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 tutorial sampel ini, pelajari cara mengintegrasikan autentikasi Azure Active Directory B2C (Azure AD B2C) dengan solusi autentikasi tanpa kata sandi Keamanan TransmisiBindID. BindID adalah layanan otentikasi tanpa kata sandi yang menggunakan autentikasi biometrik Fast Identity Online (FIDO2) yang kuat untuk pengalaman autentikasi multisaluran yang andal. Solusi ini memastikan pengalaman masuk yang lancar untuk semua pelanggan di setiap perangkat dan saluran, dan menghilangkan penipuan, phishing, dan penggunaan kembali info masuk.

Deskripsi skenario

Diagram arsitektur berikut menunjukkan pelaksanaannya.

Screenshot showing the bindid and Azure AD B2C architecture diagram

Langkah Deskripsi
1. Pengguna membuka halaman masuk Azure AD B2C, lalu masuk atau mendaftar dengan memasukkan nama pengguna mereka.
2. Azure AD B2C mengalihkan pengguna ke BindID menggunakan permintaan OpenID Koneksi (OIDC).
3. BindID mengautentikasi pengguna menggunakan biometrik FIDO2 tanpa aplikasi, seperti sidik jari.
4. Respons autentikasi terdesentralisasi dikembalikan ke BindID.
5. Respons OIDC diteruskan ke Azure AD B2C.
6. Pengguna diberikan atau ditolak akses ke aplikasi pelanggan berdasarkan hasil verifikasi.

Prasyarat

Untuk memulai, Anda akan memerlukan:

  • Langganan Microsoft Azure Active Directory. Jika Anda tidak memiliki langganan, Anda bisa mendapatkan sebuah akun gratis.

  • Penyewa AAD B2C yang ditautkan ke langganan Azure Anda.

  • Penyewa BindID. Anda dapat mendaftar secara gratis.

  • Jika Anda belum melakukannya, daftarkan aplikasi web di portal Azure.

Langkah 1: Mendaftarkan aplikasi di BindID

Ikuti langkah-langkah di Mengonfigurasi Aplikasi Anda untuk menambahkan aplikasi di Portal Admin BindID. Informasi berikut diperlukan:

Properti Deskripsi
Nama Nama aplikasi Anda, seperti Azure AD B2C BindID app
Domain Masukkan your-B2C-tenant-name.onmicrosoft.com. Ganti your-B2C-tenant dengan nama penyewa AAD B2C Anda.
URI Pengalihan https://jwt.ms/
URL pengalihan Masukkan https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Ganti your-B2C-tenant dengan nama penyewa AAD B2C Anda. Jika Anda menggunakan domain kustom, ganti your-B2C-tenant-name.b2clogin.comdengan domain kustom, seperti contoso.com.

Setelah mendaftarkan aplikasi di BindID, Anda akan mendapatkan ID Klien dan Rahasia Klien. Rekam nilai yang Anda perlukan nanti untuk mengonfigurasi BindID sebagai IdP di Azure AD B2C.

Langkah 2: Mengonfigurasi BindID sebagai IdP di Azure AD B2C

  1. Masuk ke portal Microsoft Azure sebagai administrator global penyewa Azure AD B2C Anda.

  2. Pastikan Anda menggunakan direktori yang berisi penyewa Azure AD B2C Anda:

    1. Pilih ikon Direktori + langganan di bilah alat portal.

    2. Pada Setelan portal | Direktori + langganan, temukan direktori Azure AD B2C Anda di daftar Nama direktori, lalu pilih Beralih.

  3. Di sudut kiri atas portal Azure, pilih Semua layanan, lalu cari dan pilih Azure AD B2C.

  4. Pilih Penyedia identitas, lalu pilih Penyedia OpenID Connect baru.

  5. Masukkan Nama. Misalnya, masukkan Login with BindID.

  6. Untuk Url Metadata, masukkan https://signin.bindid-sandbox.io/.well-known/openid-configuration.

  7. Untuk ID Klien, masukkan ID aplikasi yang sebelumnya Anda rekam di langkah 1.

  8. Untuk Rahasia klien, masukkan rahasia klien yang sebelumnya Anda rekam di langkah 1.

  9. Untuk Cakupan, masukkan openid email.

  10. Untuk Jenis respons, pilih kode.

  11. Untuk Mode respons, pilih form_post.

  12. Di Pemetaan klaim IdP, pilih klaim berikut:

    1. ID Pengguna: sub
    2. Email: email
  13. Pilih Simpan.

Langkah 3 : Membuat alur pengguna

  1. Di penyewa AAD B2C Anda, di bawah Kebijakan, pilih Alur pengguna.

  2. Pilih Alur pengguna baru.

  3. Pilih jenis alur pengguna Mendaftar dan masuk, lalu pilih Buat.

  4. Masukkan Nama untuk alur pengguna Anda, seperti signupsignin.

  5. Di IdP:

    1. Untuk Akun Lokal, pilih Tidak Ada untuk menonaktifkan autentikasi berbasis email dan kata sandi.

    2. Untuk IdP kustom, pilihIdP BindID yang baru dibuat seperti Masuk dengan BindID.

  6. Pilih Buat

Langkah 4: Menguji alur pengguna Anda

  1. Di penyewa AAD B2C Anda, pilih Alur pengguna.

  2. Pilih alur pengguna yang baru dibuat seperti B2C_1_signupsignin.

  3. Untuk Aplikasi, pilih aplikasi web yang sebelumnya Anda daftarkan sebagai bagian dari prasyarat artikel ini. URL Balasan harus menampilkan https://jwt.ms.

  4. Pilih tombol Jalankan alur pengguna. Browser Anda akan diarahkan ke halaman masuk BindID.

  5. Masukkan email akun terdaftar dan autentikasi menggunakan biometrik FIDO2 tanpa aplikasi, seperti sidik jari. Setelah tantangan autentikasi diterima, browser Anda harus dialihkan ke https://jwt.ms yang menampilkan konten token yang dimunculkan oleh Azure AD B2C.

Langkah 2: Membuat kunci kebijakan BindID

Tambahkan Rahasia klien aplikasi BindID Anda sebagai kunci kebijakan:

  1. Masuk ke portal Microsoft Azure.

  2. Pastikan Anda menggunakan direktori yang berisi penyewa Azure AD B2C Anda:

    1. Pilih ikon Direktori + langganan di bilah alat portal.

    2. Pada Setelan portal | Direktori + langganan, temukan direktori Azure AD B2C Anda di daftar Nama direktori, lalu pilih Beralih.

  3. Pada halaman Gambaran umum, di Kebijakan, pilih IEF.

  4. Pilih Kunci Kebijakan lalu pilih Tambahkan.

  5. Untuk Opsi, pilih Manual.

  6. Masukkan Nama untuk kunci kebijakan. Contohnya:BindIDClientSecret Awalan B2C_1A_ ditambahkan secara otomatis ke nama kunci Anda.

  7. Di Rahasia, masukkan rahasia klien Anda yang sebelumnya Anda rekam di langkah 1.

  8. Untuk Penggunaan kunci, pilih Signature.

  9. Pilih Buat.

Langkah 3: Mengonfigurasi BindID sebagai IdP

Untuk memungkinkan pengguna masuk menggunakan BindID, Anda perlu mendefinisikan BindID sebagai penyedia klaim yang dapat berkomunikasi dengan Azure AD B2C melalui titik akhir. Titik akhir menyediakan serangkaian klaim yang digunakan oleh Azure AD B2C untuk memverifikasi bahwa pengguna tertentu telah mengautentikasi menggunakan identitas digital yang tersedia di perangkat mereka, yang membuktikan identitas pengguna.

Gunakan langkah-langkah berikut untuk menambahkan BindID sebagai penyedia klaim:

  1. Dapatkan paket awal kebijakan kustom dari GitHub, lalu perbarui file XML di paket awal SocialAndLocalAccountsWithMFA dengan nama penyewa AAD B2C Anda:

    1. Unduh file .zip atau kloning repositori:

          git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
      
    2. Di semua file pada direktori LocalAccounts, ganti untai (karakter) yourtenant dengan nama penyewa Azure AD B2C Anda. Misalnya, jika nama penyewa B2C Anda adalah contoso, semua instans yourtenant.onmicrosoft.com menjadi contoso.onmicrosoft.com.

  2. Buka LocalAccounts/ TrustFrameworkExtensions.xml.

  3. Temukan elemen ClaimsProviders. Jika tidak ada, tambahkan di bawah elemen akar.

  4. Tambahkan ClaimsProvider baru yang mirip dengan yang ditunjukkan di bawah ini:

     <ClaimsProvider>
         <Domain>signin.bindid-sandbox.io</Domain>
         <DisplayName>BindID</DisplayName>
         <TechnicalProfiles>
           <TechnicalProfile Id="BindID-OpenIdConnect">
             <DisplayName>BindID</DisplayName>
             <Protocol Name="OpenIdConnect" />
             <Metadata>
               <Item Key="METADATA">https://signin.bindid-sandbox.io/.well-known/openid-configuration</Item>
                <!-- Update the Client ID below to the BindID Application ID -->
               <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
               <Item Key="response_types">code</Item>
               <Item Key="scope">openid email</Item>
               <Item Key="response_mode">form_post</Item>
               <Item Key="HttpBinding">POST</Item>
               <Item Key="UsePolicyInRedirectUri">false</Item>
               <Item Key="AccessTokenResponseFormat">json</Item>
             </Metadata>
             <CryptographicKeys>
               <Key Id="client_secret" StorageReferenceId="B2C_1A_BindIDClientSecret" />
             </CryptographicKeys>
             <OutputClaims>
               <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
               <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
               <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
               <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
             </OutputClaims>
             <OutputClaimsTransformations>
               <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
               <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
               <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
             </OutputClaimsTransformations>
             <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
           </TechnicalProfile>
         </TechnicalProfiles>
       </ClaimsProvider>    
    
  5. Atur client_id dengan ID Aplikasi BindID yang sebelumnya Anda rekam di langkah 1.

  6. Simpan perubahan.

Langkah 4: Menambahkan perjalanan

Pada titik ini, Anda telah menyiapkan IdP, tetapi belum tersedia di halaman masuk mana pun. Jika Anda memiliki perjalanan kustom Anda sendiri, lanjutkan ke langkah 5, jika tidak, buat duplikat perjalanan templat yang ada sebagai berikut:

  1. Buka file LocalAccounts/ TrustFrameworkBase.xml dari paket pemula.

  2. Temukan dan salin seluruh konten elemen UserJourney yang menyertakan Id=SignUpOrSignIn.

  3. Buka LocalAccounts/ TrustFrameworkExtensions.xml dan cari elemen UserJourneys. Jika elemen tersebut tidak ada, tambahkan.

  4. Tempelkan seluruh konten elemen UserJourney yang Anda salin sebagai anak dari elemen UserJourneys.

  5. Ganti nama Id perjalanan. Misalnya, Id=CustomSignUpSignIn

Langkah 5: Menambahkan IdP ke perjalanan

Sekarang setelah Anda memiliki perjalanan pengguna, tambahkan penyedia identitas baru ke perjalanan pengguna.

  1. Dalam perjalanan pengguna, temukan elemen langkah orkestrasi yang mencakup Type=CombinedSignInAndSignUp atau Type=ClaimsProviderSelection. Ini biasanya merupakan langkah orkestrasi pertama. Elemen ClaimsProviderSelections berisi daftar penyedia identitas yang dapat digunakan pengguna untuk masuk. Urutan elemen mengontrol urutan tombol masuk yang ditampilkan kepada pengguna. Tambahkan elemen XML ClaimsProviderSelection. Tetapkan nilai TargetClaimsExchangeId ke nama yang bersahabat, seperti BindIDExchange.

  2. Pada langkah orkestrasi berikutnya, tambahkan elemen ClaimsExchange. Atur Id ke nilai ID pertukaran klaim target untuk menautkan tombol BindID ke BindID-SignIn tindakan. Perbarui nilai TechnicalProfileReferenceId menjadi ID profil teknis yang Anda buat sebelumnya saat menambahkan penyedia klaim.

XML berikut menunjukkan langkah-langkah orkestrasi perjalanan pengguna dengan penyedia identitas:

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        ...
        <ClaimsProviderSelection TargetClaimsExchangeId="BindIDExchange" />
      </ClaimsProviderSelections>
      ...
    </OrchestrationStep>

    <OrchestrationStep Order="2" Type="ClaimsExchange">
      ...
      <ClaimsExchanges>
        <ClaimsExchange Id="BindIDExchange" TechnicalProfileReferenceId="BindID-OpenIdConnect" />
      </ClaimsExchanges>
    </OrchestrationStep>

Langkah 6: Mengonfigurasi kebijakan pihak yang mengandalkan

Kebijakan pihak yang mengandalkan, misalnya SignUpSignIn.xml, menentukan perjalanan yang akan dijalankan Azure AD B2C. Anda juga dapat mengontrol klaim apa yang diteruskan ke aplikasi Anda dengan menyesuaikan elemen OutputClaims dari elemen PolicyProfile TechnicalProfile. Dalam sampel ini, aplikasi akan menerima atribut pengguna seperti nama tampilan, nama depan, nama keluarga, email, objectId, IdP, dan tenantId.

  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignInWithBindID" />
    <TechnicalProfile Id="BindID-OpenIdConnect">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>

Langkah 7: Mengunggah kebijakan kustom

  1. Masuk ke portal Microsoft Azure.

  2. Pastikan Anda menggunakan direktori yang berisi penyewa Azure AD B2C Anda:

    1. Pilih ikon Direktori + langganan di bilah alat portal.

    2. Pada Setelan portal | Direktori + langganan, temukan direktori Azure AD B2C Anda di daftar Nama direktori, lalu pilih Beralih.

  3. Di portal Microsoft Azure, cari dan pilih Azure AD B2C.

  4. Di bawah Kebijakan, pilih IEF.

  5. Pilih Unggah Kebijakan Kustom, lalu unggah file di paket awal LocalAccounts dalam urutan berikut: kebijakan dasar, misalnyaTrustFrameworkBase.xml, kebijakan pelokalan, misalnyaTrustFrameworkLocalization.xml, kebijakan ekstensi, misalnya TrustFrameworkExtensions.xml, dan kebijakan pihak yang mengandalkan, seperti SignUpOrSignIn.xml.

Langkah 8: Menguji kebijakan kustom Anda

  1. Di bilah penyewa Azure AD B2C Anda, dan di Kebijakan, pilih IEF.

  2. Di bawah Kebijakan kustom, pilih B2C_1A_signup_signin.

  3. Untuk Aplikasi, pilih aplikasi web yang sebelumnya Anda daftarkan sebagai bagian dari prasyarat artikel ini. URL Balasan harus menampilkan https://jwt.ms.

  4. Pilih Jalankan sekarang. Browser Anda akan diarahkan ke halaman masuk BindID.

  5. Masukkan email akun terdaftar dan autentikasi menggunakan biometrik FIDO2 tanpa aplikasi, seperti sidik jari. Setelah tantangan autentikasi diterima, browser Anda harus dialihkan ke https://jwt.ms yang menampilkan konten token yang dimunculkan oleh Azure AD B2C.

Langkah berikutnya

Untuk informasi tambahan, ulas artikel berikut ini: