

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menyiapkan Masuk dengan Apple sebagai kumpulan identitas iDP
<a name="apple"></a>

Kumpulan identitas Amazon Cognito berfungsi dengan Masuk dengan Apple untuk memberikan otentikasi gabungan bagi pengguna aplikasi seluler dan aplikasi web Anda. Bagian ini menjelaskan cara mendaftar dan menyiapkan aplikasi Anda menggunakan Masuk dengan Apple sebagai penyedia identitas (iDP).

Untuk menambahkan Masuk dengan Apple sebagai penyedia otentikasi ke kumpulan identitas, Anda harus menyelesaikan dua prosedur. Pertama, integrasikan Masuk dengan Apple dalam aplikasi, lalu konfigurasikan Masuk dengan Apple di kumpulan identitas. Untuk mengetahui up-to-date informasi terbanyak tentang pengaturan Masuk dengan Apple, lihat [Mengonfigurasi Lingkungan Anda untuk Masuk dengan Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) di dokumentasi Pengembang Apple.

## Mengatur Masuk dengan Apple
<a name="login-with-apple-setup"></a>

Untuk mengonfigurasi Masuk dengan Apple sebagai IDP, daftarkan aplikasi Anda dengan Apple untuk menerima ID klien.

1. Buat sebuah [akun developer dengan Apple](https://developer.apple.com/programs/enroll/).

1. [Masuk](https://developer.apple.com/account/#/welcome) dengan kredensial Apple Anda.

1. Di panel navigasi kiri, pilih **Sertifikat, IDs & Profil**.

1. Di panel navigasi sebelah kiri, pilih **Pengidentifikasi**.

1. Pada halaman **Pengidentifikasi**, pilih ikon **\$1**.

1. Pada halaman **Daftarkan Pengenal Baru**, pilih **Aplikasi IDs**, lalu pilih **Lanjutkan**.

1. Pada halaman **Daftarkan ID Aplikasi**, lakukan hal berikut:

   1. Di bawah **Deskripsi**, ketikkan deskripsi.

   1. Di bawah **ID Paket,** ketikkan pengidentifikasi. Catat **ID Bundel** ini karena Anda memerlukan nilai ini untuk mengonfigurasi Apple sebagai penyedia di kumpulan identitas. 

   1. Pada **Kemampuan**, pilih **Masuk dengan Apple**, lalu pilih **Edit**.

   1. Pada halaman **Masuk dengan Apple: Konfigurasi ID Aplikasi**, pilih setelan yang sesuai untuk aplikasi Anda. Lalu, pilih **Simpan**.

   1. Pilih **Lanjutkan**.

1. Pada halaman **Konfirmasi ID Aplikasi Anda**, pilih **Daftarkan**.

1. Lanjutkan ke langkah 10 jika Anda ingin mengintegrasikan Masuk dengan Apple dengan aplikasi iOS native. Langkah 11 adalah untuk aplikasi yang ingin Anda integrasikan dengan JS Masuk dengan Apple.

1. Pada halaman **Pengidentifikasi**, pilih IDs menu **Aplikasi**, lalu **Layanan IDs**. Pilih ikon **\$1**.

1. Pada halaman **Daftarkan Pengenal Baru**, pilih **Layanan IDs**, lalu pilih **Lanjutkan**.

1. Pada halaman **Daftarkan ID Layanan**, lakukan hal berikut:

   1. Di bawah **Deskripsi**, ketikkan deskripsi.

   1. Di bawah **Pengidentifikasi**, ketikkan pengidentifikasi. Catat ID layanan karena Anda memerlukan nilai ini untuk mengonfigurasi Apple sebagai penyedia di kumpulan identitas Anda. 

   1. Pilih **Masuk dengan Apple**, lalu pilih **Konfigurasi**.

   1. Pada halaman **Konfigurasi Autentikasi Web**, pilih **ID Aplikasi Utama**. Di bawah **Situs Web URLs**, pilih ikon **\$1**. Untuk **Domain dan Subdomain**, masukkan nama domain aplikasi Anda. Di **Return URLs,** masukkan URL panggilan balik tempat otorisasi mengalihkan pengguna setelah mereka mengautentikasi melalui Masuk dengan Apple. 

   1. Pilih **Berikutnya**.

   1. Pilih **Lanjutkan**, lalu pilih **Daftarkan**.

1. Di panel navigasi sebelah kiri, pilih **Kunci**.

1. Pada halaman **Kunci**, pilih ikon **\$1**.

1. Pada halaman **Daftarkan Kunci Baru**, lakukan hal berikut:

   1. Di bawah **Nama Kunci**, ketikkan nama kunci. 

   1. Pilih **Masuk dengan Apple**, lalu pilih **Konfigurasi**.

   1. Pada halaman **Konfigurasi Kunci**, pilih **ID Aplikasi Utama**, lalu pilih **Simpan**.

   1. Pilih **Lanjutkan**, lalu pilih **Daftarkan**.

**catatan**  
Untuk mengintegrasikan Masuk dengan Apple dengan aplikasi iOS native, lihat [ Menerapkan Autentikasi Pengguna dengan Masuk dengan Apple. ](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple)  
Untuk mengintegrasikan Masuk dengan Apple di platform selain iOS native, lihat [ JS Masuk dengan Apple.](https://developer.apple.com/documentation/signinwithapplejs/) 

## Konfigurasikan penyedia eksternal di konsol identitas gabungan Amazon Cognito
<a name="login-with-apple-configure-provider"></a>

Gunakan prosedur berikut untuk mengonfigurasi penyedia eksternal Anda.

**Untuk menambahkan Masuk dengan penyedia identitas Apple (iDP)**

1. Pilih **kumpulan Identitas** dari konsol [Amazon Cognito](https://console.aws.amazon.com/cognito/home). Pilih kumpulan identitas.

1. Pilih tab **Akses pengguna**.

1. Pilih **Tambahkan penyedia identitas**.

1. Pilih **Masuk dengan Apple**.

1. Masukkan **ID Layanan** OAuth proyek yang Anda buat dengan [Apple Developer](https://developer.apple.com). Untuk informasi selengkapnya, lihat [Mengautentikasi pengguna dengan Masuk dengan Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple) *Masuk dengan Dokumentasi Apple*.

1. **Untuk menyetel peran yang diminta Amazon Cognito saat mengeluarkan kredensil kepada pengguna yang telah mengautentikasi dengan penyedia ini, konfigurasikan setelan Peran.**

   1. Anda dapat menetapkan pengguna dari IDP tersebut peran **Default** yang Anda atur saat mengonfigurasi peran **Terautentikasi, atau Anda** **dapat Memilih** peran dengan aturan.

     1. Jika Anda memilih **Pilih peran dengan aturan**, masukkan **Klaim** sumber dari autentikasi pengguna Anda, **Operator** yang ingin Anda bandingkan dengan klaim, **Nilai** yang akan menyebabkan kecocokan dengan pilihan peran ini, dan **Peran** yang ingin Anda tetapkan saat **penetapan Peran** cocok. Pilih **Tambahkan yang lain** untuk membuat aturan tambahan berdasarkan kondisi yang berbeda.

     1. Pilih **Resolusi Peran**. **Jika klaim pengguna tidak sesuai dengan aturan, Anda dapat menolak kredensil atau mengeluarkan kredensi untuk peran yang Diautentikasi.**

1. **Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensil kepada pengguna yang telah diautentikasi dengan penyedia ini, konfigurasikan Atribut untuk kontrol akses.**

   1. Untuk tidak menerapkan tag utama, pilih **Tidak aktif**.

   1. Untuk menerapkan tag utama berdasarkan `sub` dan `aud` klaim, pilih **Gunakan pemetaan default**.

   1. Untuk membuat skema atribut kustom Anda sendiri ke tag utama, pilih **Gunakan pemetaan khusus**. Kemudian masukkan **kunci Tag** yang ingin Anda sumber dari setiap **Klaim** yang ingin Anda wakili dalam tag.

1. Pilih **Simpan perubahan**.

## Masuk dengan Apple sebagai penyedia dalam contoh CLI identitas federasi Amazon Cognito
<a name="sign-in-with-apple-cli-examples"></a>

Contoh ini membuat kumpulan identitas bernama `MyIdentityPool` dengan Masuk dengan Apple sebagai iDP.

`aws cognito-identity create-identity-pool --identity-pool-name MyIdentityPool --supported-login-providers appleid.apple.com="sameple.apple.clientid"`

 Untuk informasi selengkapnya, lihat [Membuat kolam identitas](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/create-identity-pool.html) 

**Menghasilkan sebuah ID identitas Amazon Cognito**  
 Contoh ini menghasilkan (atau mengambil) ID Amazon Cognito. Ini adalah API publik sehingga Anda tidak perlu kredensial apa pun untuk memanggil API ini.

`aws cognito-identity get-id --identity-pool-id SampleIdentityPoolId --logins appleid.apple.com="SignInWithAppleIdToken"`

Untuk informasi lebih lanjut, lihat [get-id.](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/get-id.html) 

**Mendapatkan kredensial untuk ID identitas Amazon Cognito**  
Contoh ini mengembalikan kredensial untuk ID identitas yang diberikan dan Masuk dengan login Apple. Ini adalah API publik sehingga Anda tidak perlu kredensial apa pun untuk memanggil API ini.

`aws cognito-identity get-credentials-for-identity --identity-id SampleIdentityId --logins appleid.apple.com="SignInWithAppleIdToken" `

Untuk informasi selengkapnya, lihat [get-credentials-for-identity](https://docs.aws.amazon.com/cli/latest/reference/cognito-identity/get-credentials-for-identity.html) 

## Menggunakan Masuk dengan Apple: Android
<a name="set-up-apple-1.android"></a>

Apple tidak menyediakan SDK yang mendukung Masuk dengan Apple untuk Android. Anda dapat menggunakan alur web dalam tampilan web sebagai gantinya.
+ Untuk mengonfigurasi Masuk dengan Apple di aplikasi anda, ikuti [Mengonfigurasi halaman Web Anda untuk Masuk dengan Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-webpage-for-sign-in-with-apple) dalam dokumentasi Apple.
+ Untuk menambahkan tombol **Masuk dengan Apple** ke antarmuka pengguna Android Anda, ikuti [tombol Menampilkan Masuk dengan Apple di web](https://developer.apple.com/documentation/signinwithapple/displaying-sign-in-with-apple-buttons-on-the-web) dalam dokumentasi Apple.
+ Untuk mengautentikasi pengguna dengan aman dengan Masuk dengan Apple, ikuti [Mengautentikasi Pengguna dengan Masuk dengan Apple di dokumentasi Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple).

Masuk dengan Apple menggunakan objek sesi untuk melacak keadaannya. Amazon Cognito menggunakan token ID dari objek sesi ini untuk mengautentikasi pengguna, menghasilkan pengenal unik, dan, jika diperlukan, memberikan pengguna akses ke sumber daya lain. AWS 

```
@Override
public void onSuccess(Bundle response) {
    String token = response.getString("id_token");
    Map<String, String> logins = new HashMap<String, String>();
    logins.put("appleid.apple.com", token);
    credentialsProvider.setLogins(logins);
}
```

## Menggunakan Masuk dengan Apple: iOS - Objective-C
<a name="set-up-apple-1.ios-objc"></a>

Apple menyediakan dukungan SDK untuk Masuk dengan Apple di aplikasi iOS native. Untuk menerapkan autentikasi pengguna dengan Masuk dengan Apple di perangkat iOS native, ikuti [Menerapkan Autentikasi Pengguna dengan Masuk dengan Apple](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple) dalam dokumentasi Apple.

Amazon Cognito menggunakan token ID untuk mengautentikasi pengguna, menghasilkan pengenal unik, dan, jika diperlukan, memberikan pengguna akses ke sumber daya lain. AWS 

```
(void)finishedWithAuth: (ASAuthorizationAppleIDCredential *)auth error: (NSError *) error {
        NSString *idToken = [ASAuthorizationAppleIDCredential objectForKey:@"identityToken"];
        credentialsProvider.logins = @{ "appleid.apple.com": idToken };
    }
```

## Menggunakan Masuk dengan Apple: iOS - Swift
<a name="set-up-apple-1.ios-swift"></a>

Apple menyediakan dukungan SDK untuk Masuk dengan Apple di aplikasi iOS native. Untuk menerapkan autentikasi pengguna dengan Masuk dengan Apple di perangkat iOS native, ikuti [Menerapkan Autentikasi Pengguna dengan Masuk dengan Apple](https://developer.apple.com/documentation/authenticationservices/implementing-user-authentication-with-sign-in-with-apple) dalam dokumentasi Apple.

Amazon Cognito menggunakan token ID untuk mengautentikasi pengguna, menghasilkan pengenal unik, dan, jika diperlukan, memberikan pengguna akses ke sumber daya lain. AWS 

Untuk informasi selengkapnya tentang cara mengatur Masuk dengan Apple di iOS, lihat [Mengatur Masuk dengan Apple](https://docs.amplify.aws/sdk/auth/federated-identities/q/platform/ios#set-up-sign-in-with-apple)

```
func finishedWithAuth(auth: ASAuthorizationAppleIDCredential!, error: NSError!) {
    if error != nil {
      print(error.localizedDescription)
    }
    else {
      let idToken = auth.identityToken,
      credentialsProvider.logins = ["appleid.apple.com": idToken!]
    }
}
```

## Gunakan Masuk dengan Apple: JavaScript
<a name="set-up-apple-1.javascript"></a>

Apple tidak menyediakan SDK yang mendukung Masuk dengan Apple untuk JavaScript. Anda dapat menggunakan alur web dalam tampilan web sebagai gantinya.
+ Untuk mengonfigurasi Masuk dengan Apple di aplikasi anda, ikuti [Mengonfigurasi halaman Web Anda untuk Masuk dengan Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-webpage-for-sign-in-with-apple) dalam dokumentasi Apple.
+ Untuk menambahkan tombol **Masuk dengan Apple** ke antarmuka JavaScript pengguna, ikuti [tombol Menampilkan Masuk dengan Apple di web](https://developer.apple.com/documentation/signinwithapple/displaying-sign-in-with-apple-buttons-on-the-web) dalam dokumentasi Apple.
+ Untuk mengautentikasi pengguna dengan aman dengan Masuk dengan Apple, ikuti [Mengautentikasi Pengguna dengan Masuk dengan Apple di dokumentasi Apple](https://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple).

Masuk dengan Apple menggunakan objek sesi untuk melacak keadaannya. Amazon Cognito menggunakan token ID dari objek sesi ini untuk mengautentikasi pengguna, menghasilkan pengenal unik, dan, jika diperlukan, memberikan pengguna akses ke sumber daya lain. AWS 

```
function signinCallback(authResult) {
     // Add the apple's id token to the Amazon Cognito credentials login map.
     AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: 'IDENTITY_POOL_ID',
        Logins: {
           'appleid.apple.com': authResult['id_token']
        }
     });

     // Obtain AWS credentials
     AWS.config.credentials.get(function(){
        // Access AWS resources here.
     });
}
```