

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

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

Implementasi SAML 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 memecahkan masalah kesalahan selama federasi SAML dengan kumpulan pengguna.

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

**Berikan sertifikat penandatanganan IdP yang valid**  
Sertifikat penandatanganan dalam metadata penyedia SAML Anda tidak boleh kedaluwarsa saat Anda mengonfigurasi IdP SAML di kumpulan pengguna Anda.

**Kumpulan pengguna mendukung beberapa sertifikat penandatanganan**  
Ketika IdP SAML Anda menyertakan lebih dari satu sertifikat penandatanganan dalam metadata SAML, saat masuk kumpulan pengguna Anda menentukan bahwa pernyataan SAML valid jika cocok dengan sertifikat apa pun dalam metadata SAML. Setiap sertifikat penandatanganan harus memiliki panjang tidak lebih dari 4.096 karakter.

**Pertahankan parameter status relai**  
Amazon Cognito dan SAML IdP Anda memelihara informasi sesi dengan parameter. `relayState`  

1. Amazon Cognito mendukung `relayState` nilai lebih dari 80 byte. Sementara spesifikasi SAML menyatakan bahwa `relayState` nilai “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 SAML standar.

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

**Identifikasi titik akhir ACS**  
Penyedia identitas SAML Anda mengharuskan Anda menetapkan titik akhir konsumen pernyataan. IdP Anda mengarahkan pengguna Anda ke titik akhir ini dengan pernyataan SAML mereka. Konfigurasikan titik akhir berikut di domain kumpulan pengguna untuk pengikatan POST SAML 2.0 di penyedia identitas SAML 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 SAML ke titik akhir Amazon Cognit `saml2/idpresponse` o Anda. Pernyataan SAML yang diputar ulang memiliki ID pernyataan yang menduplikasi ID 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 di bawah Ikhtis ** ar kumpulan pengguna ** di konsol [https://console.aws.amazon.com/cognito/home](https://console.aws.amazon.com/cognito/home) Amazon Cognito.

**Memetakan semua atribut yang diperlukan**  
Konfigurasikan IdP SAML Anda untuk memberikan nilai untuk atribut apa pun yang Anda tetapkan sesuai kebutuhan di kumpulan pengguna Anda. Misalnya, `email` adalah atribut wajib umum untuk kumpulan pengguna. Sebelum pengguna Anda dapat masuk, pernyataan SAML IdP Anda harus menyertakan klaim yang Anda petakan 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 SAML Anda harus menyertakan klaim berikut dalam pernyataan SAML.  
+ Sebuah `NameID` klaim. Amazon Cognito mengaitkan pernyataan SAML dengan pengguna tujuan oleh. `NameID` Jika `NameID` berubah, Amazon Cognito menganggap pernyataan tersebut untuk pengguna baru. Atribut yang Anda tetapkan `NameID` dalam konfigurasi IdP Anda harus memiliki nilai persisten. Untuk menetapkan pengguna SAML ke profil pengguna yang konsisten di kumpulan pengguna Anda, tet `NameID` apkan 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 meneruskan nilai yang tidak berubah. Amazon Cognito tidak memerlukan deklarasi format ini, dan menetapkan format `urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified` jika IdP Anda tidak menentukan format klaim. `NameID` Perilaku ini sesuai dengan bagian 2.2.2 * Complex Type NameIdType*, dari spesifikasi SAM [ L 2.0. ](https://groups.oasis-open.org/higherlogic/ws/public/download/35711/sstc-saml-core-errata-2.0-wd-06-diff.pdf/latest)
+ K `AudienceRestriction` laim 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 SP-initiated single sign-on, `Response` elemen dengan `InResponseTo` nilai ID permintaan SAML 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**  
IdP-initiated Pernyataan SAML * tidak boleh * mengandung nilai. `InResponseTo`
+ `SubjectConfirmationData`Elemen dengan `Recipient` nilai titik akhir kumpulan pengguna `saml2/idpresponse` Anda dan, untuk SP-initiated SAML, `InResponseTo` nilai yang cocok dengan ID permintaan SAML asli.

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

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

**Menandatangani permintaan dan mengenkripsi tanggapan**  
Setiap kumpulan pengguna dengan penyedia SAML menghasilkan pasangan kunci asimetris dan sertifikat * penandatanganan * untuk tanda tangan digital yang diberikan Amazon Cognito ke permintaan SAML. Setiap IdP SAML eksternal yang Anda konfigurasikan untuk mendukung respons SAML terenkripsi menyebabkan Amazon Cognito menghasilkan pasangan kunci 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 SAML dari kumpulan pengguna Anda, berikan IdP Anda salinan sertifikat penandatanganan SAML 2.0 kumpulan pengguna Anda. IdP Anda mungkin mengabaikan permintaan SAML yang ditandatangani oleh kumpulan pengguna Anda jika Anda tidak mengonfigurasi IdP untuk menerima permintaan yang ditandatangani.  

1. Amazon Cognito menerapkan tanda tangan digital ke permintaan SAML 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 SAML apa pun. Saat Anda memberikan salinan sertifikat, IdP Anda dapat memverifikasi integritas permintaan SAML pengguna Anda. 

1. IdP SAML Anda dapat mengenkripsi respons SAML dengan sertifikat enkripsi. Saat Anda mengonfigurasi IdP dengan enkripsi SAML, IdP Anda hanya harus mengirim respons terenkripsi.

**Mengkodekan karakter non-alfanumerik**  
Amazon Cognito tidak menerima UTF-8 karakter 4-byte seperti 😐 atau 𠮷 yang diteruskan 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 SAML dengan URL titik akhir metadata HTTPS, misalnya, “Kesalahan mengambil metadata dari{{<metadata endpoint>}},” pastikan bahwa titik akhir metadata memiliki SSL yang diatur dengan benar dan bahwa 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 berada pada port TCP standar untuk HTTP atau HTTPS**  
Amazon Cognito hanya menerima URL metadata untuk penyedia SAML pada port TCP standar 80 untuk HTTP dan 443 untuk HTTPS. Sebagai praktik terbaik keamanan, host metadata SAML di TLS-encrypted URL dengan `https://` awalan. Masukkan URL metadata dalam format {{`http://www.example.com/saml2/metadata.xml`}} atau{{`https://www.example.com/saml2/metadata.xml`}}. Konsol Amazon Cognito menerima URL metadata hanya dengan `https://` awalan. Anda juga dapat mengonfigurasi metadata IdP dengan [ CreateIdentityProvider ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html) dan [ UpdateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateIdentityProvider.html).

**Klien aplikasi dengan IdP-initiated SAML hanya dapat masuk dengan SAML**  
Saat mengaktifkan dukungan untuk SAML 2.0 IdP yang mendukung IdP-initiated login klien aplikasi, Anda hanya dapat menambahkan SAML 2.0 lainnya IdPs ke klien aplikasi tersebut. Anda tidak dapat menambahkan direktori pengguna di kumpulan pengguna * dan * semua penyedia identitas eksternal non-SAML ke klien aplikasi yang dikonfigurasi dengan cara ini.

**Tanggapan logout harus menggunakan POST binding**  
T `/saml2/logout` itik akhir menerima `LogoutResponse` sebagai `HTTP POST` permintaan. Kumpulan pengguna tidak menerima tanggapan logout dengan `HTTP GET` pengikatan.

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