

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

# Masuk kumpulan pengguna dengan penyedia identitas pihak ketiga
<a name="cognito-user-pools-identity-federation"></a>

Pengguna aplikasi Anda dapat masuk langsung melalui kumpulan pengguna, atau mereka dapat melakukan federasi melalui penyedia identitas pihak ketiga (iDP). Kumpulan pengguna mengelola overhead penanganan token yang dikembalikan dari login sosial melalui Facebook, Google, Amazon, dan Apple, dan dari OpenID Connect (OIDC) dan SAMP. IdPs Dengan UI web host bawaan, Amazon Cognito menyediakan penanganan dan manajemen token untuk pengguna yang diautentikasi dari semua. IdPs Dengan cara ini, sistem backend Anda dapat melakukan standarisasi pada satu set token kumpulan pengguna.

## Cara kerja masuk federasi di kumpulan pengguna Amazon Cognito
<a name="cognito-user-pools-identity-federation-how-it-works"></a>

Masuk melalui pihak ketiga (federasi) tersedia di kolam pengguna Amazon Cognito. Fitur ini independen dari federasi melalui kolam identitas Amazon Cognito (identitas federasi).

![\[Ikhtisar autentikasi dengan masuk sosial\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/scenario-authentication-cup.png)


Amazon Cognito adalah direktori pengguna dan penyedia identitas OAuth 2.0 (iDP). Saat Anda memasukkan *pengguna lokal* ke direktori Amazon Cognito, kumpulan pengguna Anda adalah iDP ke aplikasi Anda. Pengguna lokal ada secara eksklusif di direktori kumpulan pengguna Anda tanpa federasi melalui iDP eksternal.

Saat Anda menghubungkan Amazon Cognito ke social, SAMP, atau OpenID Connect (OIDC IdPs), kumpulan pengguna akan berfungsi sebagai jembatan antara beberapa penyedia layanan dan aplikasi Anda. Untuk IDP Anda, Amazon Cognito adalah penyedia layanan (SP). Anda IdPs meneruskan token ID OIDC atau pernyataan SAMP ke Amazon Cognito. Amazon Cognito membaca klaim tentang pengguna Anda di token atau pernyataan dan memetakan klaim tersebut ke profil pengguna baru di direktori kumpulan pengguna Anda.

Amazon Cognito kemudian membuat profil pengguna untuk pengguna federasi Anda di direktorinya sendiri. Amazon Cognito menambahkan atribut ke pengguna Anda berdasarkan klaim dari IDP Anda dan, dalam kasus OIDC dan penyedia identitas sosial, titik akhir publik yang dioperasikan IDP. `userinfo` Atribut pengguna Anda berubah di kumpulan pengguna Anda saat atribut IDP yang dipetakan berubah. Anda juga dapat menambahkan lebih banyak atribut independen dari atribut dari iDP.

Setelah Amazon Cognito membuat profil untuk pengguna federasi Anda, ia mengubah fungsinya dan menampilkan dirinya sebagai iDP ke aplikasi Anda, yang sekarang menjadi SP. Amazon Cognito adalah kombinasi OIDC dan 2.0 iDP. OAuth Ini menghasilkan token akses, token ID, dan token penyegaran. Untuk informasi selengkapnya tentang token, lihat[Memahami kumpulan pengguna token web JSON () JWTs](amazon-cognito-user-pools-using-tokens-with-identity-providers.md).

Anda harus mendesain aplikasi yang terintegrasi dengan Amazon Cognito untuk mengautentikasi dan mengotorisasi pengguna Anda, baik federasi maupun lokal.

## Tanggung jawab aplikasi sebagai penyedia layanan dengan Amazon Cognito
<a name="cognito-user-pools-identity-federation-how-it-works-app-responsibilities"></a><a name="cognito-user-pools-identity-federation-how-it-works-app-responsibilities"></a>

**Verifikasi dan proses informasi dalam token**  
Dalam sebagian besar skenario, Amazon Cognito mengalihkan pengguna yang diautentikasi ke URL aplikasi yang ditambahkan dengan kode otorisasi. Aplikasi Anda [menukar kode](https://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html) untuk token akses, ID, dan penyegaran. Kemudian, ia harus [memeriksa validitas token](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html) dan menyajikan informasi kepada pengguna Anda berdasarkan klaim dalam token.

**Menanggapi peristiwa otentikasi dengan permintaan Amazon Cognito API**  
Aplikasi Anda harus terintegrasi dengan [API kumpulan pengguna Amazon Cognito dan titik akhir API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/Welcome.html) [autentikasi.](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html) API otentikasi menandatangani pengguna Anda masuk dan keluar, dan mengelola token. API kumpulan pengguna memiliki berbagai operasi yang mengelola kumpulan pengguna, pengguna, dan keamanan lingkungan autentikasi Anda. Aplikasi Anda harus tahu apa yang harus dilakukan selanjutnya ketika menerima respons dari Amazon Cognito.

## Hal-hal yang perlu diketahui tentang kumpulan pengguna Amazon Cognito login pihak ketiga
<a name="cognito-user-pools-identity-federation-how-it-works-considerations"></a><a name="cognito-user-pools-identity-federation-how-it-works-considerations"></a>
+ Jika Anda ingin pengguna Anda masuk dengan penyedia federasi, Anda harus memilih domain. Ini mengatur halaman untuk [login terkelola](cognito-userpools-server-contract-reference.md). Untuk informasi selengkapnya, lihat [Menggunakan domain Anda sendiri untuk login terkelola](cognito-user-pools-add-custom-domain.md).
+ Anda tidak dapat masuk ke pengguna federasi dengan operasi API seperti [ InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)dan [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html). Pengguna federasi hanya dapat masuk dengan [Titik akhir masuk](login-endpoint.md) atau. [Otorisasi titik akhir](authorization-endpoint.md)
+ [Otorisasi titik akhir](authorization-endpoint.md)Ini adalah titik akhir *pengalihan*. Jika Anda memberikan `idp_identifier` atau `identity_provider` parameter dalam permintaan Anda, itu mengalihkan secara diam-diam ke IDP Anda, melewati login terkelola. Jika tidak, itu mengalihkan ke login terkelola. [Titik akhir masuk](login-endpoint.md)
+ Saat login terkelola mengalihkan sesi ke iDP federasi, Amazon Cognito menyertakan header dalam permintaan`user-agent`. `Amazon/Cognito`
+ Amazon Cognito memperoleh `username` atribut untuk profil pengguna federasi dari kombinasi pengenal tetap dan nama iDP Anda. Untuk menghasilkan nama pengguna yang sesuai dengan persyaratan kustom Anda, buat pemetaan ke `preferred_username` atribut. Untuk informasi selengkapnya, lihat [Hal yang perlu diketahui tentang pemetaan](cognito-user-pools-specifying-attribute-mapping.md#cognito-user-pools-specifying-attribute-mapping-requirements).

  Contoh: `MyIDP_bob@example.com`
+ Amazon Cognito membuat [grup pengguna](cognito-user-pools-user-groups.md) untuk setiap OIDC, SAMl dan iDP sosial yang Anda tambahkan ke kumpulan pengguna. Nama grup ada dalam format`[user pool ID]_[IdP name]`, misalnya `us-east-1_EXAMPLE_MYSSO` atau`us-east-1_EXAMPLE_Google`. Setiap profil pengguna iDP unik yang dihasilkan secara otomatis ditambahkan ke grup ini. [Pengguna tertaut](cognito-user-pools-identity-federation-consolidate-users.md) tidak secara otomatis ditambahkan ke grup ini, tetapi Anda dapat menambahkan profil mereka ke grup dalam proses terpisah.
+ Amazon Cognito mencatat informasi tentang identitas pengguna federasi Anda ke atribut, dan klaim dalam token ID, yang dipanggil. `identities` Klaim ini berisi penyedia pengguna Anda dan ID unik mereka dari penyedia. Anda tidak dapat mengubah `identities` atribut di profil pengguna secara langsung. Untuk informasi selengkapnya tentang cara menautkan pengguna federasi, lihat[Menautkan pengguna gabungan ke profil pengguna yang ada](cognito-user-pools-identity-federation-consolidate-users.md).
+ Ketika Anda memperbarui IDP Anda dalam permintaan [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API, perubahan Anda dapat memakan waktu hingga satu menit untuk muncul di login terkelola.
+ Amazon Cognito mendukung hingga 20 pengalihan HTTP antara dirinya dan IDP Anda.
+ Saat pengguna Anda masuk dengan login terkelola, browser mereka menyimpan cookie sesi masuk terenkripsi yang mencatat klien dan penyedia tempat mereka masuk. Jika mereka mencoba masuk lagi dengan parameter yang sama, login terkelola menggunakan kembali sesi yang ada yang *belum kedaluwarsa*, dan pengguna mengautentikasi tanpa memberikan kredensyal lagi. Jika pengguna Anda masuk lagi dengan IDP yang berbeda, termasuk peralihan ke atau dari login kumpulan pengguna lokal, mereka harus memberikan kredensyal dan membuat sesi login baru.

  Anda dapat menetapkan kumpulan pengguna apa pun IdPs ke klien aplikasi apa pun, dan pengguna hanya dapat masuk dengan iDP yang Anda tetapkan ke klien aplikasi mereka.

**Topics**
+ [Cara kerja masuk federasi di kumpulan pengguna Amazon Cognito](#cognito-user-pools-identity-federation-how-it-works)
+ [Tanggung jawab aplikasi sebagai penyedia layanan dengan Amazon Cognito](#cognito-user-pools-identity-federation-how-it-works-app-responsibilities)
+ [Hal-hal yang perlu diketahui tentang kumpulan pengguna Amazon Cognito login pihak ketiga](#cognito-user-pools-identity-federation-how-it-works-considerations)
+ [Mengkonfigurasi penyedia identitas untuk kumpulan pengguna Anda](cognito-user-pools-identity-provider.md)
+ [Menggunakan penyedia identitas sosial dengan kumpulan pengguna](cognito-user-pools-social-idp.md)
+ [Menggunakan penyedia identitas SAMP dengan kumpulan pengguna](cognito-user-pools-saml-idp.md)
+ [Menggunakan penyedia identitas OIDC dengan kumpulan pengguna](cognito-user-pools-oidc-idp.md)
+ [Memetakan atribut iDP ke profil dan token](cognito-user-pools-specifying-attribute-mapping.md)
+ [Menautkan pengguna gabungan ke profil pengguna yang ada](cognito-user-pools-identity-federation-consolidate-users.md)

# Mengkonfigurasi penyedia identitas untuk kumpulan pengguna Anda
<a name="cognito-user-pools-identity-provider"></a>

Dengan kumpulan pengguna, Anda dapat menerapkan login melalui berbagai penyedia identitas eksternal (IdPs). Bagian panduan ini memiliki instruksi untuk menyiapkan penyedia identitas ini dengan kumpulan pengguna Anda di konsol Amazon Cognito. Atau, Anda dapat menggunakan API kumpulan pengguna dan AWS SDK untuk menambahkan penyedia identitas kumpulan pengguna secara terprogram. Untuk informasi selengkapnya, lihat [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html).

Opsi penyedia identitas yang didukung termasuk penyedia sosial seperti Facebook, Google, dan Amazon, serta penyedia OpenID Connect (OIDC) dan SAMP 2.0. Sebelum memulai, siapkan diri Anda dengan kredensi administratif untuk IDP Anda. Untuk setiap jenis penyedia, Anda harus mendaftarkan aplikasi Anda, mendapatkan kredensi yang diperlukan, dan kemudian mengonfigurasi detail penyedia di kumpulan pengguna Anda. Pengguna Anda kemudian dapat mendaftar dan masuk ke aplikasi Anda dengan akun mereka yang ada dari penyedia identitas yang terhubung.

Menu **penyedia sosial dan eksternal** di bawah **Autentikasi** menambahkan dan memperbarui kumpulan IdPs pengguna. Untuk informasi selengkapnya, lihat [Masuk kumpulan pengguna dengan penyedia identitas pihak ketiga](cognito-user-pools-identity-federation.md).

**Topics**
+ [Mengatur login pengguna dengan iDP sosial](#cognito-user-pools-facebook-provider)
+ [Mengatur login pengguna dengan OIDC iDP](#cognito-user-pools-oidc-providers)
+ [Mengatur login pengguna dengan SALL iDP](#cognito-user-pools-saml-providers)

## Mengatur login pengguna dengan iDP sosial
<a name="cognito-user-pools-facebook-provider"></a>

Anda dapat menggunakan federasi untuk mengintegrasikan kumpulan pengguna Amazon Cognito dengan penyedia identitas sosial seperti Facebook, Google, dan Login with Amazon.

Untuk menambahkan penyedia identitas sosial, Anda terlebih dahulu membuat akun developer dengan penyedia identitas. Setelah Anda memiliki akun pengembang, daftarkan aplikasi Anda ke penyedia identitas. Penyedia identitas membuat ID aplikasi dan rahasia aplikasi untuk aplikasi Anda, dan Anda mengonfigurasi nilai-nilai tersebut di kolam pengguna Amazon Cognito Anda.
+ [Platform identitas Google](https://developers.google.com/identity/)
+ [Facebook untuk pengembang](https://developers.facebook.com/docs/facebook-login)
+ [Login with Amazon](https://developer.amazon.com/login-with-amazon)
+ [Masuk dengan Apple](https://developer.apple.com/sign-in-with-apple/)

**Untuk mengintegrasikan login pengguna dengan iDP sosial**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Di panel navigasi, pilih **Kumpulan Pengguna**, dan pilih kumpulan pengguna yang ingin Anda edit.

1. Pilih menu **penyedia sosial dan eksternal**.

1. Pilih **Tambahkan penyedia identitas, atau pilih penyedia identitas** **Facebook**, **Google**, **Amazon**, atau **Apple** yang telah Anda konfigurasikan, cari **informasi penyedia Identitas**, dan pilih **Edit**. Untuk informasi selengkapnya tentang menambahkan penyedia identitas sosial, lihat[Menggunakan penyedia identitas sosial dengan kumpulan pengguna](cognito-user-pools-social-idp.md).

1. Masukkan informasi penyedia identitas sosial Anda dengan menyelesaikan salah satu langkah berikut, berdasarkan pilihan IDP Anda:  
**Facebook, Google, dan Login with Amazon**  
Masukkan ID aplikasi dan rahasia aplikasi yang Anda terima saat membuat aplikasi klien.  
**Masuk dengan Apple**  
Masukkan ID layanan yang Anda berikan ke Apple, dan ID tim, ID kunci, dan kunci pribadi yang Anda terima saat membuat klien aplikasi.

1. Untuk **cakupan Resmi**, masukkan nama cakupan penyedia identitas sosial yang ingin Anda petakan ke atribut kumpulan pengguna. Cakupan menentukan atribut pengguna, seperti nama dan email, yang ingin Anda akses dengan aplikasi Anda. Saat memasukkan cakupan, gunakan panduan berikut berdasarkan pilihan IDP Anda:
   + **Facebook** — Pisahkan cakupan dengan koma. Contoh:

     `public_profile, email`
   + **Google, Login with Amazon, dan Masuk dengan Apple** — Pisahkan cakupan dengan spasi. Contoh:
     + **Google:** `profile email openid`
     + **Login with Amazon:** `profile postal_code`
     + **Masuk dengan Apple:** `name email`
**catatan**  
Untuk Masuk dengan Apple (konsol), gunakan kotak centang untuk memilih cakupan.

1. Pilih **Simpan perubahan**.

1. Dari menu **Klien aplikasi**, pilih klien aplikasi dari daftar, lalu pilih **Edit**. Tambahkan penyedia identitas sosial baru ke klien aplikasi di bawah **Penyedia identitas**.

1. Pilih **Simpan perubahan**.

Untuk informasi lebih lanjut tentang sosial IdPs, lihat[Menggunakan penyedia identitas sosial dengan kumpulan pengguna](cognito-user-pools-social-idp.md).

## Mengatur login pengguna dengan OIDC iDP
<a name="cognito-user-pools-oidc-providers"></a>

Anda dapat mengintegrasikan login pengguna dengan penyedia identitas OpenID Connect (OIDC) (IDP) seperti Salesforce atau Ping Identity.

**Untuk menambahkan penyedia OIDC ke kumpulan pengguna**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Pilih **User Pools** dari menu navigasi.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Penyedia sosial dan eksternal** dan pilih **Tambahkan penyedia identitas**.

1. Pilih penyedia identitas **OpenID Connect**.

1. Masukkan nama unik ke dalam **nama Penyedia**.

1. Masukkan ID klien yang Anda terima dari penyedia Anda ke dalam **ID Klien**.

1. Masukkan rahasia klien yang Anda terima dari penyedia Anda ke dalam **rahasia Klien**.

1. Masukkan **cakupan resmi** untuk penyedia ini. Cakupan menentukan grup atribut pengguna mana (seperti `name` dan`email`) yang akan diminta aplikasi Anda dari penyedia Anda. Lingkup harus dipisahkan oleh spasi, mengikuti spesifikasi [OAuth 2.0](https://tools.ietf.org/html/rfc6749#section-3.3).

   Pengguna Anda harus menyetujui untuk memberikan atribut ini ke aplikasi Anda.

1. Pilih **metode permintaan Atribut** untuk menyediakan Amazon Cognito dengan metode HTTP (baik GET atau POST) yang digunakan Amazon Cognito untuk mengambil detail pengguna dari titik akhir **UserInfo** yang dioperasikan oleh penyedia Anda.

1. **Pilih **metode Pengaturan** untuk mengambil titik akhir OpenID Connect **baik dengan pengisian Otomatis melalui** URL penerbit atau input Manual.** Gunakan **Isi otomatis melalui URL penerbit** ketika penyedia Anda memiliki `.well-known/openid-configuration` titik akhir publik tempat Amazon Cognito dapat mengambil dari`token`,,, URLs `userInfo` dan titik `authorization` akhir. `jwks_uri`

1. Masukkan URL penerbit atau`authorization`,, `token``userInfo`, dan `jwks_uri` titik akhir URLs dari IDP Anda.
**catatan**  
Anda hanya dapat menggunakan nomor port 443 dan 80 dengan penemuan, diisi otomatis, dan dimasukkan secara manual. URLs Login pengguna gagal jika penyedia OIDC Anda menggunakan port TCP yang tidak standar.  
URL penerbit harus dimulai dengan`https://`, dan tidak boleh diakhiri dengan `/` karakter. Misalnya, Salesforce menggunakan URL ini:  
`https://login.salesforce.com`   
`openid-configuration`Dokumen yang terkait dengan URL penerbit Anda harus menyediakan HTTPS URLs untuk nilai berikut:`authorization_endpoint`,, `token_endpoint``userinfo_endpoint`, dan`jwks_uri`. Demikian pula, ketika Anda memilih **input Manual**, Anda hanya dapat memasukkan HTTPS URLs.

1. **Sub** klaim OIDC dipetakan ke atribut kumpulan pengguna **Username** secara default. Anda dapat memetakan [klaim](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) OIDC lainnya ke atribut kolam pengguna. Masukkan klaim OIDC, dan pilih atribut kumpulan pengguna yang sesuai dari daftar drop-down. Misalnya, **email** klaim sering dipetakan ke atribut kolam pengguna **Email**.

1. Petakan atribut tambahan dari penyedia identitas Anda ke kumpulan pengguna Anda. Untuk informasi selengkapnya, lihat [Menentukan pemetaan atribut Penyedia Identitas untuk kumpulan pengguna Anda](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html).

1. Pilih **Buat**.

1. Dari menu **Klien aplikasi**, pilih klien aplikasi dari daftar. Untuk menambahkan penyedia identitas SAMP baru ke klien aplikasi, navigasikan ke tab **Halaman login** dan pilih **Edit** pada **konfigurasi halaman login Terkelola**.

1. Pilih **Simpan perubahan**.

Untuk informasi lebih lanjut tentang OIDC IdPs, lihat. [Menggunakan penyedia identitas OIDC dengan kumpulan pengguna](cognito-user-pools-oidc-idp.md)

## Mengatur login pengguna dengan SALL iDP
<a name="cognito-user-pools-saml-providers"></a>

Anda dapat menggunakan federasi untuk kolam pengguna Amazon Cognito untuk berintegrasi dengan penyedia identitas (IdP) SAML. Anda menyediakan dokumen metadata, baik dengan mengunggah file atau dengan memasukkan URL titik akhir dokumen metadata. Untuk informasi tentang mendapatkan dokumen metadata untuk IdPs SAMP pihak ketiga, lihat. [Mengonfigurasi penyedia identitas SAMP pihak ketiga Anda](cognito-user-pools-integrating-3rd-party-saml-providers.md)

**Untuk mengonfigurasi penyedia identitas SAML 2.0 di kolam pengguna Anda**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Pilih **Kolam Pengguna**.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **penyedia sosial dan eksternal** dan pilih **Tambahkan penyedia identitas**.

1. Pilih penyedia identitas **SAMP**.

1. Masukkan **Identifier** dipisahkan dengan koma. Pengidentifikasi mengarahkan Amazon Cognito untuk memeriksa alamat email masuk pengguna, lalu mengarahkan pengguna ke penyedia yang sesuai dengan domain mereka.

1. Pilih **Tambahkan alur keluar** jika Anda ingin Amazon Cognito mengirim permintaan keluar yang ditandatangani ke penyedia Anda saat pengguna keluar. Konfigurasikan penyedia identitas SAMP 2.0 Anda untuk mengirim respons keluar ke titik `https://mydomain.auth.us-east-1.amazoncognito.com/saml2/logout` akhir yang dibuat Amazon Cognito saat Anda mengonfigurasi login terkelola. `saml2/logout`Titik akhir menggunakan pengikatan POST.
**catatan**  
Jika Anda memilih opsi ini dan penyedia identitas SAMP mengharapkan permintaan logout yang ditandatangani, Anda juga harus mengonfigurasi sertifikat penandatanganan yang disediakan oleh Amazon Cognito dengan IDP SALL Anda.   
IdP SAML akan memproses permintaan logout yang ditandatangani dan me-logout pengguna Anda dari sesi Amazon Cognito.

1. Pilih sumber **dokumen Metadata**. Jika penyedia identitas Anda menawarkan metadata SAMP di URL publik, Anda dapat memilih URL **dokumen Metadata dan memasukkan URL** publik tersebut. Jika tidak, pilih **Unggah dokumen metadata** dan pilih file metadata yang Anda unduh dari penyedia Anda sebelumnya.
**catatan**  
Jika penyedia Anda memiliki titik akhir publik, kami sarankan Anda memasukkan URL dokumen metadata, daripada mengunggah file. Jika Anda menggunakan URL, Amazon Cognito menyegarkan metadata secara otomatis. Biasanya, penyegaran metadata terjadi setiap 6 jam atau sebelum metadata kedaluwarsa, mana yang lebih awal.

1. **Petakan atribut antara penyedia SAMP dan aplikasi Anda** untuk memetakan atribut penyedia SAMP ke profil pengguna di kumpulan pengguna Anda. Sertakan atribut wajib kumpulan pengguna Anda di peta atribut Anda. 

   Misalnya, ketika Anda memilih **atribut User pool**`email`, masukkan nama atribut SAMP seperti yang muncul dalam pernyataan SAMP dari penyedia identitas Anda. Penyedia identitas Anda mungkin menawarkan contoh pernyataan SAMP untuk referensi. Beberapa penyedia identitas menggunakan nama sederhana, seperti`email`, sementara yang lain menggunakan nama atribut berformat URL yang mirip dengan:

   ```
   http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
   ```

1. Pilih **Buat**.

**catatan**  
Jika Anda melihat `InvalidParameterException` saat membuat IDP SAMP dengan URL titik akhir metadata HTTPS, pastikan bahwa titik akhir metadata memiliki SSL yang diatur dengan benar dan ada sertifikat SSL yang valid yang terkait dengannya. Salah satu contoh pengecualian tersebut adalah “Kesalahan mengambil metadata dari”. *<metadata endpoint>*

**Untuk menyiapkan IdP SAML untuk menambahkan sertifikat penandatanganan**
+ Untuk mendapatkan sertifikat yang berisi kunci publik yang digunakan IDP untuk memverifikasi permintaan logout yang ditandatangani, lakukan hal berikut:

  1. Buka menu **penyedia sosial dan eksternal** dari kumpulan pengguna Anda.

  1. Pilih penyedia SAMP Anda,

  1. Pilih **Lihat sertifikat penandatanganan.**

Untuk informasi lebih lanjut tentang SAMP IdPs lihat[Menggunakan penyedia identitas SAMP dengan kumpulan pengguna](cognito-user-pools-saml-idp.md).

# Menggunakan penyedia identitas sosial dengan kumpulan pengguna
<a name="cognito-user-pools-social-idp"></a>

Pengguna web dan aplikasi seluler Anda dapat masuk melalui penyedia identitas (IdP) sosial seperti Facebook, Google, Amazon, dan Apple. Dengan UI web host bawaan, Amazon Cognito menyediakan penanganan dan manajemen token untuk semua pengguna yang diautentikasi. Dengan cara ini, sistem backend Anda dapat melakukan standarisasi pada satu set token kumpulan pengguna. Anda harus mengaktifkan login terkelola untuk berintegrasi dengan penyedia identitas sosial yang didukung. Saat Amazon Cognito membuat halaman login terkelola Anda, Amazon Cognito membuat OAuth 2.0 titik akhir yang digunakan Amazon Cognito dan OIDC serta sosial Anda untuk bertukar informasi. IdPs Untuk informasi selengkapnya, lihat referensi [API Auth kumpulan pengguna Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html).

Anda dapat menambahkan iDP sosial di Konsol Manajemen AWS, atau Anda dapat menggunakan CLI atau AWS Amazon Cognito API. 

**catatan**  
Masuk melalui pihak ketiga (federasi) tersedia di kolam pengguna Amazon Cognito. Fitur ini independen dari federasi melalui kolam identitas Amazon Cognito (identitas federasi).

**Topics**
+ [Menyiapkan akun dan aplikasi pengembang iDP sosial](#cognito-user-pools-social-idp-step-1)
+ [Konfigurasikan kumpulan pengguna Anda dengan iDP sosial](#cognito-user-pools-social-idp-step-2)
+ [Uji konfigurasi iDP sosial Anda](#cognito-user-pools-social-idp-step-3)

## Menyiapkan akun dan aplikasi pengembang iDP sosial
<a name="cognito-user-pools-social-idp-step-1"></a>

Sebelum Anda membuat IdP sosial dengan Amazon Cognito, Anda harus mendaftarkan aplikasi Anda dengan IdP sosial untuk menerima ID klien dan rahasia klien.

------
#### [ Facebook ]

Untuk informasi terbaru tentang konfigurasi akun pengembang Meta dan autentikasi, lihat [Meta](https://developers.facebook.com/docs/development) App Development.

**Cara mendaftarkan aplikasi dengan Facebook/Meta**

1. Buat sebuah [akun developer dengan Facebook](https://developers.facebook.com/docs/facebook-login).

1. [Masuk](https://developers.facebook.com/) dengan kredensial Facebook Anda.

1. Dari menu **Aplikasi Saya**, pilih **Buat Aplikasi Baru**.

1. Masukkan nama untuk aplikasi Facebook Anda, lalu pilih **Buat ID Aplikasi**.

1. Di bilah navigasi kiri, pilih **Pengaturan**, lalu **Dasar**.

1. Perhatikan **ID Aplikasi** dan **Rahasia Aplikasi**. Anda akan menggunakannya di bagian selanjutnya.

1. Pilih **\$1 Tambahkan Platform** dari bagian bawah halaman.

1. Pilih **Situs Web**.

1. Di bawah **Situs Web**, masukkan jalur ke halaman login untuk aplikasi Anda ke **URL Situs**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
   ```

1. Pilih **Simpan perubahan**.

1. Masukkan jalur ke root domain kumpulan pengguna Anda ke Domain **Aplikasi**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com
   ```

1. Pilih **Simpan perubahan**.

1. Dari bilah navigasi pilih **Tambah Produk** dan pilih **Siapkan** untuk produk **Login Facebook**.

1. Dari bilah navigasi pilih **Facebook Login** dan kemudian **Pengaturan**.

   Masukkan jalur ke `/oauth2/idpresponse` titik akhir untuk domain kumpulan pengguna Anda ke ** OAuthPengalihan URIs Valid**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
   ```

1. Pilih **Simpan perubahan**.

------
#### [ Login with Amazon ]

Untuk informasi terbaru tentang konfigurasi Login with Amazon developer account dan autentikasi, lihat [Login with Amazon Documentation](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html).

**Cara mendaftarkan aplikasi dengan Login with Amazon**

1. Buat sebuah [akun developer dengan Amazon](https://developer.amazon.com/login-with-amazon).

1. [Masuk](https://developer.amazon.com/lwa/sp/overview.html) dengan kredensial Amazon Anda.

1. Anda perlu untuk membuat profil keamanan Amazon untuk menerima ID klien dan rahasia klien Amazon.

   Pilih **Aplikasi dan Layanan** dari bilah navigasi di bagian atas halaman, lalu pilih **Login with Amazon**.

1. Pilih **Buat Profil Keamanan**.

1. Masukkan **Nama Profil Keamanan**, **Deskripsi Profil Keamanan**, dan **URL Pemberitahuan Privasi Persetujuan**.

1. Pilih **Simpan**.

1. Pilih **ID Klien** dan **Rahasia Klien** untuk menampilkan ID dan rahasia klien. Anda akan menggunakannya di bagian selanjutnya.

1. Arahkan kursor ke ikon roda gigi dan pilih **Pengaturan Web**, lalu pilih **Edit**.

1. Masukkan domain kumpulan pengguna Anda ke **Asal yang Diizinkan**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com
   ```

1. Masukkan domain pool pengguna Anda dengan `/oauth2/idpresponse` titik akhir ke **Return URLs yang Diizinkan**.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
   ```

1. Pilih **Simpan**.

------
#### [ Google ]

Untuk informasi selengkapnya tentang OAuth 2.0 di platform Google Cloud, lihat [Pelajari tentang autentikasi & otorisasi di dokumentasi](https://developers.google.com/workspace/guides/auth-overview) Google Workspace for Developers.

**Cara mendaftarkan aplikasi dengan Google**

1. Buat sebuah [akun developer dengan Google](https://developers.google.com/identity).

1. Masuk ke [konsol Google Cloud Platform](https://console.cloud.google.com/home/dashboard).

1. Dari bilah navigasi atas, pilih **Pilih proyek**. Jika Anda sudah memiliki proyek di platform Google, menu ini menampilkan proyek default Anda sebagai gantinya.

1. Pilih **PROYEK BARU**.

1. Masukkan nama untuk produk Anda dan kemudian pilih **CREATE**.

1. Di bilah navigasi kiri, pilih **APIs dan Layanan**, lalu layar **persetujuan Oauth**.

1. Masukkan informasi Aplikasi, **domain Aplikasi, domain** **Resmi**, dan **informasi kontak Pengembang**. **Domain resmi** Anda harus menyertakan `amazoncognito.com` dan akar domain kustom Anda, misalnya`example.com`. Pilih **SIMPAN DAN LANJUTKAN**.

1. 1. Di bawah **Lingkup**, pilih **Tambah atau hapus cakupan**, dan pilih, minimal, cakupan berikut OAuth .

   1. `.../auth/userinfo.email`

   1. `.../auth/userinfo.profile`

   1. openid

1. Di bawah **Uji pengguna**, pilih **Tambahkan pengguna**. Masukkan alamat email Anda dan pengguna uji resmi lainnya, lalu pilih **SIMPAN DAN LANJUTKAN**.

1. Perluas bilah navigasi kiri lagi, dan pilih **APIs dan Layanan**, lalu **Kredensial**. 

1. Pilih **CREATE CREDENTIALS**, lalu **OAuth client** ID.

1. Pilih **jenis Aplikasi** dan beri **nama** klien Anda.

1. Di bawah ** JavaScript Asal resmi**, pilih **TAMBAH URI**. Masukkan domain pool pengguna Anda.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com
   ```

1. Di bawah **Pengalihan resmi URIs**, pilih **TAMBAH URI**. Masukkan jalur ke `/oauth2/idpresponse` titik akhir domain kumpulan pengguna Anda.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
   ```

1. Pilih **CREATE**.

1. Simpan nilai yang ditampilkan Google dengan aman di bawah **ID klien Anda** dan **rahasia klien Anda**. Berikan nilai ini ke Amazon Cognito saat Anda menambahkan Google iDP.

------
#### [ Sign in with Apple ]

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.

**Cara mendaftarkan aplikasi dengan Masuk dengan Apple (SIWA)**

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 bilah navigasi kiri, pilih **Sertifikat, Pengidentifikasi & Profil**.

1. Di bilah 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 **Pilih jenis**, pilih **Aplikasi**, lalu pilih **Lanjutkan**.

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

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

   1. Di bawah **Awalan ID Aplikasi**, masukkan **ID Bundel**. Catat nilai di bawah **Awalan ID Aplikasi**. Anda akan menggunakan nilai ini setelah memilih Apple sebagai penyedia identitas Anda[Konfigurasikan kumpulan pengguna Anda dengan iDP sosial](#cognito-user-pools-social-idp-step-2).

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

   1. Pada halaman **Masuk dengan Apple: Konfigurasi ID Aplikasi**, pilih untuk mengatur aplikasi sebagai primer atau dikelompokkan dengan Aplikasi lain IDs, lalu pilih **Simpan**.

   1. Pilih **Lanjutkan**.

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

1. Pada halaman **Pengidentifikasi**, 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. Buat catatan dari ID Layanan ini karena Anda akan memerlukan nilai ini setelah Anda memilih Apple sebagai penyedia identitas di [Konfigurasikan kumpulan pengguna Anda dengan iDP sosial](#cognito-user-pools-social-idp-step-2).

   1. Pilih **Lanjutkan**, lalu **Daftar**.

1. Pilih ID Layanan yang baru saja Anda buat dari halaman Pengidentifikasi.

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

   1. Pada halaman **Konfigurasi Otentikasi Web**, pilih ID aplikasi yang Anda buat sebelumnya sebagai **ID Aplikasi Utama**. 

   1. Pilih ikon **\$1** di sebelah **Situs Web URLs**. 

   1. Di bawah **Domain dan subdomain**, masukkan domain kumpulan pengguna Anda tanpa awalan. `https://`

      ```
      mydomain.auth.us-east-1.amazoncognito.com
      ```

   1. Di bawah **Return URLs**, masukkan path ke `/oauth2/idpresponse` endpoint domain pool pengguna Anda.

      ```
      https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
      ```

   1. Pilih **Berikutnya**, dan kemudian **Selesai**. Anda tidak perlu memverifikasi domain.

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

1. Di bilah 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**, masukkan nama kunci. 

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

   1. Pada halaman **Configure Key** dan pilih ID aplikasi yang Anda buat sebelumnya sebagai **ID Aplikasi Utama**. Pilih **Simpan**.

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

1. Pada halaman **Unduh Kunci Anda**, pilih **Unduh** untuk mengunduh kunci pribadi dan catat **ID Kunci** yang ditampilkan, lalu pilih **Selesai**. Anda akan membutuhkan kunci privat ini dan nilai **ID Kunci** yang ditampilkan di halaman ini setelah Anda memilih Apple sebagai penyedia identitas di [Konfigurasikan kumpulan pengguna Anda dengan iDP sosial](#cognito-user-pools-social-idp-step-2).

------

## Konfigurasikan kumpulan pengguna Anda dengan iDP sosial
<a name="cognito-user-pools-social-idp-step-2"></a>

**Untuk mengkonfigurasi kumpulan pengguna sosial iDP dengan Konsol Manajemen AWS**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Pilih **Kolam Pengguna**.

1. Pilih kumpulan pengguna yang ada dari daftar atau buat kumpulan pengguna.

1. Pilih menu **Penyedia sosial dan eksternal**, lalu pilih **Tambahkan penyedia identitas**.

1. Pilih iDP sosial: **Facebook**, **Google**, **Login with Amazon**, atau **Masuk dengan Apple**.

1. Pilih dari langkah-langkah berikut, berdasarkan pilihan IDP sosial Anda:
   + **Google** dan **Login with Amazon** — Masukkan **ID klien aplikasi** **dan rahasia klien aplikasi** yang dihasilkan di bagian sebelumnya.
   + **Facebook** — Masukkan **ID klien aplikasi** dan **rahasia klien aplikasi** yang dihasilkan di bagian sebelumnya, lalu pilih versi API (misalnya, versi 2.12). Kami menyarankan Anda memilih versi terbaru, karena setiap API Facebook memiliki siklus hidup dan tanggal penghentian. Cakupan dan atribut Facebook dapat bervariasi antar versi API. Kami menyarankan Anda menguji login identitas sosial Anda dengan Facebook untuk memastikan bahwa federasi berfungsi sesuai keinginan Anda.
   + **Masuk dengan Apple** — Masukkan **ID Layanan, ID** **Tim, ID** **Kunci**, dan **kunci pribadi** yang dihasilkan di bagian sebelumnya.

1. Masukkan nama **cakupan Resmi** yang ingin Anda gunakan. Cakupan menentukan atribut pengguna (seperti `name` dan `email`) mana yang ingin Anda akses dengan aplikasi Anda. Untuk Facebook, ini harus dipisahkan dengan koma. Untuk Google dan Login with Amazon, mereka harus dipisahkan dengan spasi. Untuk Masuk dengan Apple, pilih kotak centang untuk cakupan yang ingin Anda akses.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/cognito-user-pools-social-idp.html)

   Pengguna aplikasi Anda diminta untuk menyetujui penyediaan atribut ini ke aplikasi Anda. Untuk informasi selengkapnya tentang cakupan penyedia sosial, lihat dokumentasi dari Google, Facebook, Login with Amazon, atau Masuk dengan Apple. 

   Dengan Masuk dengan Apple, berikut ini adalah skenario pengguna di mana cakupan mungkin tidak dikembalikan:
   + Pengguna akhir mengalami kegagalan setelah meninggalkan halaman masuk Apple (bisa dari Kegagalan internal dalam Amazon Cognito atau apa pun yang ditulis oleh pengembang)
   + ID layanan identifier digunakan di seluruh kumpulan pengguna layanan otentikasi and/or lainnya
   + Developer menambahkan cakupan tambahan setelah pengguna akhir masuk sebelumnya (tidak ada informasi baru yang diambil)
   + Developer menghapus pengguna dan kemudian pengguna masuk lagi tanpa menghapus aplikasi dari profil ID Apple mereka

1. Petakan atribut dari iDP Anda ke kumpulan pengguna Anda. Untuk informasi selengkapnya, lihat [Menentukan Pemetaan Atribut Penyedia Identitas untuk Kolam Pengguna Anda](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html).

1. Pilih **Buat**.

1. Dari menu **Klien aplikasi**, pilih klien aplikasi dari daftar. Untuk menambahkan penyedia identitas sosial baru ke klien aplikasi, navigasikan ke tab **Halaman login** dan pilih **Edit** pada **konfigurasi halaman login Terkelola**.

1. Pilih **Simpan perubahan**.

## Uji konfigurasi iDP sosial Anda
<a name="cognito-user-pools-social-idp-step-3"></a>

Dalam aplikasi Anda, Anda harus memanggil browser di klien pengguna sehingga mereka dapat masuk dengan penyedia sosial mereka. Uji login dengan penyedia sosial Anda setelah Anda menyelesaikan prosedur penyiapan di bagian sebelumnya. Contoh URL berikut memuat halaman login untuk kumpulan pengguna Anda dengan domain awalan.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

Tautan ini adalah halaman yang Amazon Cognito arahkan kepada Anda saat Anda membuka menu **Klien aplikasi, pilih klien** aplikasi, arahkan ke tab **Halaman Login, dan pilih **Lihat** halaman login**. Untuk informasi selengkapnya tentang domain kumpulan pengguna, lihat[Mengkonfigurasi domain kumpulan pengguna](cognito-user-pools-assign-domain.md). Untuk informasi selengkapnya tentang klien aplikasi, termasuk klien IDs dan callback URLs, lihat[Pengaturan khusus aplikasi dengan klien aplikasi](user-pool-settings-client-apps.md).

Contoh link berikut mengatur pengalihan diam ke penyedia sosial dari [Otorisasi titik akhir](authorization-endpoint.md) dengan parameter `identity_provider` query. URL ini melewati login kumpulan pengguna interaktif dengan login terkelola dan langsung menuju ke halaman masuk IDP.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=Facebook|Google|LoginWithAmazon|SignInWithApple&response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

# Menggunakan penyedia identitas SAMP dengan kumpulan pengguna
<a name="cognito-user-pools-saml-idp"></a>

[Anda dapat memilih agar pengguna web dan aplikasi seluler masuk melalui penyedia identitas SAMP (IDP) seperti [Microsoft Active Directory Federation Services (ADFS](https://msdn.microsoft.com/en-us/library/bb897402.aspx)), atau Shibboleth.](http://www.shibboleth.net/) Anda harus memilih SAMP iDP yang mendukung standar [SAMP 2.0](http://saml.xml.org/saml-specifications).

Dengan login terkelola, Amazon Cognito mengautentikasi pengguna iDP lokal dan pihak ketiga serta mengeluarkan token web JSON (). JWTs Dengan token yang dikeluarkan Amazon Cognito, Anda dapat menggabungkan beberapa sumber identitas menjadi standar OpenID Connect (OIDC) universal di semua aplikasi Anda. Amazon Cognito dapat memproses pernyataan SAMP dari penyedia pihak ketiga Anda ke dalam standar SSO tersebut. Anda dapat membuat dan mengelola IDP SAMP di Konsol Manajemen AWS, melalui, atau dengan AWS CLI API kumpulan pengguna Amazon Cognito. Untuk membuat IDP SAMP pertama Anda di, lihat Konsol Manajemen AWS. [Menambahkan dan mengelola penyedia identitas SAMP di kumpulan pengguna](cognito-user-pools-managing-saml-idp.md)

![\[Ikhtisar otentikasi dengan login SAMP\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/scenario-authentication-saml.png)


**catatan**  
Federasi dengan login melalui iDP pihak ketiga adalah fitur kumpulan pengguna Amazon Cognito. Kumpulan identitas Amazon Cognito, kadang-kadang disebut identitas federasi Amazon Cognito, adalah implementasi federasi yang harus Anda atur secara terpisah di setiap kumpulan identitas. Kumpulan pengguna dapat menjadi idP pihak ketiga untuk kumpulan identitas. Untuk informasi selengkapnya, lihat [Kolam-kolam identitas Amazon Cognito](cognito-identity.md).

## Referensi cepat untuk konfigurasi iDP
<a name="cognito-user-pools-saml-idp-reference"></a>

Anda harus mengkonfigurasi IDP SAMP Anda untuk menerima permintaan dan mengirim tanggapan ke kumpulan pengguna Anda. Dokumentasi untuk SAMP IDP Anda akan berisi informasi tentang cara menambahkan kumpulan pengguna Anda sebagai pihak yang mengandalkan atau aplikasi untuk IDP SAMP 2.0 Anda. Dokumentasi berikut ini memberikan nilai yang harus Anda berikan untuk URL entitas SP dan ASSERTION CONSUMER SERVICE (ACS).Kumpulan pengguna SAMP nilai referensi cepat

**ID entitas SP**  

```
urn:amazon:cognito:sp:us-east-1_EXAMPLE
```

**URL ACS**  

```
https://Your user pool domain/saml2/idpresponse
```

Anda harus mengonfigurasi kumpulan pengguna Anda untuk mendukung penyedia identitas Anda. Langkah-langkah tingkat tinggi untuk menambahkan IDP SAMP eksternal adalah sebagai berikut.

1. Unduh metadata SAMP dari IDP Anda, atau ambil URL ke titik akhir metadata Anda. Lihat [Mengonfigurasi penyedia identitas SAMP pihak ketiga Anda](cognito-user-pools-integrating-3rd-party-saml-providers.md).

1. Tambahkan iDP baru ke kumpulan pengguna Anda. Unggah metadata SAMP atau berikan URL metadata. Lihat [Menambahkan dan mengelola penyedia identitas SAMP di kumpulan pengguna](cognito-user-pools-managing-saml-idp.md).

1. Tetapkan iDP ke klien aplikasi Anda. Lihat [Pengaturan khusus aplikasi dengan klien aplikasi](user-pool-settings-client-apps.md).

**Topics**
+ [Referensi cepat untuk konfigurasi iDP](#cognito-user-pools-saml-idp-reference)
+ [Hal-hal yang perlu diketahui tentang SAMP IdPs di kumpulan pengguna Amazon Cognito](cognito-user-pools-saml-idp-things-to-know.md)
+ [Sensitivitas kasus nama pengguna SAMP](#saml-nameid-case-sensitivity)
+ [Mengonfigurasi penyedia identitas SAMP pihak ketiga Anda](cognito-user-pools-integrating-3rd-party-saml-providers.md)
+ [Menambahkan dan mengelola penyedia identitas SAMP di kumpulan pengguna](cognito-user-pools-managing-saml-idp.md)
+ [Inisiasi sesi SAMP di kumpulan pengguna Amazon Cognito](cognito-user-pools-SAML-session-initiation.md)
+ [Keluar dari pengguna SAMP dengan single sign-out](cognito-user-pools-saml-idp-sign-out.md)
+ [Penandatanganan dan enkripsi SAMP](cognito-user-pools-SAML-signing-encryption.md)
+ [Nama dan pengenal penyedia identitas SAMP](cognito-user-pools-managing-saml-idp-naming.md)

# Hal-hal yang perlu diketahui tentang SAMP IdPs di kumpulan pengguna Amazon Cognito
<a name="cognito-user-pools-saml-idp-things-to-know"></a>

Implementasi SAMP 2.0 iDP dilengkapi dengan beberapa persyaratan dan batasan. Lihat bagian ini saat Anda menerapkan IDP Anda. Anda juga akan menemukan informasi yang berguna untuk pemecahan masalah kesalahan selama federasi SAMP dengan kumpulan pengguna.

**Amazon Cognito memproses pernyataan SAMP untuk Anda**  
Kumpulan pengguna Amazon Cognito mendukung federasi SAMP 2.0 dengan titik akhir pasca-pengikatan. Ini menghilangkan kebutuhan aplikasi Anda untuk mengambil atau mengurai respons pernyataan SAMP, karena kumpulan pengguna langsung menerima respons SAMP dari IDP Anda melalui agen pengguna. Kolam pengguna Anda bertindak sebagai penyedia layanan (SP) atas nama aplikasi Anda. [Amazon Cognito mendukung SP-initiated dan IDP-initiated single sign-on (SSO) seperti yang dijelaskan di bagian 5.1.2 dan 5.1.4 dari SAMP V2.0 Technical Overview.](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html)

**Memberikan sertifikat penandatanganan IDP yang valid**  
Sertifikat penandatanganan dalam metadata penyedia SAMP Anda tidak boleh kedaluwarsa saat Anda mengonfigurasi IDP SAMP di kumpulan pengguna Anda.

**Kumpulan pengguna mendukung beberapa sertifikat penandatanganan**  
Jika IDP SALL Anda menyertakan lebih dari satu sertifikat penandatanganan dalam metadata SAMP, saat login, kumpulan pengguna Anda menentukan bahwa pernyataan SAMP valid jika cocok dengan sertifikat apa pun dalam metadata SAMP. Setiap sertifikat penandatanganan harus tidak lebih dari 4.096 karakter panjangnya.

**Pertahankan parameter status relai**  
Amazon Cognito dan SAMP IDP Anda menyimpan informasi sesi dengan parameter. `relayState`  

1. Amazon Cognito mendukung `relayState` nilai yang lebih besar dari 80 byte. Sementara spesifikasi SAMP menyatakan bahwa `relayState` nilainya “tidak boleh melebihi 80 byte panjangnya”, praktik industri saat ini sering menyimpang dari perilaku ini. Akibatnya, menolak `relayState` nilai yang lebih besar dari 80 byte akan merusak banyak integrasi penyedia SAMP standar.

1. `relayState`Token adalah referensi buram untuk informasi negara yang dikelola oleh Amazon Cognito. Amazon Cognito tidak menjamin konten parameter. `relayState` Jangan mengurai kontennya sehingga aplikasi Anda bergantung pada hasilnya. Untuk informasi lebih lanjut, lihat [spesifikasi SAMP 2.0](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).

**Identifikasi titik akhir ACS**  
Penyedia identitas SAMP Anda mengharuskan Anda menetapkan titik akhir konsumen pernyataan. IDP Anda mengarahkan pengguna Anda ke titik akhir ini dengan pernyataan SAMP mereka. Konfigurasikan titik akhir berikut di domain kumpulan pengguna Anda untuk pengikatan SAMP 2.0 POST di penyedia identitas SAMP Anda.  

```
https://Your user pool domain/saml2/idpresponse
With an Amazon Cognito domain:
https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse
With a custom domain:
https://auth.example.com/saml2/idpresponse
```
Lihat [Mengkonfigurasi domain kumpulan pengguna](cognito-user-pools-assign-domain.md) untuk informasi selengkapnya tentang domain kumpulan pengguna.

**Tidak ada pernyataan yang diputar ulang**  
Anda tidak dapat mengulangi, atau *memutar ulang*, pernyataan SAMP ke titik akhir Amazon Cognito Anda. `saml2/idpresponse` Pernyataan SAMP yang diputar ulang memiliki ID pernyataan yang menduplikasi ID dari respons IDP sebelumnya.

**ID kumpulan pengguna adalah ID entitas SP**  
Anda harus memberikan IDP Anda dengan ID kumpulan pengguna Anda di penyedia layanan (SP)`urn`, juga disebut *URI audiens* atau ID *entitas SP*. URI audiens untuk kumpulan pengguna Anda memiliki format berikut.  

```
urn:amazon:cognito:sp:us-east-1_EXAMPLE
```
Anda dapat menemukan ID kumpulan pengguna Anda di bawah **Ikhtisar kumpulan pengguna** di konsol [Amazon Cognito](https://console.aws.amazon.com/cognito/home).

**Petakan semua atribut yang diperlukan**  
Konfigurasikan IDP SAMP Anda untuk memberikan nilai untuk atribut apa pun yang Anda tetapkan seperti yang diperlukan dalam kumpulan pengguna Anda. Misalnya, `email` adalah atribut wajib umum untuk kumpulan pengguna. **Sebelum pengguna dapat masuk, pernyataan IDP SAMP Anda harus menyertakan klaim bahwa Anda memetakan ke atribut kumpulan Pengguna.** `email` Untuk informasi selengkapnya tentang pemetaan atribut, lihat[Memetakan atribut iDP ke profil dan token](cognito-user-pools-specifying-attribute-mapping.md).

**Format pernyataan memiliki persyaratan khusus**  
IDP SAMP Anda harus menyertakan klaim berikut dalam pernyataan SAMP.  
+ `NameID`Klaim. Amazon Cognito mengaitkan pernyataan SAMP dengan pengguna tujuan oleh. `NameID` Jika `NameID` berubah, Amazon Cognito menganggap pernyataan tersebut untuk pengguna baru. Atribut yang Anda atur `NameID` dalam konfigurasi IDP Anda harus memiliki nilai persisten. Untuk menetapkan pengguna SAMP ke profil pengguna yang konsisten di kumpulan pengguna Anda, tetapkan `NameID` klaim Anda dari atribut dengan nilai yang tidak berubah.

  ```
  <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:persistent">
    carlos
  </saml2:NameID>
  ```

  A `Format` dalam `NameID` klaim IDP Anda `urn:oasis:names:tc:SAML:1.1:nameid-format:persistent` menunjukkan bahwa IDP Anda melewati nilai yang tidak berubah. Amazon Cognito tidak memerlukan deklarasi format ini, dan menetapkan format jika idP `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` Anda tidak menentukan format klaim. `NameID` Perilaku ini sesuai dengan bagian 2.2.2 *Nama Jenis Kompleks IDType*, dari spesifikasi [SAMP](https://groups.oasis-open.org/higherlogic/ws/public/download/35711/sstc-saml-core-errata-2.0-wd-06-diff.pdf/latest) 2.0.
+ `AudienceRestriction`Klaim dengan `Audience` nilai yang menetapkan ID entitas SP kumpulan pengguna Anda sebagai target respons.

  ```
  <saml:AudienceRestriction>
    <saml:Audience> urn:amazon:cognito:sp:us-east-1_EXAMPLE
  </saml:AudienceRestriction>
  ```
+ Untuk sistem masuk tunggal yang dimulai SP, `Response` elemen dengan `InResponseTo` nilai ID permintaan SAMP asli.

  ```
  <saml2p:Response Destination="https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse" ID="id123" InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" IssueInstant="Date-time stamp" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  ```
**catatan**  
*Pernyataan SAMP yang diprakarsai IDP tidak boleh mengandung nilai.* `InResponseTo`
+ `SubjectConfirmationData`Elemen dengan `Recipient` nilai `saml2/idpresponse` titik akhir kumpulan pengguna Anda dan, untuk SAMP yang diprakarsai SP, `InResponseTo` nilai yang cocok dengan ID permintaan SAMP asli.

  ```
  <saml2:SubjectConfirmationData InResponseTo="_dd0a3436-bc64-4679-a0c2-cb4454f04184" NotOnOrAfter="Date-time stamp" Recipient="https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse"/>
  ```

**Permintaan masuk yang diprakarsai SP**  
Saat [Otorisasi titik akhir](authorization-endpoint.md) mengalihkan pengguna ke halaman masuk IDP, Amazon Cognito menyertakan permintaan *SAMP dalam parameter URL permintaan tersebut*. `HTTP GET` Permintaan SAMP berisi informasi tentang kumpulan pengguna Anda, termasuk titik akhir ACS Anda. Anda dapat secara opsional menerapkan tanda tangan kriptografi untuk permintaan ini.

**Menandatangani permintaan dan mengenkripsi tanggapan**  
Setiap kumpulan pengguna dengan penyedia SAMP menghasilkan key pair asimetris dan *sertifikat penandatanganan* untuk tanda tangan digital yang ditetapkan Amazon Cognito ke permintaan SAMP. Setiap IDP SAMP eksternal yang Anda konfigurasikan untuk mendukung respons SAMP terenkripsi menyebabkan Amazon Cognito menghasilkan *key* pair dan sertifikat enkripsi baru untuk penyedia tersebut. Untuk melihat dan mengunduh sertifikat dengan kunci publik, pilih IDP Anda di menu **penyedia sosial dan eksternal** di konsol Amazon Cognito.  
Untuk membangun kepercayaan dengan permintaan SAMP dari kumpulan pengguna Anda, berikan IDP Anda salinan sertifikat penandatanganan SAMP 2.0 kumpulan pengguna Anda. IDP Anda mungkin mengabaikan permintaan SAMP yang ditandatangani oleh kumpulan pengguna jika Anda tidak mengonfigurasi iDP untuk menerima permintaan yang ditandatangani.  

1. Amazon Cognito menerapkan tanda tangan digital untuk permintaan SAMP yang diteruskan pengguna Anda ke IDP Anda. Kumpulan pengguna Anda menandatangani semua permintaan logout tunggal (SLO), dan Anda dapat mengonfigurasi kumpulan pengguna untuk menandatangani permintaan masuk tunggal (SSO) untuk IDP eksternal SAMP apa pun. Saat Anda memberikan salinan sertifikat, IDP Anda dapat memverifikasi integritas permintaan SAMP pengguna Anda. 

1. IDP SAMP Anda dapat mengenkripsi respons SAMP dengan sertifikat enkripsi. Saat Anda mengonfigurasi iDP dengan enkripsi SAMP, IDP Anda hanya harus mengirim respons terenkripsi.

**Mengkodekan karakter non-alfanumerik**  
Amazon Cognito tidak menerima karakter UTF-8 4-byte seperti atau 😐 yang diberikan IDP 𠮷 Anda sebagai nilai atribut. Anda dapat menyandikan karakter ke Base64, meneruskannya sebagai teks, dan kemudian mendekodekannya di aplikasi Anda.  
Dalam contoh berikut, klaim atribut tidak akan diterima:  

```
<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
  <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">😐</saml2:AttributeValue>
</saml2:Attribute>
```
Berbeda dengan contoh sebelumnya, klaim atribut berikut akan diterima:  

```
<saml2:Attribute Name="Name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
  <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">8J+YkA==</saml2:AttributeValue>
</saml2:Attribute>
```

**Titik akhir metadata harus memiliki keamanan lapisan transportasi yang valid**  
Jika Anda melihat `InvalidParameterException` saat membuat IDP SAMP dengan URL titik akhir metadata HTTPS, misalnya, “Kesalahan mengambil metadata *<metadata endpoint>* dari,” pastikan bahwa titik akhir metadata memiliki SSL yang disiapkan dengan benar dan ada sertifikat SSL yang valid yang terkait dengannya. Untuk informasi selengkapnya tentang memvalidasi sertifikat, lihat [Apa Itu SSL/TLS Sertifikat?](https://aws.amazon.com/what-is/ssl-certificate/) .

**Titik akhir metadata harus pada port TCP standar untuk HTTP atau HTTPS**  
Amazon Cognito hanya menerima metadata URLs untuk penyedia SAMP pada port TCP standar 80 untuk HTTP dan 443 untuk HTTPS. Sebagai praktik keamanan terbaik, host metadata SAMP di URL terenkripsi TLS dengan awalan. `https://` Masukkan metadata URLs dalam format *`http://www.example.com/saml2/metadata.xml`* atau. *`https://www.example.com/saml2/metadata.xml`* Konsol Amazon Cognito hanya menerima metadata URLs dengan awalan. `https://` Anda juga dapat mengkonfigurasi metadata iDP dengan dan. [CreateIdentityProvider[UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Klien aplikasi dengan SAMP yang diprakarsai IDP hanya dapat masuk dengan SAMP**  
Saat Anda mengaktifkan dukungan untuk IDP SAMP 2.0 yang mendukung login yang diprakarsai IDP di klien aplikasi, Anda hanya dapat menambahkan IdPs SAMP 2.0 lain ke klien aplikasi tersebut. Anda dicegah untuk menambahkan direktori pengguna di kumpulan pengguna *dan* semua penyedia identitas eksternal non-SAMP ke klien aplikasi yang dikonfigurasi dengan cara ini.

**Respons logout harus menggunakan pengikatan POST**  
`/saml2/logout`Titik akhir menerima `LogoutResponse` sebagai `HTTP POST` permintaan. Kumpulan pengguna tidak menerima respons logout dengan `HTTP GET` pengikatan.

**Rotasi Sertifikat Penandatanganan Metadata**  
Amazon Cognito menyimpan metadata SAMP hingga enam jam saat Anda memberikan metadata dengan URL. *Saat melakukan rotasi sertifikat penandatanganan metadata apa pun, konfigurasikan sumber metadata Anda untuk menerbitkan sertifikat asli dan baru setidaknya selama enam jam.* Saat Amazon Cognito menyegarkan cache dari URL metadata, ia memperlakukan setiap sertifikat sebagai valid dan IDP SAMP Anda dapat mulai menandatangani pernyataan SAMP dengan sertifikat baru. Setelah periode ini berlalu, Anda dapat menghapus sertifikat asli dari metadata yang diterbitkan.

## Sensitivitas kasus nama pengguna SAMP
<a name="saml-nameid-case-sensitivity"></a>

Saat pengguna federasi mencoba masuk, penyedia identitas SAMP (iDP) meneruskan unik ke Amazon `NameId` Cognito dalam pernyataan SAMP pengguna. Amazon Cognito mengidentifikasi pengguna yang berfederasi SAML dengan klaim mereka. `NameId` Terlepas dari pengaturan sensitivitas kasus kumpulan pengguna Anda, Amazon Cognito mengenali pengguna federasi yang kembali dari IDP SAMP saat mereka meneruskan klaim unik dan peka huruf besar/kecil mereka. `NameId` Jika Anda memetakan atribut yang `email` suka`NameId`, dan pengguna mengubah alamat emailnya, mereka tidak dapat masuk ke aplikasi Anda.

Petakan `NameId` dalam pernyataan SAMP Anda dari atribut IDP yang memiliki nilai yang tidak berubah.

Misalnya, Carlos memiliki profil pengguna di kumpulan pengguna yang tidak peka huruf besar/kecil dari pernyataan SAMP Active Directory Federation Services (ADFS) yang melewati nilai. `NameId` `Carlos@example.com` Lain kali Carlos mencoba masuk, IDP ADFS Anda melewati nilai. `NameId` `carlos@example.com` Karena `NameId` harus sama persis dengan kasus, proses masuk tidak berhasil.

Jika pengguna Anda tidak dapat masuk setelah `NameID` perubahan mereka, hapus profil pengguna mereka dari kumpulan pengguna Anda. Amazon Cognito akan membuat profil pengguna baru saat mereka masuk berikutnya.

**Topics**
+ [Referensi cepat untuk konfigurasi iDP](#cognito-user-pools-saml-idp-reference)
+ [Hal-hal yang perlu diketahui tentang SAMP IdPs di kumpulan pengguna Amazon Cognito](cognito-user-pools-saml-idp-things-to-know.md)
+ [Sensitivitas kasus nama pengguna SAMP](#saml-nameid-case-sensitivity)
+ [Mengonfigurasi penyedia identitas SAMP pihak ketiga Anda](cognito-user-pools-integrating-3rd-party-saml-providers.md)
+ [Menambahkan dan mengelola penyedia identitas SAMP di kumpulan pengguna](cognito-user-pools-managing-saml-idp.md)
+ [Inisiasi sesi SAMP di kumpulan pengguna Amazon Cognito](cognito-user-pools-SAML-session-initiation.md)
+ [Keluar dari pengguna SAMP dengan single sign-out](cognito-user-pools-saml-idp-sign-out.md)
+ [Penandatanganan dan enkripsi SAMP](cognito-user-pools-SAML-signing-encryption.md)
+ [Nama dan pengenal penyedia identitas SAMP](cognito-user-pools-managing-saml-idp-naming.md)

# Mengonfigurasi penyedia identitas SAMP pihak ketiga Anda
<a name="cognito-user-pools-integrating-3rd-party-saml-providers"></a>

Ketika Anda ingin menambahkan penyedia identitas SAMP (iDP) ke kumpulan pengguna Anda, Anda harus membuat beberapa pembaruan konfigurasi di antarmuka manajemen iDP Anda. Bagian ini menjelaskan cara memformat nilai yang harus Anda berikan ke IDP Anda. Anda juga dapat mempelajari cara mengambil dokumen metadata statis atau URL aktif yang mengidentifikasi IDP dan klaim SAMLnya ke kumpulan pengguna Anda.

Untuk mengonfigurasi solusi penyedia identitas SAMP 2.0 (iDP) pihak ketiga agar berfungsi dengan federasi untuk kumpulan pengguna Amazon Cognito, Anda harus mengonfigurasi IDP SAMP untuk mengarahkan ulang ke URL Assertion Consumer Service (ACS) berikut:. `https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse` Jika kumpulan pengguna memiliki domain Amazon Cognito, Anda dapat menemukan jalur domain kumpulan pengguna di menu **Domain** kumpulan pengguna di konsol [Amazon Cognito](https://console.aws.amazon.com/cognito/home).

Beberapa SAMP IdPs mengharuskan Anda memberikan`urn`, juga disebut URI audiens atau ID entitas SP, dalam formulir`urn:amazon:cognito:sp:us-east-1_EXAMPLE`. Anda dapat menemukan ID kumpulan pengguna Anda di bawah **Ikhtisar kumpulan pengguna** di konsol Amazon Cognito.

Anda juga harus mengonfigurasi SAMP IDP Anda untuk memberikan nilai untuk atribut apa pun yang Anda tetapkan *sebagai atribut wajib* di kumpulan pengguna Anda. Biasanya, `email` adalah atribut wajib untuk kumpulan pengguna, dalam hal ini IDP SAMP harus memberikan beberapa bentuk `email` klaim dalam pernyataan SAMP mereka, dan Anda harus memetakan klaim ke atribut untuk penyedia tersebut.

Informasi konfigurasi berikut untuk solusi IDP SAMP 2.0 pihak ketiga adalah tempat yang baik untuk mulai menyiapkan federasi dengan kumpulan pengguna Amazon Cognito. Untuk informasi terbaru, konsultasikan dokumentasi penyedia Anda secara langsung.

Untuk menandatangani permintaan SAMP, Anda harus mengonfigurasi idP Anda untuk mempercayai permintaan yang ditandatangani oleh sertifikat penandatanganan kumpulan pengguna Anda. Untuk menerima respons SAMP terenkripsi, Anda harus mengonfigurasi IDP Anda untuk mengenkripsi *semua* respons SAMP ke kumpulan pengguna Anda. Penyedia Anda akan memiliki dokumentasi tentang mengonfigurasi fitur-fitur ini. Untuk contoh dari Microsoft, lihat [Mengkonfigurasi enkripsi token Microsoft Entra SAMP](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/howto-saml-token-encryption).

**catatan**  
Amazon Cognito hanya memerlukan dokumen metadata penyedia identitas Anda. Penyedia Anda mungkin juga menawarkan informasi konfigurasi khusus untuk federasi SAMP 2.0 dengan IAM atau. AWS IAM Identity Center Untuk mempelajari cara mengatur integrasi Amazon Cognito, cari petunjuk umum untuk mengambil dokumen metadata dan mengelola konfigurasi lainnya di kumpulan pengguna Anda.


| Solusi | Informasi lebih lanjut | 
| --- | --- | 
| ID Microsoft Entra | [Metadata Federasi](https://learn.microsoft.com/en-us/entra/identity-platform/federation-metadata) | 
| Okta | [Cara Mengunduh Metadata iDP dan Sertifikat Penandatanganan SAMP untuk Integrasi Aplikasi SAMP](https://support.okta.com/help/s/article/Location-to-download-Okta-IDP-XML-metadata-for-a-SAML-app-in-the-new-Admin-User-Interface) | 
| Auth0 | [Konfigurasikan Auth0 sebagai Penyedia Identitas SAMP](https://auth0.com/docs/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-identity-provider) | 
| Identitas Ping (PingFederate) | [Mengekspor metadata SAMP dari PingFederate](https://docs.pingidentity.com/integrations/contentful/configuring_single_sign-on/pf_contentful_integration_exporting_saml_metadata_from_pf.html) | 
| JumpCloud | [Catatan Konfigurasi SAMP](https://jumpcloud.com/support/saml-configuration-notes) | 
| SecureAuth | [Integrasi aplikasi SAMP](https://docs.secureauth.com/2104/en/saml-application-integration.html) | 

# Menambahkan dan mengelola penyedia identitas SAMP di kumpulan pengguna
<a name="cognito-user-pools-managing-saml-idp"></a>

Setelah mengonfigurasi penyedia identitas agar bekerja dengan Amazon Cognito, Anda dapat menambahkannya ke kumpulan pengguna dan klien aplikasi. Prosedur berikut menunjukkan cara membuat, memodifikasi, dan menghapus penyedia SAMP di kumpulan pengguna Amazon Cognito.

------
#### [ Konsol Manajemen AWS ]

Anda dapat menggunakan Konsol Manajemen AWS untuk membuat dan menghapus penyedia identitas SAMP (IdPs).

Sebelum Anda membuat IDP SAMP, Anda harus memiliki dokumen metadata SAMP yang Anda dapatkan dari iDP pihak ketiga. Untuk petunjuk tentang cara mendapatkan atau menghasilkan dokumen metadata SAML yang diperlukan, lihat [Mengonfigurasi penyedia identitas SAMP pihak ketiga Anda](cognito-user-pools-integrating-3rd-party-saml-providers.md).

**Untuk mengonfigurasi SAMP 2.0 iDP di kumpulan pengguna Anda**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Pilih **Kolam Pengguna**.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Penyedia sosial dan eksternal**, lalu pilih **Tambahkan penyedia identitas**.

1. Pilih **SAMP iDP**.

1. Masukkan **nama Penyedia**. Anda dapat meneruskan nama ramah ini dalam parameter `identity_provider` permintaan ke file[Otorisasi titik akhir](authorization-endpoint.md).

1. Masukkan **Identifier** dipisahkan dengan koma. Pengidentifikasi memberi tahu Amazon Cognito bahwa ia harus memeriksa alamat email yang dimasukkan pengguna saat mereka masuk, dan kemudian mengarahkannya ke penyedia yang sesuai dengan domain mereka.

1. Pilih **Tambahkan alur keluar** jika Anda ingin Amazon Cognito mengirim permintaan keluar yang ditandatangani ke penyedia Anda saat pengguna keluar. Anda harus mengonfigurasi IDP SAMP 2.0 Anda untuk mengirim respons keluar ke titik akhir yang dibuat saat Anda `https://mydomain.auth.us-east-1.amazoncognito.com/saml2/logout` mengonfigurasi login terkelola. `saml2/logout`Titik akhir menggunakan pengikatan POST.
**catatan**  
Jika opsi ini dipilih dan IDP SALL Anda mengharapkan permintaan logout yang ditandatangani, Anda juga harus memberikan SAMP IDP Anda dengan sertifikat penandatanganan dari kumpulan pengguna Anda.  
SAMP iDP akan memproses permintaan logout yang ditandatangani dan mengeluarkan pengguna Anda dari sesi Amazon Cognito.

1. Pilih konfigurasi login **SAMP yang diprakarsai IDP**. Sebagai praktik keamanan terbaik, pilih **Terima pernyataan SAMP yang diprakarsai SP** saja. Jika Anda telah mempersiapkan lingkungan Anda untuk menerima sesi masuk SAMP yang tidak diminta dengan aman, pilih **Terima** pernyataan SAMP yang diprakarsai SP dan IDP. Untuk informasi selengkapnya, lihat [Inisiasi sesi SAMP di kumpulan pengguna Amazon Cognito](cognito-user-pools-SAML-session-initiation.md).

1. Pilih sumber **dokumen Metadata**. Jika IDP Anda menawarkan metadata SAMP di URL publik, Anda dapat memilih URL **dokumen Metadata** dan memasukkan URL publik tersebut. Jika tidak, pilih **Unggah dokumen metadata** dan pilih file metadata yang Anda unduh dari penyedia Anda sebelumnya.
**catatan**  
Kami menyarankan Anda memasukkan URL dokumen metadata jika penyedia Anda memiliki titik akhir publik alih-alih mengunggah file. Amazon Cognito secara otomatis menyegarkan metadata dari URL metadata. Biasanya, penyegaran metadata terjadi setiap 6 jam atau sebelum metadata kedaluwarsa, mana yang lebih awal.

1. **Petakan atribut antara penyedia SAMP Anda dan kumpulan pengguna Anda** untuk memetakan atribut penyedia SAMP ke profil pengguna di kumpulan pengguna Anda. Sertakan atribut wajib kumpulan pengguna Anda di peta atribut Anda. 

   Misalnya, ketika Anda memilih **atribut User pool**`email`, masukkan nama atribut SAMP seperti yang muncul dalam pernyataan SAMP dari idP Anda. Jika IDP Anda menawarkan contoh pernyataan SAMP, Anda dapat menggunakan pernyataan sampel ini untuk membantu Anda menemukan nama. Beberapa IdPs menggunakan nama sederhana, seperti`email`, sementara yang lain menggunakan nama seperti berikut ini.

   ```
   http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
   ```

1. Pilih **Buat**.

------
#### [ API/CLI ]

Gunakan perintah berikut untuk membuat dan mengelola penyedia identitas SAMP (iDP).

**Untuk membuat iDP dan mengunggah dokumen metadata**
+ AWS CLI: `aws cognito-idp create-identity-provider`

  Contoh dengan file metadata: `aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`

  Di mana `details.json` berisi:

  ```
  "ProviderDetails": { 
        "MetadataFile": "<SAML metadata XML>",
        "IDPSignout" : "true",
        "RequestSigningAlgorithm" : "rsa-sha256",
        "EncryptedResponses" : "true",
        "IDPInit" : "true"
  }
  ```
**catatan**  
Jika *<SAML metadata XML>* berisi instance karakter`"`, Anda harus menambahkan `\` sebagai karakter escape:`\"`.

  Contoh dengan URL metadata: `aws cognito-idp create-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-type SAML --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`
+ AWS API: [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Untuk mengunggah dokumen metadata baru untuk IDP**
+ AWS CLI: `aws cognito-idp update-identity-provider`

  Contoh dengan file metadata: `aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`

  Di mana `details.json` berisi:

  ```
  "ProviderDetails": { 
        "MetadataFile": "<SAML metadata XML>",
        "IDPSignout" : "true",
        "RequestSigningAlgorithm" : "rsa-sha256",
        "EncryptedResponses" : "true",
        "IDPInit" : "true"
  }
  ```
**catatan**  
Jika *<SAML metadata XML>* berisi instance karakter`"`, Anda harus menambahkan `\` sebagai karakter escape:`\"`.

  Contoh dengan URL metadata: `aws cognito-idp update-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1 --provider-details MetadataURL=https://myidp.example.com/sso/saml/metadata --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`
+ AWS API: [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)

**Untuk mendapatkan informasi tentang IDP tertentu**
+ AWS CLI: `aws cognito-idp describe-identity-provider`

  `aws cognito-idp describe-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1`
+ AWS API: [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html)

**Untuk daftar informasi tentang semua IdPs**
+ AWS CLI: `aws cognito-idp list-identity-providers`

  Contoh: `aws cognito-idp list-identity-providers --user-pool-id us-east-1_EXAMPLE --max-results 3`
+ AWS API: [ListIdentityProviders](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListIdentityProviders.html)

**Untuk menghapus IdP**
+ AWS CLI: `aws cognito-idp delete-identity-provider`

  `aws cognito-idp delete-identity-provider --user-pool-id us-east-1_EXAMPLE --provider-name=SAML_provider_1`
+ AWS API: [DeleteIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteIdentityProvider.html)

------

**Untuk menyiapkan IdP SAML untuk menambahkan kolam pengguna sebagai pihak yang mengandalkan**
+ URN penyedia layanan kolam pengguna adalah: `urn:amazon:cognito:sp:us-east-1_EXAMPLE`. Amazon Cognito memerlukan nilai pembatasan audiens yang cocok dengan URN ini dalam respons SAMP. Konfigurasikan IDP Anda untuk menggunakan titik akhir pengikatan POST berikut untuk pesan respons. IdP-to-SP

  ```
  https://mydomain.auth.us-east-1.amazoncognito.com/saml2/idpresponse
  ```
+ IDP SAMP Anda harus `NameID` terisi dan atribut apa pun yang diperlukan untuk kumpulan pengguna Anda dalam pernyataan SAMP. `NameID`digunakan untuk mengidentifikasi pengguna federasi SAMP Anda secara unik di kumpulan pengguna. IDP Anda harus meneruskan ID nama SAMP setiap pengguna dalam format yang konsisten dan peka huruf besar/kecil. Setiap variasi dalam nilai ID nama pengguna membuat profil pengguna baru.

**Untuk memberikan sertifikat penandatanganan ke IDP SAMP 2.0 Anda**
+ ****Untuk mengunduh salinan kunci publik dari Amazon Cognito yang dapat digunakan idP Anda untuk memvalidasi permintaan logout SAMP, pilih menu **penyedia sosial dan eksternal dari kumpulan pengguna Anda, pilih IDP Anda, dan** di bawah Lihat sertifikat penandatanganan, pilih Unduh sebagai.crt.****

Anda dapat menghapus penyedia SAMP apa pun yang telah Anda atur di kumpulan pengguna dengan konsol Amazon Cognito.

**Untuk menghapus penyedia SAML**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Di panel navigasi, pilih **Kumpulan Pengguna**, dan pilih kumpulan pengguna yang ingin Anda edit.

1. Pilih menu **penyedia sosial dan eksternal**.

1. Pilih tombol radio di sebelah SAMP yang ingin IdPs Anda hapus.

1. **Ketika Anda diminta untuk **Hapus penyedia identitas**, masukkan nama penyedia SAMP untuk mengonfirmasi penghapusan, lalu pilih Hapus.**

# Inisiasi sesi SAMP di kumpulan pengguna Amazon Cognito
<a name="cognito-user-pools-SAML-session-initiation"></a>

Amazon Cognito mendukung sistem masuk tunggal (SSO) yang dimulai oleh penyedia layanan (SP-initiated) dan SSO yang diprakarsai oleh IDP. Sebagai praktik keamanan terbaik, terapkan SSO yang diprakarsai SP di kumpulan pengguna Anda. Bagian 5.1.2 dari [Ikhtisar Teknis SAMP V2.0](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html#5.1.2.SP-Initiated%20SSO:%20%20Redirect/POST%20Bindings|outline) menjelaskan SSO yang diprakarsai SP. Amazon Cognito adalah penyedia identitas (iDP) ke aplikasi Anda. Aplikasi ini adalah penyedia layanan (SP) yang mengambil token untuk pengguna yang diautentikasi. Namun, ketika Anda menggunakan IDP pihak ketiga untuk mengautentikasi pengguna, Amazon Cognito adalah SP. Saat pengguna SAMP 2.0 Anda mengautentikasi dengan alur yang dimulai SP, mereka harus selalu membuat permintaan terlebih dahulu ke Amazon Cognito dan mengarahkan ulang ke IDP untuk otentikasi.

Untuk beberapa kasus penggunaan perusahaan, akses ke aplikasi internal dimulai dari bookmark di dasbor yang dihosting oleh iDP perusahaan. Ketika pengguna memilih bookmark, IDP menghasilkan respons SAMP dan mengirimkannya ke SP untuk mengautentikasi pengguna dengan aplikasi.

Anda dapat mengonfigurasi IDP SAMP di kumpulan pengguna Anda untuk mendukung SSO yang diprakarsai IDP. Saat Anda mendukung otentikasi yang diprakarsai oleh IDP, Amazon Cognito tidak dapat memverifikasi bahwa ia telah meminta respons SAMP yang diterimanya karena Amazon Cognito tidak memulai otentikasi dengan permintaan SAMP. Di SSO yang diprakarsai SP, Amazon Cognito menetapkan parameter status yang memvalidasi respons SAMP terhadap permintaan asli. Dengan login yang dimulai SP, Anda juga dapat melindungi dari pemalsuan permintaan lintas situs (CSRF).

**Topics**
+ [Menerapkan masuk SAMP yang diinitasikan SP](#cognito-user-pools-saml-idp-authentication)
+ [Menerapkan login SAMP yang diprakarsai IDP](#cognito-user-pools-SAML-session-initiation-idp-initiation)

## Menerapkan masuk SAMP yang diinitasikan SP
<a name="cognito-user-pools-saml-idp-authentication"></a>

Sebagai praktik terbaik, terapkan login service-provider-initiated (dimulai SP) ke kumpulan pengguna Anda. Amazon Cognito memulai sesi pengguna Anda dan mengarahkannya ke IDP Anda. Dengan metode ini, Anda memiliki kendali terbesar atas siapa yang menyajikan permintaan masuk. Anda juga dapat mengizinkan login yang diprakarsai IDP dalam kondisi tertentu.

Proses berikut menunjukkan cara pengguna menyelesaikan login yang dimulai SP ke kumpulan pengguna Anda melalui penyedia SAMP.

![\[Diagram alir otentikasi dari proses masuk SAMP yang diprakarsai Amazon Cognito SP.\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/scenario-authentication-saml-stepbystep.png)


1. Pengguna Anda memasukkan alamat email mereka di halaman login. Untuk menentukan pengalihan pengguna ke IDP mereka, Anda dapat mengumpulkan alamat email mereka dalam aplikasi yang dibuat khusus atau memanggil login terkelola dalam tampilan web.

   Anda dapat mengonfigurasi halaman login terkelola untuk menampilkan daftar IdPs atau meminta alamat email dan mencocokkannya dengan pengenal IDP SAMP Anda. Untuk meminta alamat email, edit gaya branding login terkelola Anda dan di **Foundation**, cari **perilaku Autentikasi** dan di bawah **tampilan Penyedia**, atur **Gaya tampilan ke input** **pencarian Domain**.

1. Aplikasi Anda memanggil titik akhir pengalihan kumpulan pengguna dan meminta sesi dengan ID klien yang sesuai dengan aplikasi dan ID iDP yang sesuai dengan pengguna.

1. [Amazon Cognito mengalihkan pengguna Anda ke iDP dengan permintaan SAMP, yang ditandatangani secara opsional, dalam elemen.](cognito-user-pools-SAML-signing-encryption.md#cognito-user-pools-SAML-signing.title) `AuthnRequest`

1. IDP mengautentikasi pengguna secara interaktif, atau dengan sesi yang diingat dalam cookie browser.

1. IDP mengarahkan pengguna Anda ke titik akhir respons SAMP kumpulan pengguna Anda dengan pernyataan SAMP yang dienkripsi secara [opsional](cognito-user-pools-SAML-signing-encryption.md#cognito-user-pools-SAML-signing-encryption.title) dalam muatan POST mereka.
**catatan**  
Amazon Cognito membatalkan sesi yang tidak menerima respons dalam waktu 5 menit, dan mengarahkan pengguna ke login terkelola. Ketika pengguna Anda mengalami hasil ini, mereka menerima pesan `Something went wrong` kesalahan.

1. Setelah memverifikasi pernyataan SAMP dan [memetakan atribut pengguna](cognito-user-pools-specifying-attribute-mapping.md#cognito-user-pools-specifying-attribute-mapping.title) dari klaim dalam respons, Amazon Cognito secara internal membuat atau memperbarui profil pengguna di kumpulan pengguna. Biasanya, kumpulan pengguna Anda mengembalikan kode otorisasi ke sesi browser pengguna Anda.

1. Pengguna Anda menampilkan kode otorisasi mereka ke aplikasi Anda, yang menukar kode dengan token web JSON ()JWTs.

1. Aplikasi Anda menerima dan memproses token ID pengguna Anda sebagai autentikasi, menghasilkan permintaan resmi ke sumber daya dengan token aksesnya, dan menyimpan token penyegaran mereka.

Saat pengguna mengautentikasi dan menerima hibah kode otorisasi, kumpulan pengguna mengembalikan ID, akses, dan token penyegaran. Token ID adalah objek otentikasi untuk manajemen identitas berbasis OIDC. Token akses adalah objek otorisasi dengan cakupan [OAuth 2.0](https://oauth.net/2/). Token penyegaran adalah objek yang menghasilkan ID baru dan token akses saat token pengguna Anda saat ini telah kedaluwarsa. Anda dapat mengonfigurasi durasi token pengguna di klien aplikasi kumpulan pengguna Anda.

Anda juga dapat memilih durasi token penyegaran. Setelah token penyegaran pengguna kedaluwarsa, mereka harus masuk lagi. Jika mereka diautentikasi melalui IDP SAMP, durasi sesi pengguna Anda ditentukan oleh kedaluwarsa token mereka, bukan kedaluwarsa sesi mereka dengan IDP mereka. Aplikasi Anda harus menyimpan token penyegaran setiap pengguna dan memperbarui sesi mereka saat kedaluwarsa. Login terkelola mempertahankan sesi pengguna dalam cookie browser yang berlaku selama 1 jam.

## Menerapkan login SAMP yang diprakarsai IDP
<a name="cognito-user-pools-SAML-session-initiation-idp-initiation"></a>

Saat mengonfigurasi penyedia identitas untuk login SAMP 2.0 yang diprakarsai IDP, Anda dapat menampilkan pernyataan SAMP ke `saml2/idpresponse` titik akhir di domain kumpulan pengguna Anda tanpa perlu memulai sesi di. [Otorisasi titik akhir](authorization-endpoint.md) Kumpulan pengguna dengan konfigurasi ini menerima pernyataan SAMP yang diprakarsai IDP dari penyedia identitas eksternal kumpulan pengguna yang didukung oleh klien aplikasi yang diminta.

![\[Diagram alir otentikasi dari proses masuk SAMP yang diprakarsai Amazon Cognito IDP.\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/scenario-authentication-saml-idpinit.png)


1. Pengguna meminta login SAMP dengan aplikasi Anda.

1. Aplikasi Anda memanggil browser atau mengarahkan pengguna ke halaman login untuk penyedia SAMP mereka.

1. IDP mengautentikasi pengguna secara interaktif, atau dengan sesi yang diingat dalam cookie browser.

1. IDP mengarahkan pengguna Anda ke aplikasi Anda dengan pernyataan SAMP, atau respons, di badan POST mereka.

1. Aplikasi Anda menambahkan pernyataan SAMP ke badan POST dari permintaan ke endpoint kumpulan pengguna Anda. `saml2/idpresponse`

1. Amazon Cognito mengeluarkan kode otorisasi kepada pengguna Anda.

1. Pengguna Anda menampilkan kode otorisasi mereka ke aplikasi Anda, yang menukar kode dengan token web JSON ()JWTs.

1. Aplikasi Anda menerima dan memproses token ID pengguna Anda sebagai otentikasi, menghasilkan permintaan resmi ke sumber daya dengan token akses mereka, dan menyimpan token penyegaran mereka.

Langkah-langkah berikut menjelaskan keseluruhan proses untuk mengkonfigurasi dan masuk dengan penyedia SAMP 2.0 yang diprakarsai IDP.

1. Buat atau tentukan kumpulan pengguna dan klien aplikasi.

1. Buat SAMP 2.0 iDP di kumpulan pengguna Anda.

1. Konfigurasikan iDP Anda untuk mendukung inisiasi IDP. SAMP yang diprakarsai IDP memperkenalkan pertimbangan keamanan yang tidak dikenakan oleh penyedia SSO lainnya. Karena itu, Anda tidak dapat menambahkan non-SAMP IdPs, termasuk kumpulan pengguna itu sendiri, ke klien aplikasi apa pun yang menggunakan penyedia SAMP dengan login yang diprakarsai IDP.

1. Kaitkan penyedia SAMP yang diprakarsai IDP dengan klien aplikasi di kumpulan pengguna Anda.

1. Arahkan pengguna Anda ke halaman login untuk IDP SAMP Anda dan ambil pernyataan SAMP.

1. Arahkan pengguna Anda ke `saml2/idpresponse` titik akhir kumpulan pengguna Anda dengan pernyataan SAMP mereka.

1. Menerima token web JSON (JWTs).

Untuk menerima pernyataan SAMP yang tidak diminta di kumpulan pengguna, Anda harus mempertimbangkan pengaruhnya terhadap keamanan aplikasi Anda. Permintaan spoofing dan upaya CSRF mungkin terjadi ketika Anda menerima permintaan yang dimulai IDP. Meskipun kumpulan pengguna Anda tidak dapat memverifikasi sesi masuk yang dimulai IDP, Amazon Cognito memvalidasi parameter permintaan dan pernyataan SAMP Anda.

Selain itu, pernyataan SAMP Anda tidak boleh mengandung `InResponseTo` klaim dan harus dikeluarkan dalam 6 menit sebelumnya.

Anda harus mengirimkan permintaan dengan SAMP yang diprakarsai IDP ke Anda. `/saml2/idpresponse` Untuk permintaan otorisasi login yang dimulai dan dikelola SP, Anda harus menyediakan parameter yang mengidentifikasi klien aplikasi yang diminta, cakupan, URI pengalihan, dan detail lainnya sebagai parameter string kueri dalam permintaan. `HTTP GET` Namun, untuk pernyataan SAMP yang diprakarsai IDP, detail permintaan Anda harus diformat sebagai `RelayState` parameter di badan permintaan. `HTTP POST` Badan permintaan juga harus berisi pernyataan SAMP Anda sebagai parameter. `SAMLResponse`

Berikut ini adalah contoh permintaan dan respons untuk penyedia SAMP yang diprakarsai IDP.

```
POST /saml2/idpresponse HTTP/1.1
User-Agent: USER_AGENT
Accept: */*
Host: example.auth.us-east-1.amazoncognito.com
Content-Type: application/x-www-form-urlencoded

SAMLResponse=[Base64-encoded SAML assertion]&RelayState=identity_provider%3DMySAMLIdP%26client_id%3D1example23456789%26redirect_uri%3Dhttps%3A%2F%2Fwww.example.com%26response_type%3Dcode%26scope%3Demail%2Bopenid%2Bphone

HTTP/1.1 302 Found
Date: Wed, 06 Dec 2023 00:15:29 GMT
Content-Length: 0
x-amz-cognito-request-id: 8aba6eb5-fb54-4bc6-9368-c3878434f0fb
Location: https://www.example.com?code=[Authorization code]
```

------
#### [ Konsol Manajemen AWS ]

**Untuk mengkonfigurasi IDP untuk SAMP yang diprakarsai IDP**

1. Buat [kumpulan pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), [klien aplikasi](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html), dan penyedia identitas SAMP.

1. Putuskan semua penyedia identitas sosial dan OIDC dari klien aplikasi Anda, jika ada yang terkait.

1. Arahkan ke menu **penyedia sosial dan eksternal** dari kumpulan pengguna Anda.

1. Edit atau tambahkan penyedia SAMP.

1. Di bawah **login SAMP yang diprakarsai IDP, pilih Terima pernyataan SAMP** **yang diprakarsai SP** dan dan IDP.

1. Pilih **Simpan perubahan**.

------
#### [ API/CLI ]

**Untuk mengkonfigurasi IDP untuk SAMP yang diprakarsai IDP**

Konfigurasikan SAMP yang diprakarsai IDP dengan `IDPInit` parameter dalam permintaan atau [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)API. [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html) Berikut ini adalah contoh `ProviderDetails` dari IDP yang mendukung IDP yang diprakarsai SAMP.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

------

# Keluar dari pengguna SAMP dengan single sign-out
<a name="cognito-user-pools-saml-idp-sign-out"></a>

Amazon Cognito mendukung [logout tunggal](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.html#5.3.Single%20Logout%20Profile|outline) SAMP 2.0 (SLO. Dengan SLO, aplikasi Anda dapat mengeluarkan pengguna dari penyedia identitas SAMP (IdPs) mereka saat mereka keluar dari kumpulan pengguna Anda. Dengan cara ini, ketika pengguna ingin masuk ke aplikasi Anda lagi, mereka harus mengautentikasi dengan SAMP iDP mereka. Jika tidak, mereka mungkin memiliki cookie browser IDP atau kumpulan pengguna di tempat yang meneruskannya ke aplikasi Anda tanpa persyaratan bahwa mereka memberikan kredensyal.

Saat Anda mengonfigurasi IDP SAMP untuk **mendukung alur Keluar, Amazon Cognito** mengalihkan pengguna Anda dengan permintaan logout SAMP yang ditandatangani ke iDP Anda. Amazon Cognito menentukan lokasi pengalihan dari `SingleLogoutService` URL di metadata iDP Anda. Amazon Cognito menandatangani permintaan keluar dengan sertifikat penandatanganan kumpulan pengguna Anda.

![\[Diagram alir otentikasi dari Amazon Cognito SAMP sign-out. Pengguna meminta keluar dan Amazon Cognito mengalihkan mereka ke penyedia mereka dengan permintaan keluar SAMP.\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/scenario-authentication-saml-sign-out.png)


Saat Anda mengarahkan pengguna dengan sesi SAMP ke `/logout` titik akhir kumpulan pengguna, Amazon Cognito mengalihkan pengguna SAMP Anda dengan permintaan berikut ke titik akhir SLO yang ditentukan dalam metadata iDP.

```
https://[SingleLogoutService endpoint]?
SAMLRequest=[encoded SAML request]&
RelayState=[RelayState]&
SigAlg=http://www.w3.org/2001/04/xmldsig-more#rsa-sha256&
Signature=[User pool RSA signature]
```

Pengguna Anda kemudian kembali ke `saml2/logout` titik akhir Anda dengan a `LogoutResponse` dari IDP mereka. IDP Anda harus mengirimkan `LogoutResponse` permintaan. `HTTP POST` Amazon Cognito kemudian mengarahkan mereka ke tujuan pengalihan dari permintaan keluar awal mereka.

Penyedia SAFL Anda mungkin mengirim `LogoutResponse` dengan lebih dari satu `AuthnStatement` di dalamnya. Yang pertama `sessionIndex` `AuthnStatement` dalam respons jenis ini harus cocok dengan respons SAMP `sessionIndex` yang awalnya mengautentikasi pengguna. Jika `sessionIndex` ada di tempat lain`AuthnStatement`, Amazon Cognito tidak akan mengenali sesi tersebut dan pengguna Anda tidak akan keluar.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengonfigurasi keluar SAMP**

1. Buat [kumpulan pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), [klien aplikasi](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html), dan SAMP iDP.

1. Saat Anda membuat atau mengedit penyedia identitas SAMP Anda, di bawah **Informasi penyedia identitas**, centang kotak dengan judul **Tambahkan alur keluar**.

1. Dari menu **Penyedia sosial dan eksternal** dari kumpulan pengguna Anda, pilih IDP Anda dan temukan sertifikat **Penandatanganan**.

1. Pilih **Unduh sebagai.crt**.

1. Konfigurasikan penyedia SAMP Anda untuk mendukung logout tunggal SAMP dan penandatanganan permintaan, dan unggah sertifikat penandatanganan kumpulan pengguna. IDP Anda harus mengarahkan ulang ke domain kumpulan `/saml2/logout` pengguna Anda.

------
#### [ API/CLI ]

**Untuk mengonfigurasi keluar SAMP**

Konfigurasikan logout tunggal dengan `IDPSignout` parameter permintaan [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)atau [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API. Berikut ini adalah contoh `ProviderDetails` dari iDP yang mendukung SAMP single logout.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",,
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

------

# Penandatanganan dan enkripsi SAMP
<a name="cognito-user-pools-SAML-signing-encryption"></a>

Masuk SAMP 2.0 dibangun di sekitar pengguna aplikasi sebagai pembawa permintaan dan tanggapan dalam alur otentikasi mereka. Anda mungkin ingin memastikan bahwa pengguna tidak membaca atau memodifikasi dokumen SAMP ini dalam perjalanan. Untuk mencapai hal ini, tambahkan penandatanganan dan enkripsi SAMP ke penyedia identitas SAMP (IdPs) di kumpulan pengguna Anda. Dengan penandatanganan SAMP, kumpulan pengguna Anda menambahkan tanda tangan ke permintaan masuk dan keluar SAMP. Dengan kunci publik kumpulan pengguna Anda, IDP Anda dapat memverifikasi bahwa IDP menerima permintaan SAMP yang tidak dimodifikasi. Kemudian, ketika idP Anda merespons dan meneruskan pernyataan SAMP ke sesi browser pengguna, iDP dapat mengenkripsi respons itu sehingga pengguna tidak dapat memeriksa atribut dan hak mereka sendiri.

Dengan penandatanganan dan enkripsi SAMP, semua operasi kriptografi selama operasi SAMP kumpulan pengguna harus menghasilkan tanda tangan dan ciphertext dengan kunci user-pool-provided yang dihasilkan Amazon Cognito. Saat ini, Anda tidak dapat mengonfigurasi kumpulan pengguna untuk menandatangani permintaan atau menerima pernyataan terenkripsi dengan kunci eksternal.

**catatan**  
Sertifikat kumpulan pengguna Anda berlaku selama 10 tahun. Sekali setahun, Amazon Cognito menghasilkan sertifikat penandatanganan dan enkripsi baru untuk kumpulan pengguna Anda. Amazon Cognito mengembalikan sertifikat terbaru saat Anda meminta sertifikat penandatanganan, dan menandatangani permintaan dengan sertifikat penandatanganan terbaru. IDP Anda dapat mengenkripsi pernyataan SAMP dengan sertifikat enkripsi kumpulan pengguna yang tidak kedaluwarsa. Sertifikat Anda sebelumnya tetap berlaku selama durasi dan kunci publik tidak berubah di antara sertifikat. Sebagai praktik terbaik, perbarui sertifikat dalam konfigurasi penyedia Anda setiap tahun.

**Topics**
+ [Menerima tanggapan SAMP terenkripsi dari IDP Anda](#cognito-user-pools-SAML-encryption)
+ [Menandatangani permintaan SAMP](#cognito-user-pools-SAML-signing)

## Menerima tanggapan SAMP terenkripsi dari IDP Anda
<a name="cognito-user-pools-SAML-encryption"></a>

Amazon Cognito dan IDP Anda dapat menetapkan kerahasiaan dalam respons SAMP saat pengguna masuk dan keluar. Amazon Cognito menetapkan key pair RSA publik-pribadi dan sertifikat ke setiap penyedia SAMP eksternal yang Anda konfigurasikan di kumpulan pengguna. Saat mengaktifkan enkripsi respons untuk penyedia SAMP kumpulan pengguna, Anda harus mengunggah sertifikat ke iDP yang mendukung respons SAMP terenkripsi. Koneksi kumpulan pengguna Anda ke SAMP iDP Anda tidak berfungsi sebelum iDP Anda mulai mengenkripsi semua pernyataan SAMP dengan kunci yang disediakan.

Berikut ini adalah ikhtisar aliran masuk SAMP terenkripsi.

1. Pengguna Anda mulai masuk dan memilih SAMP iDP mereka.

1. Kumpulan pengguna Anda [Otorisasi titik akhir](authorization-endpoint.md) mengarahkan pengguna Anda ke IDP SAMP mereka dengan permintaan masuk SAMP. Kumpulan pengguna Anda dapat secara opsional menyertai permintaan ini dengan tanda tangan yang memungkinkan verifikasi integritas oleh iDP. Ketika Anda ingin menandatangani permintaan SAMP, Anda harus mengonfigurasi IDP Anda untuk menerima permintaan yang telah ditandatangani oleh kumpulan pengguna Anda dengan kunci publik dalam sertifikat penandatanganan.

1. IDP SAMP masuk ke pengguna Anda dan menghasilkan respons SAMP. IDP mengenkripsi respons dengan kunci publik dan mengarahkan pengguna Anda ke titik akhir kumpulan pengguna Anda. `/saml2/idpresponse` IdP harus mengenkripsi respons seperti yang didefinisikan oleh spesifikasi SAMP 2.0. Untuk informasi lebih lanjut, lihat `Element <EncryptedAssertion>` di Pernyataan [dan Protokol untuk OASIS Security Assertion Markup](https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf) Language (SAMP) V2.0.

1. Kumpulan pengguna Anda mendekripsi ciphertext dalam respons SAMP dengan kunci pribadi dan tanda di pengguna Anda.

**penting**  
Saat Anda mengaktifkan enkripsi respons untuk IDP SAMP di kumpulan pengguna, iDP Anda harus mengenkripsi semua respons dengan kunci publik yang khusus untuk penyedia. Amazon Cognito tidak menerima respons SAMP yang tidak terenkripsi dari IDP eksternal SAMP yang Anda konfigurasikan untuk mendukung enkripsi. 

Setiap IDP SAMP eksternal di kumpulan pengguna Anda dapat mendukung enkripsi respons, dan setiap idP menerima key pair sendiri.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengkonfigurasi enkripsi respons SAMP**

1. Buat [kumpulan pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), [klien aplikasi](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html), dan SAMP iDP.

1. Saat Anda membuat atau mengedit penyedia identitas SAMP Anda, di bawah **Menandatangani permintaan dan mengenkripsi tanggapan**, centang kotak dengan judul **Memerlukan pernyataan SAMP terenkripsi dari** penyedia ini.

1. Dari menu **penyedia sosial dan eksternal** dari kumpulan pengguna Anda, pilih IDP SAMP Anda dan **pilih Lihat** sertifikat enkripsi.

1. Pilih **Unduh sebagai.crt** dan berikan file yang diunduh ke SAMP IDP Anda. Konfigurasikan IDP SAMP Anda untuk mengenkripsi respons SAMP dengan kunci dalam sertifikat.

------
#### [ API/CLI ]

**Untuk mengkonfigurasi enkripsi respons SAMP**

Konfigurasikan enkripsi respons dengan `EncryptedResponses` parameter permintaan [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)atau [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API. Berikut ini adalah contoh IDP `ProviderDetails` yang mendukung penandatanganan permintaan.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

Untuk mendapatkan sertifikat enkripsi dari kumpulan pengguna Anda, buat permintaan [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html)API dan ambil nilai `ActiveEncryptionCertificate` dalam parameter `ProviderDetails` respons. Simpan sertifikat ini dan berikan ke IDP Anda sebagai sertifikat enkripsi untuk permintaan masuk dari kumpulan pengguna Anda.

------

## Menandatangani permintaan SAMP
<a name="cognito-user-pools-SAML-signing"></a>

Kemampuan untuk membuktikan integritas permintaan SAMP 2.0 ke IDP Anda adalah keuntungan keamanan dari login SAMP yang diprakarsai Amazon Cognito SP. Setiap kumpulan pengguna dengan domain menerima sertifikat penandatanganan kumpulan pengguna X.509. Dengan kunci publik dalam sertifikat ini, kumpulan pengguna menerapkan tanda tangan kriptografi ke *permintaan keluar yang* dihasilkan oleh kumpulan pengguna Anda saat pengguna memilih IDP SAMP. Anda dapat mengonfigurasi klien aplikasi secara opsional untuk menandatangani permintaan *masuk* SAMP. Saat Anda menandatangani permintaan SAMP, IDP Anda dapat memeriksa apakah tanda tangan dalam metadata XHTML permintaan Anda cocok dengan kunci publik dalam sertifikat kumpulan pengguna yang Anda berikan.

------
#### [ Konsol Manajemen AWS ]

**Untuk mengonfigurasi penandatanganan permintaan SAMP**

1. Buat [kumpulan pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html), [klien aplikasi](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-app-integration.html), dan SAMP iDP.

1. Saat Anda membuat atau mengedit penyedia identitas SAMP Anda, di bawah **Menandatangani permintaan dan mengenkripsi tanggapan**, centang kotak dengan judul **Tanda tangani permintaan SAMP ke** penyedia ini.

1. Dari menu **Penyedia sosial dan eksternal** kumpulan pengguna Anda, pilih **Lihat sertifikat penandatanganan**.

1. Pilih **Unduh sebagai.crt** dan berikan file yang diunduh ke SAMP IDP Anda. Konfigurasikan IDP SAMP Anda untuk memverifikasi tanda tangan permintaan SAMP yang masuk.

------
#### [ API/CLI ]

**Untuk mengonfigurasi penandatanganan permintaan SAMP**

Konfigurasikan penandatanganan permintaan dengan `RequestSigningAlgorithm` parameter permintaan [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)atau [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)API. Berikut ini adalah contoh IDP `ProviderDetails` yang mendukung penandatanganan permintaan.

```
"ProviderDetails": { 
      "MetadataURL" : "https://myidp.example.com/saml/metadata",
      "IDPSignout" : "true",
      "RequestSigningAlgorithm" : "rsa-sha256",
      "EncryptedResponses" : "true",
      "IDPInit" : "true"
}
```

------

# Nama dan pengenal penyedia identitas SAMP
<a name="cognito-user-pools-managing-saml-idp-naming"></a>

Saat Anda memberi nama penyedia identitas SAMP (IdPs) dan menetapkan pengidentifikasi IDP, Anda dapat mengotomatiskan alur permintaan masuk dan keluar yang dimulai SP ke penyedia tersebut. Untuk informasi tentang batasan string ke nama penyedia, lihat properti. `ProviderName` [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#CognitoUserPools-CreateIdentityProvider-request-ProviderName)

![\[Diagram alir otentikasi login SAMP yang diprakarsai Amazon Cognito SP dengan pengenal IDP dan login terkelola. Pengguna memberikan alamat email untuk login terkelola dan Amazon Cognito secara otomatis mengalihkan mereka ke penyedia mereka.\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/scenario-authentication-saml-identifier.png)


Anda juga dapat memilih hingga 50 pengidentifikasi untuk penyedia SAMP Anda. Pengenal adalah nama yang ramah untuk IDP di kumpulan pengguna Anda, dan harus unik di dalam kumpulan pengguna. Jika pengidentifikasi SAMP Anda cocok dengan domain email pengguna Anda, login terkelola meminta alamat email setiap pengguna, mengevaluasi domain di alamat email mereka, dan mengarahkannya ke iDP yang sesuai dengan domain mereka. Karena organisasi yang sama dapat memiliki beberapa domain, satu iDP dapat memiliki beberapa pengidentifikasi.

Baik Anda menggunakan atau tidak menggunakan pengenal email-domain, Anda dapat menggunakan pengenal di aplikasi multi-penyewa untuk mengarahkan pengguna ke IDP yang benar. Ketika Anda ingin melewati login terkelola sepenuhnya, Anda dapat menyesuaikan tautan yang Anda sajikan kepada pengguna sehingga mereka mengarahkan [Otorisasi titik akhir](authorization-endpoint.md) langsung ke IDP mereka. Untuk masuk ke pengguna Anda dengan pengenal dan mengarahkan ulang ke IDP mereka, sertakan pengenal dalam format `idp_identifier=myidp.example.com` dalam parameter permintaan permintaan otorisasi awal mereka.

Metode lain untuk meneruskan pengguna ke IDP Anda adalah untuk mengisi parameter `identity_provider` dengan nama iDP Anda dalam format URL berikut.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?
response_type=code&
identity_provider=MySAMLIdP&
client_id=1example23456789&
redirect_uri=https://www.example.com
```

Setelah pengguna masuk dengan SAMP iDP Anda, iDP Anda mengarahkan mereka dengan respons SAMP di badan ke titik akhir Anda. `HTTP POST` `/saml2/idpresponse` Amazon Cognito memproses pernyataan SAMP dan, jika klaim dalam respons memenuhi harapan, mengalihkan ke URL panggilan balik klien aplikasi Anda. Setelah pengguna Anda menyelesaikan autentikasi dengan cara ini, mereka berinteraksi dengan halaman web hanya untuk IDP dan aplikasi Anda.

Dengan pengidentifikasi iDP dalam format domain, login terkelola meminta alamat email saat masuk dan kemudian, ketika domain email cocok dengan pengenal IDP, mengarahkan pengguna ke halaman masuk untuk IDP mereka. Misalnya, Anda membuat aplikasi yang memerlukan login oleh karyawan dari dua perusahaan yang berbeda. Perusahaan pertama, AnyCompany A, memiliki `exampleA.com` dan`exampleA.co.uk`. Perusahaan kedua, AnyCompany B, memiliki. `exampleB.com` Untuk contoh ini, Anda telah menyiapkan dua IdPs, satu untuk setiap perusahaan, sebagai berikut: 
+ Untuk iDP A, Anda menentukan pengidentifikasi `exampleA.com` dan. `exampleA.co.uk`
+ Untuk iDP B, Anda mendefinisikan identifier. `exampleB.com`

Di aplikasi Anda, panggil login terkelola untuk klien aplikasi Anda untuk meminta setiap pengguna memasukkan alamat email mereka. Amazon Cognito memperoleh domain dari alamat email, menghubungkan domain ke iDP dengan pengenal domain, dan mengarahkan pengguna Anda ke IDP yang benar dengan permintaan ke yang berisi parameter permintaan. [Otorisasi titik akhir](authorization-endpoint.md) `idp_identifier` Misalnya, jika pengguna masuk`bob@exampleA.co.uk`, halaman berikutnya yang berinteraksi dengan mereka adalah halaman masuk IDP di. `https://auth.exampleA.co.uk/sso/saml`

Anda juga dapat menerapkan logika yang sama secara independen. Di aplikasi Anda, Anda dapat membuat formulir kustom yang mengumpulkan input pengguna dan menghubungkannya dengan iDP yang benar sesuai dengan logika Anda sendiri. Anda dapat membuat portal kustom untuk setiap penyewa aplikasi Anda, di mana setiap link ke titik akhir otorisasi dengan pengenal penyewa dalam parameter permintaan.

Untuk mengumpulkan alamat email dan mengurai domain dalam login terkelola, tetapkan setidaknya satu pengenal ke setiap IDP SAMP yang telah ditetapkan ke klien aplikasi Anda. Secara default, layar login terkelola menampilkan tombol untuk setiap tombol IdPs yang telah Anda tetapkan ke klien aplikasi Anda. Namun, jika Anda berhasil menetapkan pengenal, halaman login UI yang dihosting klasik terlihat seperti gambar berikut.

![\[Halaman masuk masuk terkelola Amazon Cognito yang menampilkan login pengguna lokal dan prompt bagi pengguna gabungan untuk memasukkan alamat email.\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/cup-saml-identifiers.png)


**catatan**  
Di UI yang dihosting klasik, halaman login untuk klien aplikasi Anda secara otomatis meminta alamat email saat Anda menetapkan pengenal ke ID Anda. IdPs Dalam pengalaman login terkelola, Anda harus mengaktifkan perilaku ini di editor branding. Dalam kategori Pengaturan **perilaku otentikasi**, pilih **Input pencarian domain** di bawah judul **Tampilan penyedia**.

Penguraian domain dalam login terkelola mengharuskan Anda menggunakan domain sebagai pengidentifikasi IDP Anda. Jika Anda menetapkan pengenal jenis apa pun ke masing-masing SAMP untuk klien aplikasi, login terkelola IdPs untuk aplikasi tersebut tidak lagi menampilkan tombol pemilihan IDP. Tambahkan pengidentifikasi IDP untuk SAMP saat Anda bermaksud menggunakan penguraian email atau logika khusus untuk menghasilkan pengalihan. Bila Anda ingin menghasilkan pengalihan diam dan juga ingin halaman login terkelola Anda menampilkan daftar IdPs, jangan tetapkan pengenal dan gunakan parameter `identity_provider` permintaan dalam permintaan otorisasi Anda.
+ Jika Anda menetapkan hanya satu IDP SAMP ke klien aplikasi Anda, halaman login login terkelola akan menampilkan tombol untuk masuk dengan iDP tersebut.
+ Jika Anda menetapkan pengenal ke setiap IDP SAMP yang Anda aktifkan untuk klien aplikasi, prompt input pengguna untuk alamat email akan muncul di halaman login login terkelola.
+ Jika Anda memiliki beberapa IdPs dan Anda tidak menetapkan pengenal untuk semuanya, halaman login login terkelola menampilkan tombol untuk masuk dengan setiap IDP yang ditetapkan.
+ Jika Anda menetapkan pengenal IdPs dan ingin halaman login terkelola menampilkan pilihan tombol iDP, tambahkan iDP baru yang tidak memiliki pengenal ke klien aplikasi Anda, atau buat klien aplikasi baru. Anda juga dapat menghapus IDP yang ada dan menambahkannya lagi tanpa pengenal. Jika Anda membuat iDP baru, pengguna SAMP Anda akan membuat profil pengguna baru. Duplikasi pengguna aktif ini mungkin memiliki dampak penagihan di bulan saat Anda mengubah konfigurasi iDP.

Untuk informasi lebih lanjut tentang penyiapan IdP, lihat [Mengkonfigurasi penyedia identitas untuk kumpulan pengguna Anda](cognito-user-pools-identity-provider.md).

# Menggunakan penyedia identitas OIDC dengan kumpulan pengguna
<a name="cognito-user-pools-oidc-idp"></a>

Pengguna dapat masuk ke aplikasi Anda menggunakan akun mereka yang ada dari penyedia identitas OpenID Connect (OIDC) (). IdPs Dengan penyedia OIDC, pengguna sistem masuk tunggal independen dapat memberikan kredensyal yang ada saat aplikasi Anda menerima token OIDC dalam format bersama kumpulan pengguna. Untuk mengonfigurasi IdP OIDC, siapkan iDP Anda untuk menangani kumpulan pengguna Anda sebagai RP dan konfigurasikan aplikasi Anda untuk menangani kumpulan pengguna Anda sebagai iDP. Amazon Cognito berfungsi sebagai langkah perantara antara beberapa OIDC IdPs dan aplikasi Anda. Kumpulan pengguna Anda menerapkan aturan pemetaan atribut ke klaim di ID dan token akses yang diteruskan penyedia Anda langsung ke kumpulan pengguna Anda. [Amazon Cognito kemudian mengeluarkan token baru berdasarkan atribut pengguna yang dipetakan dan penyesuaian tambahan apa pun yang Anda buat pada alur otentikasi dengan pemicu Lambda.](cognito-user-pools-working-with-lambda-triggers.md#lambda-triggers-for-federated-users)

Pengguna yang masuk dengan OIDC iDP tidak diharuskan memberikan kredensi atau informasi baru untuk mengakses aplikasi kumpulan pengguna Anda. Aplikasi Anda dapat secara diam-diam mengarahkan mereka ke IDP mereka untuk login, dengan kumpulan pengguna sebagai alat di latar belakang yang menstandarisasi format token untuk aplikasi Anda. Untuk mempelajari lebih lanjut tentang pengalihan iDP, lihat. [Otorisasi titik akhir](authorization-endpoint.md)

Seperti penyedia identitas pihak ketiga lainnya, Anda harus mendaftarkan aplikasi Anda ke penyedia OIDC dan mendapatkan informasi tentang aplikasi IDP yang ingin Anda sambungkan ke kumpulan pengguna Anda. Kumpulan pengguna OIDC iDP memerlukan ID klien, rahasia klien, cakupan yang ingin Anda minta, dan informasi tentang titik akhir layanan penyedia. Kumpulan pengguna Anda dapat menemukan titik akhir OIDC penyedia dari titik akhir penemuan atau Anda dapat memasukkannya secara manual. Anda juga harus memeriksa token ID penyedia dan membuat pemetaan atribut antara iDP dan atribut di kumpulan pengguna Anda.

![\[Alur autentikasi IdP OIDC kolam pengguna\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/flow-cup-oidc-endpoints.png)


Lihat [Aliran otentikasi IDP kumpulan pengguna OIDC](cognito-user-pools-oidc-flow.md) untuk detail selengkapnya tentang alur autentikasi ini.

**catatan**  
Masuk melalui pihak ketiga (federasi) tersedia di kolam pengguna Amazon Cognito. Fitur ini independen dari federasi OIDC dengan kumpulan identitas Amazon Cognito.

Anda dapat menambahkan IdP OIDC ke kumpulan pengguna Anda di Konsol Manajemen AWS, melalui AWS CLI, atau dengan metode API kumpulan pengguna. [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Topics**
+ [Prasyarat](#cognito-user-pools-oidc-idp-prerequisites)
+ [Daftarkan aplikasi dengan IDP OIDC](#cognito-user-pools-oidc-idp-step-1)
+ [Tambahkan IdP OIDC ke kumpulan pengguna Anda](#cognito-user-pools-oidc-idp-step-2)
+ [Uji konfigurasi IDP OIDC Anda](#cognito-user-pools-oidc-idp-step-3)
+ [Aliran otentikasi IDP kumpulan pengguna OIDC](cognito-user-pools-oidc-flow.md)

## Prasyarat
<a name="cognito-user-pools-oidc-idp-prerequisites"></a>

Sebelum memulai, Anda perlu melakukan hal berikut:
+ Kumpulan pengguna dengan klien aplikasi dan domain kumpulan pengguna. Untuk informasi selengkapnya, lihat [Membuat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).
+ IdP OIDC dengan konfigurasi berikut: 
  + Mendukung otentikasi `client_secret_post` klien. Amazon Cognito tidak memeriksa `token_endpoint_auth_methods_supported` klaim di titik akhir penemuan OIDC untuk IDP Anda. Amazon Cognito tidak mendukung otentikasi `client_secret_basic` klien. Untuk informasi selengkapnya tentang otentikasi klien, lihat [Otentikasi Klien di dokumentasi](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication) OpenID Connect.
  + Hanya menggunakan HTTPS untuk endpoint OIDC seperti`openid_configuration`,, `userInfo` dan. `jwks_uri`
  + Hanya menggunakan port TCP 80 dan 443 untuk titik akhir OIDC.
  + Hanya menandatangani token ID dengan algoritma HMAC-SHA, ECDSA, atau RSA.
  + Menerbitkan `kid` klaim ID kunci di dalamnya `jwks_uri` dan menyertakan `kid` klaim dalam tokennya.
  + Menyajikan kunci publik yang tidak kedaluwarsa dengan rantai kepercayaan CA root yang valid.

## Daftarkan aplikasi dengan IDP OIDC
<a name="cognito-user-pools-oidc-idp-step-1"></a>

Sebelum menambahkan OIDC iDP ke konfigurasi kumpulan pengguna dan menetapkannya ke klien aplikasi, Anda menyiapkan aplikasi klien OIDC di iDP Anda. Kumpulan pengguna Anda adalah aplikasi relying-party yang akan mengelola otentikasi dengan IDP Anda.

**Untuk mendaftar dengan IdP OIDC**

1. Buat akun developer dengan IdP OIDC.  
**Tautan ke OIDC IdPs**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/cognito-user-pools-oidc-idp.html)

1. Daftarkan URL domain pool pengguna Anda dengan `/oauth2/idpresponse` endpoint dengan IDP OIDC Anda. Hal ini memastikan bahwa IdP OIDC nanti menerimanya dari Amazon Cognito ketika mengautentikasi pengguna.

   ```
   https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
   ```

1. Pilih [cakupan](cognito-user-pools-define-resource-servers.md#cognito-user-pools-define-resource-servers-about-scopes) yang ingin dibagikan direktori pengguna dengan kumpulan pengguna Anda. Ruang lingkup **openid** diperlukan untuk OIDC IdPs untuk menawarkan informasi pengguna apa pun. Ruang `email` lingkup diperlukan untuk memberikan akses ke `email` dan `email_verified` [klaim](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims). Cakupan tambahan dalam spesifikasi OIDC adalah `profile` untuk semua atribut pengguna dan untuk dan`phone`. `phone_number` `phone_number_verified`

1. IdP OIDC memberi Anda ID klien dan rahasia klien. Perhatikan nilai-nilai ini dan tambahkan ke konfigurasi OIDC iDP yang Anda tambahkan ke kumpulan pengguna Anda nanti.

**Contoh: Gunakan Salesforce sebagai IdP OIDC dengan kolam pengguna Anda**

 Anda menggunakan IdP OIDC ketika Anda ingin membangun kepercayaan antara IDP yang kompatibel dengan OIDC seperti Salesforce dan kumpulan pengguna Anda.

1. [Buat akun](https://developer.salesforce.com/signup) di situs web Developer Salesforce.

1. [Masuk](https://developer.salesforce.com) melalui akun developer yang Anda siapkan di langkah sebelumnya.

1. Dari halaman Salesforce Anda, lakukan salah satu hal berikut:
   +  Jika Anda menggunakan Lightning Experience, pilih ikon setup gear, lalu pilih **Setup Home**.
   +  Jika Anda menggunakan Salesforce Classic dan Anda melihat **Penyiapan** di header antarmuka pengguna, pilih itu.
   +  Jika Anda menggunakan Salesforce Classic dan Anda tidak melihat **Penyiapan** di header, pilih nama Anda dari bilah navigasi atas, lalu pilih **Penyiapan** dari daftar tarik-turun.

1. Di bilah navigasi kiri, pilih **Pengaturan Perusahaan**. 

1. Pada bilah navigasi, pilih **Domain**, masukkan domain, dan pilih **Buat**. 

1. Di bilah navigasi kiri, di bawah **Alat Platform**, pilih **Aplikasi**. 

1. Pilih **Pengelola Aplikasi**.

1. 

   1. Pilih **Aplikasi baru yang terhubung**.

   1. Lengkapi bidang yang diperlukan.

      Di bawah **URL Mulai**, masukkan URL di `/authorize` titik akhir untuk domain kumpulan pengguna yang masuk dengan IDP Salesforce Anda. Saat pengguna mengakses aplikasi yang terhubung, Salesforce mengarahkan mereka ke URL ini untuk menyelesaikan proses masuk. Kemudian Salesforce mengarahkan pengguna ke URL callback yang telah Anda kaitkan dengan klien aplikasi Anda.

      ```
      https://mydomain.auth.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
      ```

   1. Aktifkan **OAuth pengaturan** dan masukkan URL `/oauth2/idpresponse` titik akhir untuk domain kumpulan pengguna Anda di URL **Callback**. Ini adalah URL tempat Salesforce mengeluarkan kode otorisasi yang ditukar Amazon Cognito dengan token. OAuth 

      ```
      https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
      ```

1. Pilih [cakupan](https://openid.net/specs/openid-connect-basic-1_0.html#Scopes) Anda. Anda harus menyertakan **openid** lingkup. **Untuk memberikan akses ke **email** dan [klaim](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) **email\$1verified**, tambahkan cakupan email.** Pisahkan cakupan berdasarkan spasi.

1. Pilih **Buat**.

   Dalam Salesforce, ID klien disebut **Kunci Konsumen**, dan rahasia klien adalah **Rahasia Konsumen**. Perhatikan ID klien dan rahasia klien Anda. Anda akan menggunakannya di bagian selanjutnya.

## Tambahkan IdP OIDC ke kumpulan pengguna Anda
<a name="cognito-user-pools-oidc-idp-step-2"></a>

Setelah mengatur IDP, Anda dapat mengonfigurasi kumpulan pengguna untuk menangani permintaan autentikasi dengan OIDC iDP.

------
#### [ Amazon Cognito console ]

**Tambahkan OIDC iDP di konsol**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Pilih **User Pools** dari menu navigasi.

1. Pilih kolam pengguna yang ada dari daftar, atau [buat kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Pilih menu **Penyedia sosial dan eksternal**, lalu pilih **Tambahkan penyedia identitas**.

1. Pilih **OpenID Connect IDP**.

1. Masukkan **nama Penyedia** yang unik.

1. Masukkan ID **Klien** IDP. Ini adalah ID klien aplikasi yang Anda buat di OIDC iDP Anda. ID klien yang Anda berikan haruslah penyedia OIDC yang telah Anda konfigurasi dengan url callback. `https://[your user pool domain]/oauth2/idpresponse`

1. Masukkan rahasia **Klien** IDP. Ini harus menjadi rahasia klien untuk klien aplikasi yang sama dari langkah sebelumnya.

1. <a name="cognito-user-pools-oidc-step-2-substep-9"></a>Masukkan **cakupan resmi** untuk penyedia ini. Cakupan menentukan grup atribut pengguna mana (seperti `name` dan`email`) yang akan diminta aplikasi Anda dari penyedia Anda. Lingkup harus dipisahkan oleh spasi, mengikuti spesifikasi [OAuth2.0](https://tools.ietf.org/html/rfc6749#section-3.3).

   IDP Anda mungkin meminta pengguna untuk menyetujui pemberian atribut ini ke aplikasi Anda saat mereka masuk.

1. Pilih **metode permintaan Atribut**. IdPsmungkin mengharuskan permintaan ke `userInfo` titik akhir mereka diformat sebagai salah satu atau`GET`. `POST` `userInfo`Titik akhir Amazon Cognito memerlukan `HTTP GET` permintaan, misalnya.

1. Pilih **metode Pengaturan** untuk cara yang Anda inginkan kumpulan pengguna Anda untuk menentukan jalur ke titik akhir OIDC-Federation kunci di IDP Anda. Biasanya, IdPs host `/well-known/openid-configuration` endpoint di URL basis penerbit. Jika hal ini terjadi pada penyedia Anda, opsi **Isi otomatis melalui URL penerbit** meminta Anda untuk URL dasar itu, mencoba mengakses `/well-known/openid-configuration` jalur dari sana, dan membaca titik akhir yang tercantum di sana. Anda mungkin memiliki jalur titik akhir non-tipikal atau ingin meneruskan permintaan ke satu atau beberapa titik akhir melalui proxy alternatif. Dalam hal ini, pilih **Input manual** dan tentukan jalur untuk`authorization`,, `token``userInfo`, dan `jwks_uri` titik akhir.
**catatan**  
URL harus dimulai dengan `https://`, dan tidak boleh diakhiri dengan garis miring `/`. Hanya nomor port 443 dan 80 yang dapat digunakan dengan URL ini. Misalnya, Salesforce menggunakan URL ini:  
`https://login.salesforce.com`   
Jika Anda memilih pengisian otomatis, dokumen penemuan harus menggunakan HTTPS untuk nilai berikut:`authorization_endpoint`,`token_endpoint`,`userinfo_endpoint`, dan`jwks_uri`. Jika tidak, login akan gagal.

1. Konfigurasikan aturan pemetaan atribut Anda di bawah atribut **Map antara penyedia OpenID Connect** dan kumpulan pengguna Anda. **Atribut kumpulan pengguna** adalah atribut *tujuan* di profil pengguna Amazon Cognito dan atribut OpenID **Connect adalah atribut** *sumber* yang Anda ingin Amazon Cognito temukan dalam klaim atau respons ID-token. `userInfo` Amazon Cognito secara otomatis memetakan **sub** klaim OIDC `username` di profil pengguna tujuan.

   Untuk informasi selengkapnya, lihat [Memetakan atribut iDP ke profil dan token](cognito-user-pools-specifying-attribute-mapping.md).

1. Pilih **Tambahkan penyedia identitas**.

1. Dari menu **Klien aplikasi**, pilih klien aplikasi dari daftar. Arahkan ke tab **Halaman login** dan di bawah **konfigurasi halaman login terkelola**, pilih **Edit**. Temukan **penyedia Identitas** dan tambahkan OIDC iDP baru Anda.

1. Pilih **Simpan perubahan**.

------
#### [ API/CLI ]

Lihat konfigurasi OIDC dalam contoh dua di. [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#API_CreateIdentityProvider_Example_2) Anda dapat memodifikasi sintaks ini dan menggunakannya sebagai badan permintaan`CreateIdentityProvider`,`UpdateIdentityProvider`, atau file `--cli-input-json` input untuk [create-identity-provider](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-identity-provider.html).

------

## Uji konfigurasi IDP OIDC Anda
<a name="cognito-user-pools-oidc-idp-step-3"></a>

Dalam aplikasi Anda, Anda harus memanggil browser di klien pengguna sehingga mereka dapat masuk dengan penyedia OIDC mereka. Uji login dengan penyedia Anda setelah Anda menyelesaikan prosedur penyiapan di bagian sebelumnya. Contoh URL berikut memuat halaman login untuk kumpulan pengguna Anda dengan domain awalan.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

Tautan ini adalah halaman yang Amazon Cognito arahkan kepada Anda saat Anda membuka menu **Klien aplikasi, pilih klien** aplikasi, arahkan ke tab **Halaman Login, dan pilih **Lihat** halaman login**. Untuk informasi selengkapnya tentang domain kumpulan pengguna, lihat[Mengkonfigurasi domain kumpulan pengguna](cognito-user-pools-assign-domain.md). Untuk informasi selengkapnya tentang klien aplikasi, termasuk klien IDs dan callback URLs, lihat[Pengaturan khusus aplikasi dengan klien aplikasi](user-pool-settings-client-apps.md).

Contoh link berikut mengatur pengalihan diam ke `MyOIDCIdP` penyedia dari [Otorisasi titik akhir](authorization-endpoint.md) dengan parameter `identity_provider` query. URL ini melewati login kumpulan pengguna interaktif dengan login terkelola dan langsung menuju ke halaman masuk IDP.

```
https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=MyOIDCIdP&response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

# Aliran otentikasi IDP kumpulan pengguna OIDC
<a name="cognito-user-pools-oidc-flow"></a>

Dengan login OpenID Connect (OIDC), kumpulan pengguna Anda mengotomatiskan alur login kode otorisasi dengan penyedia identitas (iDP) Anda. Setelah pengguna Anda menyelesaikan proses masuk dengan IDP mereka, Amazon Cognito mengumpulkan kode mereka di titik akhir penyedia eksternal. `oauth2/idpresponse` Dengan token akses yang dihasilkan, kumpulan pengguna Anda menanyakan titik akhir `userInfo` IDP untuk mengambil atribut pengguna. Kumpulan pengguna Anda kemudian membandingkan atribut yang diterima dengan aturan pemetaan atribut yang telah Anda siapkan dan mengisi profil pengguna dan token ID yang sesuai.

Cakupan OAuth 2.0 yang Anda minta dalam konfigurasi penyedia OIDC menentukan atribut pengguna yang disediakan idP ke Amazon Cognito. Sebagai praktik keamanan terbaik, hanya minta cakupan yang sesuai dengan atribut yang ingin Anda petakan ke kumpulan pengguna Anda. Misalnya, jika permintaan kumpulan pengguna`openid profile`, Anda akan mendapatkan semua atribut yang mungkin, tetapi jika Anda meminta, `openid email phone_number` Anda hanya akan mendapatkan alamat email dan nomor telepon pengguna. Anda dapat mengonfigurasi cakupan yang Anda [minta dari OIDC IdPs](cognito-user-pools-oidc-idp.md#cognito-user-pools-oidc-step-2-substep-9) agar berbeda dari yang Anda otorisasi dan minta dalam permintaan otentikasi [klien aplikasi dan kumpulan](user-pool-settings-client-apps.md#user-pool-settings-client-apps-scopes) pengguna.

Saat pengguna masuk ke aplikasi menggunakan OIDC iDP, kumpulan pengguna akan menjalankan alur autentikasi berikut.

1. Pengguna mengakses halaman login login terkelola Anda, dan memilih untuk masuk dengan OIDC iDP mereka.

1. Aplikasi Anda mengarahkan browser pengguna ke titik akhir otorisasi kumpulan pengguna Anda.

1. Kumpulan pengguna Anda mengalihkan permintaan ke titik akhir otorisasi OIDC iDP.

1. IDP Anda menampilkan prompt login.

1. Dalam aplikasi Anda, sesi pengguna Anda menampilkan prompt masuk untuk OIDC iDP.

1. Pengguna memasukkan kredensialnya untuk IDP atau menyajikan cookie untuk sesi yang sudah diautentikasi.

1. Setelah pengguna Anda mengautentikasi, iDP OIDC mengalihkan ke Amazon Cognito dengan kode otorisasi.

1. Kumpulan pengguna Anda menukar kode otorisasi untuk ID dan token akses. Amazon Cognito menerima token akses saat Anda mengonfigurasi IDP dengan cakupan. `openid` Klaim dalam token ID dan `userInfo` respons ditentukan oleh cakupan tambahan dari konfigurasi IDP Anda, misalnya `profile` dan. `email`

1. IDP Anda mengeluarkan token yang diminta.

1. Kumpulan pengguna Anda menentukan jalur ke `jwks_uri` titik akhir iDP dari penerbit dalam konfigurasi iDP URLs Anda dan meminta kunci penandatanganan token dari titik akhir set kunci web JSON (JWKS).

1. IdP mengembalikan kunci penandatanganan dari titik akhir JWKS.

1. Kumpulan pengguna Anda memvalidasi token IDP dari data tanda tangan dan kedaluwarsa dalam token.

1. Kumpulan pengguna Anda mengotorisasi permintaan ke titik akhir `userInfo` IDP dengan token akses. IDP merespons dengan data pengguna berdasarkan cakupan token akses.

1. Kumpulan pengguna Anda membandingkan token ID dan `userInfo` respons dari iDP dengan aturan pemetaan atribut di kumpulan pengguna Anda. Ini menulis atribut iDP yang dipetakan ke atribut profil kumpulan pengguna.

1. Amazon Cognito menerbitkan token pembawa aplikasi Anda, yang mungkin termasuk identitas, akses, dan token penyegaran.

1. Aplikasi Anda memproses token kumpulan pengguna dan menandatangani pengguna.

![\[Alur autentikasi IdP OIDC kolam pengguna\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/flow-cup-oidc-endpoints.png)


**catatan**  
Amazon Cognito membatalkan permintaan otentikasi yang tidak selesai dalam 5 menit, dan mengarahkan pengguna ke login terkelola. Halaman menampilkan pesan `Something went wrong` kesalahan.

OIDC adalah lapisan identitas di atas OAuth 2.0, yang menentukan token identitas berformat JSON (JWT) yang dikeluarkan oleh IdPs aplikasi klien OIDC (pihak yang mengandalkan). Lihat dokumentasi untuk IdP OIDC Anda untuk informasi tentang menambahkan Amazon Cognito sebagai pihak yang mengandalkan OIDC.

Saat pengguna mengautentikasi dengan pemberian kode otorisasi, kumpulan pengguna mengembalikan ID, akses, dan token penyegaran. Token ID adalah token [OIDC](http://openid.net/specs/openid-connect-core-1_0.html) standar untuk manajemen identitas, dan token akses adalah token [OAuth 2.0](https://oauth.net/2/) standar. Untuk informasi selengkapnya tentang jenis hibah yang dapat didukung oleh klien aplikasi kumpulan pengguna Anda, lihat[Otorisasi titik akhir](authorization-endpoint.md).

## Bagaimana kumpulan pengguna memproses klaim dari penyedia OIDC
<a name="how-a-cognito-user-pool-processes-claims-from-an-oidc-provider"></a>

Saat pengguna Anda menyelesaikan proses masuk dengan penyedia OIDC pihak ketiga, login terkelola akan mengambil kode otorisasi dari iDP. Kumpulan pengguna Anda menukar kode otorisasi untuk akses dan token ID dengan `token` titik akhir IDP Anda. Kumpulan pengguna Anda tidak meneruskan token ini ke pengguna atau aplikasi Anda, tetapi menggunakannya untuk membuat profil pengguna dengan data yang ditampilkan dalam klaim dalam tokennya sendiri.

 Amazon Cognito tidak secara independen memvalidasi token akses. Sebagai gantinya, ia meminta informasi atribut pengguna dari `userInfo` titik akhir penyedia dan mengharapkan permintaan ditolak jika token tidak valid.

Amazon Cognito memvalidasi token ID penyedia dengan pemeriksaan berikut:

1. Periksa apakah penyedia menandatangani token dengan algoritma dari set berikut: RSA, HMAC, Elliptic Curve.

1. Jika penyedia menandatangani token dengan algoritma penandatanganan asimetris, periksa apakah ID kunci penandatanganan dalam `kid` klaim token terdaftar di titik `jwks_uri` akhir penyedia. Amazon Cognito menyegarkan kunci penandatanganan dari titik akhir JWKS dalam konfigurasi iDP Anda untuk setiap token ID IDP yang diprosesnya.

1. Bandingkan tanda tangan token ID dengan tanda tangan yang diharapkan berdasarkan metadata penyedia.

1. Bandingkan `iss` klaim dengan penerbit OIDC yang dikonfigurasi untuk IDP.

1. Bandingkan `aud` klaim yang cocok dengan ID klien yang dikonfigurasi di iDP, atau berisi ID klien yang dikonfigurasi jika ada beberapa nilai dalam klaim. `aud`

1. Periksa apakah stempel waktu dalam `exp` klaim tidak sebelum waktu saat ini.

Kumpulan pengguna Anda memvalidasi token ID, lalu mencoba permintaan ke `userInfo` titik akhir penyedia dengan token akses penyedia. Ini mengambil informasi profil pengguna yang cakupan dalam token akses mengotorisasi untuk dibaca. Kumpulan pengguna Anda kemudian mencari atribut pengguna yang telah Anda tetapkan seperti yang diperlukan dalam kumpulan pengguna Anda. Anda harus membuat pemetaan atribut dalam konfigurasi penyedia Anda untuk atribut yang diperlukan. Kumpulan pengguna Anda memeriksa token ID penyedia dan `userInfo` responsnya. Kumpulan pengguna Anda menulis semua klaim yang mencocokkan aturan pemetaan dengan atribut pengguna di profil pengguna kumpulan pengguna. Kumpulan pengguna Anda mengabaikan atribut yang cocok dengan aturan pemetaan tetapi tidak diperlukan dan tidak ditemukan dalam klaim penyedia.

# Memetakan atribut iDP ke profil dan token
<a name="cognito-user-pools-specifying-attribute-mapping"></a>

Layanan penyedia identitas (iDP), termasuk Amazon Cognito, biasanya dapat merekam lebih banyak informasi tentang pengguna. Anda mungkin ingin tahu untuk perusahaan apa mereka bekerja, cara menghubungi mereka, dan informasi identifikasi lainnya. Tetapi format yang diambil atribut ini memiliki variasi antar penyedia. Misalnya, siapkan tiga IdPs dari tiga vendor berbeda dengan kumpulan pengguna Anda dan periksa contoh pernyataan SAMP, token ID, atau muatan dari masing-masing. `userInfo` Satu akan mewakili alamat email pengguna sebagai`email`, yang lain sebagai`emailaddress`, dan yang ketiga sebagai`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`.

Manfaat utama yang berasal dari konsolidasi IdPs dengan kumpulan pengguna adalah kemampuan untuk memetakan berbagai nama atribut ke dalam skema token OIDC tunggal dengan nama atribut bersama yang konsisten, dapat diprediksi, dan dibagikan. Dengan cara ini, pengembang Anda tidak diharuskan mempertahankan logika untuk memproses berbagai peristiwa masuk tunggal yang kompleks. Konsolidasi format ini adalah pemetaan atribut. Pemetaan atribut kumpulan pengguna menetapkan nama atribut idP ke nama atribut kumpulan pengguna yang sesuai. Misalnya, Anda dapat mengonfigurasi kumpulan pengguna untuk menulis nilai `emailaddress` klaim ke atribut kumpulan pengguna standar`email`.

Setiap kumpulan pengguna IDP memiliki skema pemetaan atribut terpisah. Untuk menentukan pemetaan atribut untuk iDP Anda, konfigurasikan penyedia identitas kumpulan pengguna di konsol Amazon Cognito, AWS SDK, atau kumpulan pengguna REST API.

## Hal yang perlu diketahui tentang pemetaan
<a name="cognito-user-pools-specifying-attribute-mapping-requirements"></a>

Sebelum Anda mulai mengatur pemetaan atribut pengguna, tinjau detail penting berikut.
+ Saat pengguna federasi masuk ke aplikasi Anda, pemetaan harus ada untuk setiap atribut kumpulan pengguna yang diperlukan oleh kumpulan pengguna Anda. Misalnya, jika kumpulan pengguna Anda memerlukan `email` atribut untuk mendaftar, petakan atribut ini ke padanannya dari idP.
+ Secara default, alamat email yang dipetakan tidak diverifikasi. Anda tidak dapat memverifikasi alamat email yang dipetakan menggunakan kode satu kali. Sebagai gantinya, petakan atribut dari IDP Anda untuk mendapatkan status verifikasi. Misalnya, Google dan sebagian besar penyedia OIDC menyertakan atribut `email_verified`.
+ Anda dapat memetakan token penyedia identitas (iDP) ke atribut kustom di kumpulan pengguna Anda. Penyedia sosial menyajikan token akses, dan penyedia OIDC menyajikan akses dan token ID. Untuk memetakan token, tambahkan atribut kustom dengan panjang maksimum 2.048 karakter, berikan akses tulis klien aplikasi Anda ke atribut, dan petakan `access_token` atau `id_token` dari idP ke atribut kustom.
+ Untuk setiap atribut kumpulan pengguna yang dipetakan, panjang nilai maksimum 2.048 karakter harus cukup besar untuk nilai yang diperoleh Amazon Cognito dari iDP. Jika tidak, Amazon Cognito melaporkan kesalahan saat pengguna masuk ke aplikasi Anda. Amazon Cognito tidak mendukung pemetaan token iDP ke atribut khusus ketika token memiliki panjang lebih dari 2.048 karakter.
+ Amazon Cognito memperoleh `username` atribut dalam profil pengguna federasi dari klaim spesifik yang dilewati oleh IDP federasi Anda, seperti yang ditunjukkan pada tabel berikut. Amazon Cognito menambahkan nilai atribut ini dengan nama iDP Anda, misalnya. `MyOIDCIdP_[sub]` Jika Anda ingin pengguna federasi memiliki atribut yang sama persis dengan atribut di direktori pengguna eksternal, petakan atribut tersebut ke atribut login Amazon Cognito seperti. `preferred_username`    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html)
+ Jika kumpulan pengguna [tidak peka huruf besar/kecil](user-pool-case-sensitivity.md), Amazon Cognito mengonversi atribut sumber nama pengguna menjadi huruf kecil di nama pengguna yang dibuat secara otomatis oleh pengguna federasi. Berikut ini adalah contoh nama pengguna untuk kumpulan pengguna yang peka huruf besar/kecil:. `MySAML_TestUser@example.com` Berikut ini adalah nama pengguna yang sama untuk kumpulan pengguna yang *tidak peka huruf besar/kecil*:`MySAML_testuser@example.com`.

  Dalam kumpulan pengguna yang tidak peka huruf besar/kecil, Lambda Anda memicu proses bahwa nama pengguna harus memperhitungkan modifikasi ini untuk klaim kasus campuran apa pun untuk atribut sumber nama pengguna. Untuk menautkan IDP Anda ke kumpulan pengguna yang memiliki pengaturan sensitivitas huruf besar yang berbeda dari kumpulan pengguna Anda saat ini, buat kumpulan pengguna baru.
+ Amazon Cognito harus dapat memperbarui atribut kolam pengguna yang dipetakan ketika pengguna masuk ke aplikasi Anda. Saat pengguna masuk melalui iDP, Amazon Cognito memperbarui atribut yang dipetakan dengan informasi terbaru dari iDP. Amazon Cognito hanya memperbarui atribut yang dipetakan saat nilainya berubah. Untuk memastikan bahwa Amazon Cognito dapat memperbarui atribut, periksa persyaratan berikut:
  + *Semua atribut kustom kumpulan pengguna yang Anda petakan dari IDP Anda harus bisa berubah.* Anda dapat memperbarui atribut kustom yang bisa berubah kapan saja. Sebaliknya, Anda hanya dapat menetapkan nilai untuk atribut kustom yang tidak *dapat diubah* pengguna saat pertama kali membuat profil pengguna. ****Untuk membuat atribut kustom yang bisa berubah di konsol Amazon Cognito, aktifkan kotak centang Mutable untuk atribut yang Anda tambahkan saat **memilih Tambahkan atribut kustom** di menu Daftar.**** Atau, jika Anda membuat kumpulan pengguna menggunakan operasi [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API, Anda dapat mengatur `Mutable` parameter untuk masing-masing atribut ini`true`. Jika idP Anda mengirimkan nilai untuk atribut immutable yang dipetakan, Amazon Cognito mengembalikan kesalahan dan proses masuk gagal.
  + Dalam pengaturan klien aplikasi untuk aplikasi Anda, atribut yang dipetakan harus *dapat ditulis*. Anda dapat mengatur atribut mana yang dapat ditulis di halaman **Klien aplikasi** di konsol Amazon Cognito. Atau, jika Anda membuat klien aplikasi dengan menggunakan operasi API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html), Anda dapat menambahkan atribut ini ke array `WriteAttributes`. Jika idP Anda mengirimkan nilai untuk atribut non-writable yang dipetakan, Amazon Cognito tidak menyetel nilai atribut dan melanjutkan dengan autentikasi.
+ Ketika atribut IDP berisi beberapa nilai, Amazon Cognito meratakan semua nilai menjadi string tunggal yang dibatasi koma yang diapit dalam karakter braket persegi dan. `[` `]` Formulir URL Amazon Cognito mengkodekan nilai yang mengandung karakter non-alfanumerik kecuali,,, dan. `.` `-` `*` `_` Anda harus memecahkan kode dan mengurai nilai individual sebelum menggunakannya di aplikasi.
+ Atribut tujuan mempertahankan nilai apa pun yang ditetapkan aturan pemetaan atribut Anda kecuali jika tindakan masuk atau administratif mengubahnya. Amazon Cognito tidak menghapus atribut dari pengguna saat atribut sumber tidak lagi dikirim dalam token penyedia atau pernyataan SAMP. Tindakan berikut menghapus nilai atribut dari profil kumpulan pengguna untuk pengguna federasi:

  1. IdP mengirimkan nilai kosong untuk atribut sumber dan aturan pemetaan menerapkan nilai kosong ke atribut tujuan.

  1. Anda menghapus nilai atribut yang dipetakan dengan [AdminDeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUserAttributes.html)permintaan [DeleteUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserAttributes.html)atau.

## Menentukan pemetaan atribut penyedia identitas untuk kumpulan pengguna Anda ()Konsol Manajemen AWS
<a name="cognito-user-pools-specifying-attribute-mapping-console"></a>

Anda dapat menggunakan Konsol Manajemen AWS untuk menentukan pemetaan atribut untuk idP kumpulan pengguna Anda.

**catatan**  
Amazon Cognito akan memetakan klaim masuk ke atribut kolam pengguna hanya jika klaim ada di token masuk. Jika klaim yang dipetakan sebelumnya tidak lagi ada di token masuk, klaim tersebut tidak akan dihapus atau diubah. Jika aplikasi Anda memerlukan pemetaan klaim yang dihapus, Anda dapat menggunakan pemicu Lambda Pra-Otentikasi untuk menghapus atribut kustom selama autentikasi dan mengizinkan atribut ini terisi kembali dari token yang masuk.

**Untuk menentukan pemetaan atribut iDP sosial**

1. Masuk ke [konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Di panel navigasi, pilih **Kumpulan Pengguna**, dan pilih kumpulan pengguna yang ingin Anda edit.

1. Pilih menu **penyedia sosial dan eksternal**.

1. Pilih **Tambahkan penyedia identitas**, atau pilih **Facebook**, **Google**, **Amazon**, atau **Apple** iDP yang telah Anda konfigurasikan. Temukan **pemetaan Atribut** dan pilih **Edit**. 

   Untuk informasi selengkapnya tentang menambahkan IdP sosial, lihat. [Menggunakan penyedia identitas sosial dengan kumpulan pengguna](cognito-user-pools-social-idp.md)

1. Untuk setiap atribut yang perlu Anda petakan, selesaikan langkah-langkah berikut:

   1. Pilih atribut dari kolom **atribut User pool**. Ini adalah atribut yang ditetapkan ke profil pengguna di kumpulan pengguna Anda. Atribut kustom terdaftar setelah atribut standar.

   1. Pilih atribut dari kolom ***<provider>*atribut**. Ini akan menjadi atribut yang diteruskan dari direktori penyedia. Atribut yang dikenal dari penyedia sosial disediakan dalam daftar drop-down.

   1. Untuk memetakan atribut tambahan antara IDP dan Amazon Cognito, **pilih** Tambahkan atribut lain.

1. Pilih **Simpan perubahan**.

**Untuk menentukan pemetaan atribut penyedia SAML**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home). Jika diminta, masukkan AWS kredensil Anda.

1. Di panel navigasi, pilih **Kumpulan Pengguna**, dan pilih kumpulan pengguna yang ingin Anda edit.

1. Pilih menu **penyedia sosial dan eksternal**.

1. Pilih **Tambahkan penyedia identitas**, atau pilih IDP SAMP yang telah Anda konfigurasikan. Temukan **pemetaan Atribut**, dan pilih **Edit**. Untuk informasi selengkapnya tentang menambahkan IDP SAMP, lihat. [Menggunakan penyedia identitas SAMP dengan kumpulan pengguna](cognito-user-pools-saml-idp.md)

1. Untuk setiap atribut yang perlu Anda petakan, selesaikan langkah-langkah berikut:

   1. Pilih atribut dari kolom **atribut User pool**. Ini adalah atribut yang ditetapkan ke profil pengguna di kumpulan pengguna Anda. Atribut kustom terdaftar setelah atribut standar.

   1. Pilih atribut dari kolom **atribut SAMP**. Ini akan menjadi atribut yang diteruskan dari direktori penyedia.

      IDP Anda mungkin menawarkan contoh pernyataan SAMP untuk referensi. Beberapa IdPs menggunakan nama sederhana, seperti`email`, sementara yang lain menggunakan nama atribut berformat URL yang mirip dengan:

      ```
      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
      ```

   1. Untuk memetakan atribut tambahan antara IDP dan Amazon Cognito, **pilih** Tambahkan atribut lain.

1. Pilih **Simpan perubahan**.

## Menentukan pemetaan atribut penyedia identitas untuk kumpulan pengguna Anda (AWS CLI dan API) AWS
<a name="cognito-user-pools-specifying-attribute-mapping-cli-api"></a>

Badan permintaan berikut untuk [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)atau [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)memetakan atribut “MyIdP” penyedia SAMP `emailaddress``birthdate`, dan `phone` ke atribut kumpulan pengguna`email`,, dan `birthdate``phone_number`, dalam urutan itu. Ini adalah badan permintaan lengkap untuk penyedia SAMP 2.0—badan permintaan Anda akan bervariasi tergantung pada jenis IDP dan detail spesifik. Pemetaan atribut ada di `AttributeMapping` parameter.

```
{
   "AttributeMapping": { 
      "email" : "emailaddress",
      "birthdate" : "birthdate",
      "phone_number" : "phone"
   },
   "IdpIdentifiers": [ 
      "IdP1",
      "pdxsaml"
   ],
   "ProviderDetails": { 
      "IDPInit": "true", 
      "IDPSignout": "true", 
      "EncryptedResponses" : "true", 
      "MetadataURL": "https://auth.example.com/sso/saml/metadata", 
      "RequestSigningAlgorithm": "rsa-sha256"
   },
   "ProviderName": "MyIdP",
   "ProviderType": "SAML",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

Gunakan perintah berikut untuk menentukan pemetaan atribut IDP untuk kumpulan pengguna Anda.

**Untuk menentukan pemetaan atribut pada waktu pembuatan penyedia**
+ AWS CLI: `aws cognito-idp create-identity-provider`

  Contoh dengan file metadata: `aws cognito-idp create-identity-provider --user-pool-id <user_pool_id> --provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`

  Di mana `details.json` berisi:

  ```
  { 
      "MetadataFile": "<SAML metadata XML>"
  }
  ```
**catatan**  
Jika *<SAML metadata XML>* berisi kutipan (`"`), mereka harus lolos ()`\"`.

  Contoh dengan URL metadata:

  ```
  aws cognito-idp create-identity-provider \
  --user-pool-id us-east-1_EXAMPLE \
  --provider-name=SAML_provider_1 \
  --provider-type SAML \
  --provider-details MetadataURL=https://myidp.example.com/saml/metadata \
  --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
  ```
+ API/SDK: [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Untuk menentukan pemetaan atribut untuk IDP yang ada**
+ AWS CLI: `aws cognito-idp update-identity-provider`

  Contoh: `aws cognito-idp update-identity-provider --user-pool-id <user_pool_id> --provider-name <provider_name> --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`
+ API/SDK: [UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html)

**Untuk mendapatkan informasi tentang pemetaan atribut untuk IDP tertentu**
+ AWS CLI: `aws cognito-idp describe-identity-provider`

  Contoh: `aws cognito-idp describe-identity-provider --user-pool-id <user_pool_id> --provider-name <provider_name>`
+ API/SDK: [DescribeIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeIdentityProvider.html)

# Menautkan pengguna gabungan ke profil pengguna yang ada
<a name="cognito-user-pools-identity-federation-consolidate-users"></a>

Seringkali, pengguna yang sama memiliki profil dengan beberapa penyedia identitas (IdPs) yang telah Anda sambungkan ke kumpulan pengguna Anda. Amazon Cognito dapat menautkan setiap kemunculan pengguna ke profil pengguna yang sama di direktori Anda. Dengan cara ini, satu orang yang memiliki beberapa pengguna IDP dapat memiliki pengalaman yang konsisten di aplikasi Anda. [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html)memberi tahu Amazon Cognito untuk mengenali ID unik pengguna di direktori federasi Anda sebagai pengguna di kumpulan pengguna. Pengguna di kumpulan pengguna Anda dihitung sebagai satu pengguna aktif bulanan (MAU) untuk tujuan [penagihan](https://aws.amazon.com/cognito/pricing/) ketika Anda memiliki nol atau lebih identitas gabungan yang terkait dengan profil pengguna.

Saat pengguna federasi masuk ke kumpulan pengguna Anda untuk pertama kalinya, Amazon Cognito mencari profil lokal yang telah Anda tautkan ke identitas mereka. Jika tidak ada profil tertaut, kumpulan pengguna Anda akan membuat profil baru. Anda dapat membuat profil lokal dan menautkannya ke pengguna federasi kapan saja sebelum login pertama mereka, dalam permintaan `AdminLinkProviderForUser` API, baik dalam tugas prestaging yang direncanakan atau di file. [Pemicu Lambda pra pendaftaran](user-pool-lambda-pre-sign-up.md) Setelah pengguna masuk dan Amazon Cognito mendeteksi profil lokal yang ditautkan, kumpulan pengguna akan membaca klaim pengguna dan membandingkannya dengan aturan pemetaan untuk iDP. Kumpulan pengguna Anda kemudian memperbarui profil lokal yang ditautkan dengan klaim yang dipetakan dari proses masuk mereka. Dengan cara ini, Anda dapat mengonfigurasi profil lokal dengan klaim akses dan menyimpan klaim identitas mereka up-to-date dengan penyedia Anda. Setelah Amazon Cognito mencocokkan pengguna federasi Anda dengan profil yang ditautkan, mereka selalu masuk ke profil tersebut. Anda kemudian dapat menautkan lebih banyak identitas penyedia pengguna Anda ke profil yang sama, memberikan satu pelanggan pengalaman yang konsisten di aplikasi Anda. Untuk menautkan pengguna federasi yang sebelumnya telah masuk, Anda harus terlebih dahulu menghapus profil mereka yang ada. Anda dapat mengidentifikasi profil yang ada berdasarkan formatnya:`[Provider name]_identifier`. Misalnya, `LoginWithAmazon_amzn1.account.AFAEXAMPLE`. Pengguna yang Anda buat dan kemudian ditautkan ke identitas pengguna pihak ketiga memiliki nama pengguna yang mereka buat, dan `identities` atribut yang berisi detail identitas tertaut mereka.

**penting**  
Karena `AdminLinkProviderForUser` memungkinkan pengguna dengan identitas federasi eksternal untuk masuk sebagai pengguna yang ada di kumpulan pengguna, sangat penting bahwa itu hanya digunakan dengan atribut eksternal IdPs dan penyedia yang telah dipercaya oleh pemilik aplikasi.

Misalnya, jika Anda adalah penyedia layanan terkelola (MSP) dengan aplikasi yang Anda bagikan dengan beberapa pelanggan. Setiap pelanggan masuk ke aplikasi Anda melalui Active Directory Federation Services (ADFS). Administrator TI Anda, Carlos, memiliki akun di setiap domain pelanggan Anda. Anda ingin Carlos diakui sebagai administrator aplikasi setiap kali dia masuk, terlepas dari IDP.

ADFS Anda IdPs menyajikan alamat email Carlos `msp_carlos@example.com` dalam `email` klaim pernyataan SAMP Carlos ke Amazon Cognito. Anda membuat pengguna di kumpulan pengguna Anda dengan nama pengguna`Carlos`. Perintah berikut AWS Command Line Interface (AWS CLI) menghubungkan identitas Carlos dari IdPs ADFS1,, ADFS2 dan. ADFS3

**catatan**  
Anda dapat menautkan pengguna berdasarkan klaim atribut tertentu. Kemampuan ini unik untuk OIDC dan SAMP. IdPs Untuk jenis penyedia lainnya, Anda harus menautkan berdasarkan atribut sumber tetap. Untuk informasi selengkapnya, lihat [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html). Anda harus mengatur `ProviderAttributeName` `Cognito_Subject` kapan Anda menautkan iDP sosial ke profil pengguna. `ProviderAttributeValue`harus menjadi pengenal unik pengguna dengan IDP Anda.

```
aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS1,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS2,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS3,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com
```

Profil pengguna `Carlos` di kumpulan pengguna Anda sekarang memiliki `identities` atribut berikut.

```
[{
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS1",
    "providerType": "SAML",
    "issuer": "http://auth.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}, {
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS2",
    "providerType": "SAML",
    "issuer": "http://auth2.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}, {
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS3",
    "providerType": "SAML",
    "issuer": "http://auth3.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}]
```

**Hal-hal yang perlu diketahui tentang menautkan pengguna federasi**
+ Anda dapat menautkan hingga lima pengguna federasi ke setiap profil pengguna.
+ Anda dapat menautkan pengguna ke setiap IDP dari hingga lima klaim atribut IDP, seperti yang ditentukan oleh `ProviderAttributeName` parameter `SourceUser` dalam permintaan API. `AdminLinkProviderForUser` Misalnya, jika Anda telah menautkan setidaknya satu pengguna ke atribut sumber`email`,,,`phone`,`department`, dan `given_name``location`, Anda hanya dapat menautkan pengguna tambahan pada salah satu dari lima atribut tersebut.
+ Anda dapat menautkan pengguna federasi ke profil pengguna federasi yang ada, atau ke pengguna lokal.
+ Anda tidak dapat menautkan penyedia ke profil pengguna di Konsol Manajemen AWS.
+ Token ID pengguna Anda berisi semua penyedia terkait dalam `identities` klaim.
+ Anda dapat menyetel kata sandi untuk profil pengguna federasi yang dibuat secara otomatis dalam permintaan API. [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) Status pengguna itu kemudian berubah dari `EXTERNAL_PROVIDER` menjadi`CONFIRMED`. Pengguna dalam status ini dapat masuk sebagai pengguna federasi, dan memulai alur otentikasi di API seperti pengguna lokal yang ditautkan. Mereka juga dapat memodifikasi kata sandi dan atribut mereka dalam permintaan API yang diautentikasi token seperti dan. [ChangePassword[UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ChangePassword.html) Sebagai praktik keamanan terbaik dan agar pengguna tetap sinkron dengan iDP eksternal Anda, jangan setel kata sandi pada profil pengguna federasi. Sebagai gantinya, tautkan pengguna ke profil lokal dengan`AdminLinkProviderForUser`.
+ Amazon Cognito mengisi atribut pengguna ke profil pengguna lokal yang ditautkan saat pengguna masuk melalui idP mereka. Amazon Cognito memproses klaim identitas dalam token ID dari IDP OIDC, dan juga memeriksa titik akhir penyedia 2.0 dan `userInfo` OIDC. OAuth Amazon Cognito memprioritaskan informasi dalam token ID daripada informasi dari. `userInfo`

Ketika Anda mengetahui bahwa pengguna Anda tidak lagi menggunakan akun pengguna eksternal yang telah Anda tautkan ke profil mereka, Anda dapat memisahkan akun pengguna tersebut dengan pengguna kumpulan pengguna Anda. Saat menautkan pengguna, Anda memberikan nama atribut, nilai atribut, dan nama penyedia pengguna dalam permintaan. Untuk menghapus profil yang tidak lagi dibutuhkan pengguna Anda, buat permintaan [AdminDisableProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableProviderForUser.html)API dengan parameter yang setara.

Lihat [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html)sintaks perintah tambahan dan contoh di. AWS SDKs