View a markdown version of this page

Penandatanganan dan enkripsi SAML - Amazon Cognito

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

Penandatanganan dan enkripsi SAML

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

Dengan penandatanganan dan enkripsi SAML, semua operasi kriptografi selama operasi SAML kumpulan pengguna harus menghasilkan tanda tangan dan ciphertext dengan kunci yang disediakan oleh kumpulan pengguna 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 SAML dengan sertifikat enkripsi kumpulan pengguna apa pun yang tidak kedaluwarsa. Sertifikat Anda sebelumnya tetap valid untuk seluruh durasinya dan kunci publik tidak berubah di antara sertifikat. Sebagai praktik terbaik, perbarui sertifikat dalam konfigurasi penyedia Anda setiap tahun.

Menerima tanggapan SAML terenkripsi dari IdP Anda

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

Berikut ini adalah ikhtisar aliran masuk SAML terenkripsi.

  1. Pengguna Anda mulai masuk dan memilih IdP SAML mereka.

  2. Kumpulan pengguna Anda Otorisasi titik akhir mengarahkan pengguna Anda ke IdP SAML mereka dengan permintaan masuk SAML. Kumpulan pengguna Anda dapat secara opsional menyertakan permintaan ini dengan tanda tangan yang memungkinkan verifikasi integritas oleh IdP. Saat ingin menandatangani permintaan SAML, Anda harus mengonfigurasi IdP untuk menerima permintaan yang telah ditandatangani oleh kumpulan pengguna Anda dengan kunci publik di sertifikat penandatanganan.

  3. SAML IdP masuk ke pengguna Anda dan menghasilkan respons SAML. 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 SAML 2.0. Untuk informasi selengkapnya, lihat Element <EncryptedAssertion> dalam Per nyataan dan Protokol untuk OASIS Security Assertion Markup Language (SAML). V2.0

  4. Kumpulan pengguna Anda mendekripsi ciphertext dalam respons SAML dengan kunci pribadi dan masuk ke pengguna Anda.

penting

Saat Anda mengaktifkan enkripsi respons untuk IdP SAML di kumpulan pengguna, IdP Anda harus mengenkripsi semua respons dengan kunci publik yang khusus untuk penyedia. Amazon Cognito tidak menerima respons SAML yang tidak dienkripsi dari IdP eksternal SAML yang Anda konfigurasikan untuk mendukung enkripsi.

Setiap IdP SAML eksternal di kumpulan pengguna Anda dapat mendukung enkripsi respons, dan setiap IdP menerima pasangan kuncinya sendiri.

Konsol Manajemen AWS
Untuk mengkonfigurasi enkripsi respons SAML
  1. Buat kumpulan pengguna, klien aplikasi, dan SAML IdP.

  2. Saat Anda membuat atau mengedit penyedia identitas SAML, di bawah Men andatangani permintaan dan enkripsi respons, centang kotak dengan judul Memer lukan pernyataan SAML terenkripsi dari penyedia ini.

  3. Dari menu penyedia sosial dan eksternal kumpulan pengguna Anda, pilih IdP SAML Anda dan pilih Lihat sertifikat enkripsi.

  4. Pilih Unduh sebagai .crt dan berikan file yang diunduh ke SAML IdP Anda. Konfigurasikan IdP SAML Anda untuk mengenkripsi respons SAML dengan kunci di sertifikat.

API/CLI

Untuk mengkonfigurasi enkripsi respons SAML

Konfigurasikan enkripsi respons dengan EncryptedResponses parameter permintaan CreateIdentityProvider atau UpdateIdentityProvider API. Berikut ini adalah contoh ProviderDetails IdP 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 API dan ambil nilai ActiveEncryptionCertificate dalam parameter responsProviderDetails. Simpan sertifikat ini dan berikan ke IdP Anda sebagai sertifikat enkripsi untuk permintaan masuk dari kumpulan pengguna Anda.

Menandatangani permintaan SAML

Kemampuan untuk membuktikan integritas permintaan SAML 2.0 ke IdP Anda adalah keuntungan keamanan dari masuk Amazon Cognito SP-initiated SAML. Setiap kumpulan pengguna dengan domain menerima sertifikat X.509 penandatanganan kumpulan pengguna. Dengan kunci publik dalam sertifikat ini, kumpulan pengguna menerapkan tanda tangan kriptografi ke permintaan keluar yang dihasilkan kumpulan pengguna Anda saat pengguna memilih IdP SAML. Secara opsional, Anda dapat mengonfigurasi klien aplikasi untuk menandatangani permintaan masuk SAM L. Saat Anda menandatangani permintaan SAML, IdP Anda dapat memeriksa apakah tanda tangan dalam metadata XML permintaan Anda cocok dengan kunci publik dalam sertifikat kumpulan pengguna yang Anda berikan.

Konsol Manajemen AWS
Untuk mengonfigurasi penandatanganan permintaan SAML
  1. Buat kumpulan pengguna, klien aplikasi, dan SAML IdP.

  2. Saat Anda membuat atau mengedit penyedia identitas SAML, di bawah Men andatangani permintaan dan enkripsi respons, centang kotak dengan judul T anda tangani permintaan SAML ke penyedia ini.

  3. Dari menu Penye dia sosial dan eksternal kumpulan pengguna Anda, pilih Lihat sertifikat penandatanganan.

  4. Pilih Unduh sebagai .crt dan berikan file yang diunduh ke SAML IdP Anda. Konfigurasikan IdP SAML Anda untuk memverifikasi tanda tangan permintaan SAML masuk.

API/CLI

Untuk mengonfigurasi penandatanganan permintaan SAML

Konfigurasikan penandatanganan permintaan dengan RequestSigningAlgorithm parameter permintaan CreateIdentityProvider atau UpdateIdentityProvider API. Berikut ini adalah contoh ProviderDetails IdP yang mendukung penandatanganan permintaan.

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