

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

# 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).