Menyiapkan pendaftaran dan masuk dengan ID Apple menggunakan Microsoft Azure AD 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.

Catatan

Di Azure Active Directory B2C, kebijakan kustom didesain khusus untuk menangani skenario kompleks. Untuk skenario umum, sebaiknya gunakan alur pengguna bawaan. Jika Anda belum melakukannya, pelajari tentang paket starter kebijakan kustom di Mulai dengan kebijakan kustom di Azure Active Directory B2C.

Prasyarat

Membuat aplikasi ID Apple

Untuk mengaktifkan masuk untuk pengguna dengan ID Apple di Azure Active Directory B2C (Azure AD B2C), Anda perlu membuat aplikasi di https://developer.apple.com. Untuk informasi selengkapnya, lihat Masuk dengan Apple. Jika Anda belum memiliki akun developer Apple, Anda dapat mendaftar di Program Pengembang Apple.

  1. Masuk ke Portal Pengembang Apple dengan kredensial akun Anda.
  2. Dari menu, pilih Sertifikat, ID, Profil &, lalu pilih (+).
  3. Untuk Mendaftarkan Pengidentifikasi Baru, pilih ID Aplikasi, lalu pilih Lanjutkan.
  4. Untuk Pilih tipe, pilih Aplikasi, lalu pilih Lanjutkan.
  5. Untuk Mendaftarkan ID Aplikasi:
    1. Masukkan Deskripsi
    2. Masukkan ID Bundel, seperti com.contoso.azure-ad-b2c.
    3. Untuk Kemampuan, pilih Masuk dengan Apple dari daftar kapabilitas.
    4. Catat ID Tim (Awalan ID Aplikasi) Anda dari langkah ini. Anda akan membutuhkannya nanti.
    5. Pilih Lanjutkan lalu Daftar.
  6. Dari menu, pilih Sertifikat, ID, Profil &, lalu pilih (+).
  7. Untuk Mendaftarkan Pengidentifikasi Baru, pilih ID Layanan, lalu pilih Lanjutkan.
  8. Untuk Mendaftarkan ID Layanan:
    1. Masukkan Deskripsi. Deskripsi ditunjukkan kepada pengguna di layar persetujuan.
    2. Masukkan Pengidentifikasi, seperti com.consoto.azure-ad-b2c-service. Catat pengidentifikasi ID Layanan Anda. Pengidentifikasi adalah ID Klien Anda untuk alur OpenID Connect.
    3. Pilih Lanjutkan, lalu pilih Daftar.
  9. Dari Pengidentifikasi, pilih pengidentifikasi yang Anda buat.
  10. Pilih Masuk dengan Apple, lalu pilih Konfigurasikan.
    1. Pilih ID App Utama yang ingin Anda konfigurasikan Masuk dengan Apple.
    2. Di Domain dan Subdomain, masukkan your-tenant-name.b2clogin.com. Ganti nama-penyewa-Anda dengan nama penyewa Anda. Jika Anda menggunakan domain kustom, masukkan https://your-domain-name.
    3. Dalam URL Pengembalian, masukkan https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp. Jika Anda menggunakan domain kustom, masukkan https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Ganti your-tenant-name dengan nama penyewa Anda, dan your-domain-name dengan domain kustom Anda. URL Pengembalian harus dalam huruf kecil semua.
    4. Pilih Berikutnya, lalu pilih Selesai.
    5. Saat jendela pop-up ditutup, pilih Lanjutkan, lalu pilih Simpan.

Membuat rahasia klien Apple

  1. Dari menu portal Pengembang Apple, pilih Tombol, lalu pilih (+) .
  2. Untuk Mendaftarkan Kunci Baru:
    1. Ketik Nama Kunci.
    2. Pilih Masuk dengan Apple, lalu pilih Konfigurasikan.
    3. Untuk ID Aplikasi Utama, pilih aplikasi yang Anda buat sebelumnya, dan pilih Simpan.
    4. Pilih Konfigurasikan, lalu pilih Daftar untuk menyelesaikan proses pendaftaran kunci. Catat ID Kunci. Kunci ini diperlukan saat Anda mengonfigurasi alur pengguna.
  3. Untuk Mengunduh Kunci Anda, pilih Unduh untuk mengunduh file .p8 yang berisi kunci Anda.

Mengonfigurasi Apple sebagai IdP

  1. Masuk ke portal Microsoft Azure sebagai administrator global penyewa Azure AD B2C Anda.
  2. Pastikan Anda menggunakan direktori yang berisi penyewa AAD B2C Anda. Pilih ikon Direktori + langganan di bilah alat portal.
  3. Pada Setelan portal | Direktori + langganan, temukan direktori Azure AD B2C Anda di daftar Nama direktori, lalu pilih Beralih.
  4. Di bawah Layanan Azure, pilih Azure AD B2C. Atau gunakan kotak pencarian untuk menemukan dan memilih Azure AD B2C.
  5. Pilih penyedia identitas, lalu pilih Apple.
  6. Untuk Nama, masukkan Masuk dengan Apple.
  7. Masukkan ID pengembang Apple (ID TIM) .
  8. Masukkan ID layanan Apple (ID Klien) .
  9. Masukkan ID kunci Apple dari langkah Membuat rahasia klien Apple.
  10. Pilih dan unggah data sertifikat Apple.
  11. Pilih Simpan.

Penting

  • Masuk dengan Apple mengharuskan Admin untuk memperbarui rahasia klien mereka setiap 6 bulan.
  • Rahasia klien Apple akan diperpanjang secara otomatis ketika kedaluwarsa. Jika Anda perlu memperbarui rahasia secara manual, buka Azure Active Directory B2C di portal Microsoft Azure, buka penyedia identitas>Apple, dan pilih Perpanjang rahasia.
  • Ikuti panduan cara menawarkan tombol Masuk dengan Apple.

Menambahkan IdP Apple ke alur pengguna

Untuk memungkinkan pengguna masuk menggunakan ID Apple, Anda perlu menambahkan IdP Apple ke alur pengguna. Masuk dengan Apple hanya dapat dikonfigurasi untuk versi alur pengguna yang direkomendasikan. Untuk menambahkan IdP Apple ke alur pengguna:

  1. Di penyewa Azure AD B2C Anda, pilih Alur pengguna.
  2. Pilih alur pengguna yang ingin Anda tambahkan IdP Apple.
  3. Di bagian Penyedia identitas sosial, pilih Apple.
  4. Pilih Simpan.
  5. Untuk menguji kebijakan Anda, pilih Jalankan alur pengguna.
  6. Untuk Aplikasi, pilih aplikasi web bernama testapp1 yang Anda daftarkan sebelumnya. URL Balasan harus menampilkan https://jwt.ms.
  7. Klik tombol Jalankan alur pengguna.
  8. Dari halaman pendaftaran atau masuk, pilih Apple untuk masuk dengan ID Apple.

Jika proses masuk berhasil, browser Anda dialihkan ke https://jwt.ms, yang menampilkan konten token yang dihasilkan oleh Azure AD B2C.

Menandatangani rahasia klien

Gunakan file .p8 yang Anda unduh sebelumnya untuk menandatangani rahasia klien ke token JWT. Ada banyak perpustakaan yang dapat membuat dan menandatangani JWT untuk Anda. Gunakan Azure Function yang membuat token untuk Anda.

  1. Membuat Azure Function.

  2. Di bawah Pengembang, pilih Kode + Uji.

  3. Salin konten file run.csx, dan tempelkan di editor.

  4. Pilih Simpan.

  5. Buat permintaan POST HTTP, dan berikan informasi berikut:

    • appleTeamId: ID Tim Pengembang Apple Anda
    • appleServiceId: ID Layanan Apple (ID klien)
    • appleKeyId: 10 digit ID Kunci yang disimpan di Header JWT (diperlukan oleh Apple)
    • p8key: Kunci format PEM. Anda dapat memperoleh ini dengan membuka file .p8 di editor teks dan menyalin semuanya antara -----BEGIN PRIVATE KEY----- dan -----END PRIVATE KEY----- tanpa pembatas baris.

Json berikut adalah contoh panggilan ke fungsi Azure:

{
    "appleTeamId": "ABC123DEFG",
    "appleServiceId": "com.yourcompany.app1",
    "appleKeyId": "URKEYID001",
    "p8key": "MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQg+s07NiAcuGEu8rxsJBG7ttupF6FRe3bXdHxEipuyK82gCgYIKoZIzj0DAQehRANCAAQnR1W/KbbaihTQayXH3tuAXA8Aei7u7Ij5OdRy6clOgBeRBPy1miObKYVx3ki1msjjG2uGqRbrc1LvjLHINWRD"
}

Fungsi Azure merespons dengan JWT rahasia klien yang diformat dan ditandatangani dengan benar dalam respons, misalnya:

{
    "token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjb20ueW91cmNvbXBhbnkuYXBwMSIsIm5iZiI6MTU2MDI2OTY3NSwiZXhwIjoxNTYwMzU2MDc1LCJpc3MiOiJBQkMxMjNERUZHIiwiYXVkIjoiaHR0cHM6Ly9hcHBsZWlkLmFwcGxlLmNvbSJ9.Dt9qA9NmJ_mk6tOqbsuTmfBrQLFqc9BnSVKR6A-bf9TcTft2XmhWaVODr7Q9w1PP3QOYShFXAnNql5OdNebB4g"
}

Buat kunci kebijakan

Anda perlu menyimpan rahasia klien yang sebelumnya Anda rekam di penyewa Azure AD B2C Anda.

  1. Masuk ke portal Azure.
  2. Pastikan Anda menggunakan direktori yang berisi penyewa AAD B2C Anda. Pilih ikon Direktori + langganan di bilah alat portal.
  3. Pada Setelan portal | Direktori + langganan, temukan direktori Azure AD B2C Anda di daftar Nama direktori, lalu pilih Beralih.
  4. Di bawah Layanan Azure, pilih Azure AD B2C. Atau gunakan kotak pencarian untuk menemukan dan memilih Azure AD B2C.
  5. Pada halaman Gambaran Umum, pilih Kerangka Kerja Pengalaman Identitas.
  6. Pilih Kunci Kebijakan, lalu pilih Tambahkan.
  7. Untuk Opsi, pilih Manual.
  8. Masukkan Nama untuk kunci kebijakan. Misalnya, "AppleSecret". Awalan "B2C_1A_" ditambahkan secara otomatis ke nama kunci Anda.
  9. Di Rahasia, masukkan nilai token yang dikembalikan oleh Azure Function (token JWT).
  10. Untuk Penggunaan kunci, pilih Tanda Tangan.
  11. Pilih Buat.

Penting

  • Masuk dengan Apple mengharuskan Admin untuk memperbarui rahasia klien mereka setiap 6 bulan.
  • Anda harus memperbarui rahasia klien Apple secara manual jika kedaluwarsa dan menyimpan nilai baru di kunci kebijakan.
  • Kami sarankan Anda mengatur pengingat Anda sendiri dalam waktu 6 bulan untuk menghasilkan rahasia klien baru.
  • Ikuti panduan cara menawarkan tombol Masuk dengan Apple.

Mengonfigurasi Apple sebagai IdP

Untuk memungkinkan pengguna masuk menggunakan ID Apple, Anda perlu menentukan akun sebagai penyedia klaim yang dapat dikomunikasikan dengan Azure AD B2C melalui titik akhir. Titik akhir menyediakan serangkaian klaim yang digunakan oleh Azure AD B2C untuk memverifikasi bahwa pengguna tertentu sudah diautentikasi.

Anda dapat menentukan ID Apple sebagai penyedia klaim dengan menambahkannya ke elemen ClaimsProviders dalam file ekstensi kebijakan Anda.

  1. Buka TrustFrameworkExtensions.xml.

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

  3. Tambahkan ClaimsProvider baru sebagai berikut:

    <ClaimsProvider>
      <Domain>apple.com</Domain>
      <DisplayName>Apple</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Apple-OIDC">
          <DisplayName>Sign in with Apple</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="ProviderName">apple</Item>
            <Item Key="authorization_endpoint">https://appleid.apple.com/auth/authorize</Item>
            <Item Key="AccessTokenEndpoint">https://appleid.apple.com/auth/token</Item>
            <Item Key="JWKS">https://appleid.apple.com/auth/keys</Item>
            <Item Key="issuer">https://appleid.apple.com</Item>
            <Item Key="scope">name email openid</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="response_types">code</Item>
            <Item Key="external_user_identity_claim_id">sub</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="ReadBodyClaimsOnIdpRedirect">user.name.firstName user.name.lastName user.email</Item>
            <Item Key="client_id">You Apple ID</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AppleSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="https://appleid.apple.com" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="user.name.firstName"/>
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="user.name.lastName"/>
            <OutputClaim ClaimTypeReferenceId="email" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Atur client_id ke pengidentifikasi layanan. Contohnya:com.consoto.azure-ad-b2c-service

  5. Simpan file.

Menambahkan perjalanan pengguna

Pada tahap ini, penyedia identitas telah disiapkan, tetapi belum tersedia di halaman masuk mana pun. Jika Anda tidak memiliki perjalanan pengguna kustom Anda sendiri, buat duplikat perjalanan pengguna template yang sudah ada, jika tidak lanjutkan ke langkah berikutnya.

  1. Buka file TrustFrameworkBase.xml dari paket pemula.
  2. Temukan dan salin seluruh konten elemen UserJourney yang menyertakan Id="SignUpOrSignIn".
  3. Buka TrustFrameworkExtensions.xml dan temukan 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 pengguna. Contohnya,Id="CustomSignUpSignIn".

Tambahkan penyedia identitas ke perjalanan pengguna

Sekarang setelah Anda memiliki perjalanan pengguna, tambahkan penyedia identitas baru ke perjalanan pengguna. Anda terlebih dahulu menambahkan tombol masuk, lalu tautkan tombol tersebut ke tindakan. Tindakan ini adalah profil teknis yang Anda buat sebelumnya.

  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 disajikan kepada pengguna. Tambahkan elemen XML ClaimsProviderSelection. Tetapkan nilai TargetClaimsExchangeId ke nama yang bersahabat.

  2. Pada langkah orkestrasi berikutnya, tambahkan elemen ClaimsExchange. Set Id ke nilai pertukaran klaim target Id. Perbarui nilai TechnicalProfileReferenceId ke Id profil teknis yang Anda buat sebelumnya.

XML berikut menunjukkan dua langkah orkestrasi pertama dari perjalanan pengguna dengan penyedia identitas:

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

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AppleExchange" TechnicalProfileReferenceId="Apple-OIDC" />
  </ClaimsExchanges>
</OrchestrationStep>

Mengonfigurasi kebijakan pihak yang diandalkan

Kebijakan pihak yang diandalkan, misalnya SignUpSignIn.xml, menentukan perjalanan yang akan dijalankan Azure AD B2C. Temukan elemen DefaultUserJourney dalam pihak yang diandalkan. Perbarui ReferenceId agar sesuai dengan ID perjalanan, tempat Anda menambahkan IdP.

Dalam contoh berikut, untuk perjalanan CustomSignUpSignIn, ReferenceId diatur ke CustomSignUpSignIn:

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

Mengunggah kebijakan kustom

  1. Masuk ke portal Azure.
  2. Pilih ikon Direktori + Langganan di toolbar portal, lalu pilih direktori yang berisi penyewa Azure AD B2C Anda.
  3. Di portal Microsoft Azure, cari dan pilih Azure AD B2C.
  4. Di Kebijakan, pilih IEF.
  5. Pilih Unggah Kebijakan Kustom, lalu unggah dua file kebijakan yang Anda ubah, dalam urutan berikut: kebijakan ekstensi, misalnya TrustFrameworkExtensions.xml, lalu kebijakan pihak yang diandalkan, seperti SignUpSignIn.xml.

Menguji kebijakan kustom Anda

  1. Pilih kebijakan pihak yang mengandalkan Anda, misalnya B2C_1A_signup_signin.
  2. Untuk Aplikasi, pilih aplikasi web yang Anda daftarkan sebelumnya. URL Balasan harus menampilkan https://jwt.ms.
  3. Pilih tombol Jalankan sekarang.
  4. Dari halaman pendaftaran atau masuk, pilih Apple untuk masuk dengan ID Apple.

Jika proses masuk berhasil, browser Anda dialihkan ke https://jwt.ms, yang menampilkan konten token yang dihasilkan oleh Azure AD B2C.

Menyesuaikan antarmuka pengguna Anda

Ikuti panduan cara menawarkan Masuk dengan Apple. Apple menyediakan beberapa tombol Masuk dengan Apple yang dapat Anda gunakan untuk memungkinkan orang menyiapkan akun dan masuk. Jika perlu, buat tombol kustom untuk menawarkan Masuk dengan Apple. Pelajari cara menampilkan tombol Masuk dengan Apple.

Untuk menyelaraskan dengan pedoman antarmuka pengguna Apple: