SAMLpenandatanganan dan enkripsi - Amazon Cognito

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

SAMLpenandatanganan dan enkripsi

SAMLLogin 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 SAML dokumen-dokumen ini dalam perjalanan. Untuk mencapai hal ini, tambahkan SAML penandatanganan dan enkripsi ke penyedia SAML identitas (IdPs) di kumpulan pengguna Anda. Dengan SAML penandatanganan, kumpulan pengguna Anda menambahkan tanda tangan ke SAML permintaan masuk dan keluar. Dengan kunci publik kumpulan pengguna Anda, IDP Anda dapat memverifikasi bahwa IDP menerima permintaan yang tidak SAML dimodifikasi. Kemudian, ketika IDP Anda merespons dan meneruskan SAML pernyataan ke sesi browser pengguna, iDP dapat mengenkripsi respons tersebut sehingga pengguna tidak dapat memeriksa atribut dan hak mereka sendiri.

Dengan SAML penandatanganan dan enkripsi, semua operasi kriptografi selama SAML operasi kumpulan pengguna harus menghasilkan tanda tangan dan ciphertext dengan kunci yang dihasilkan user-pool-provided 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 SAML pernyataan 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.

Menerima SAML tanggapan terenkripsi dari IDP Anda

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

Berikut ini adalah ikhtisar aliran masuk terenkripsi. SAML

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

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

  3. SAMLIdP 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 ditentukan oleh spesifikasi 2.0. SAML Untuk informasi selengkapnya, lihat Element <EncryptedAssertion> di Assertions and Protocols for the OASIS Security Assertion Markup Language () V2.0. SAML

  4. Kumpulan pengguna Anda mendekripsi ciphertext dalam SAML respons dengan kunci pribadi dan tanda di pengguna Anda.

penting

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

SAMLIdP eksternal apa pun di kumpulan pengguna Anda dapat mendukung enkripsi respons, dan setiap iDP menerima key pair sendiri.

AWS Management Console
Untuk mengkonfigurasi enkripsi SAML respons
  1. Buat kumpulan pengguna, klien aplikasi, dan SAML iDP.

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

  3. Dari tab Pengalaman masuk di kumpulan pengguna Anda, di bawah login penyedia identitas Federasi, pilih SAML IDP Anda dan pilih Lihat sertifikat enkripsi.

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

API/CLI

Untuk mengkonfigurasi enkripsi SAML respons

Konfigurasikan enkripsi respons dengan EncryptedResponses parameter UpdateIdentityProviderAPIpermintaan CreateIdentityProvideratau permintaan. 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 DescribeIdentityProviderAPIpermintaan 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 SAML

Kemampuan untuk membuktikan integritas permintaan SAML 2.0 ke IDP Anda adalah keuntungan keamanan dari proses masuk yang diprakarsai Amazon SAML 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. SAML Anda dapat mengonfigurasi klien aplikasi secara opsional untuk menandatangani permintaan SAML masuk. Saat Anda menandatangani SAML permintaan, IDP Anda dapat memeriksa apakah tanda tangan dalam XML metadata permintaan Anda cocok dengan kunci publik dalam sertifikat kumpulan pengguna yang Anda berikan.

AWS Management Console
Untuk mengonfigurasi penandatanganan SAML permintaan
  1. Buat kumpulan pengguna, klien aplikasi, dan SAML iDP.

  2. Saat Anda membuat atau mengedit penyedia SAML identitas Anda, di bawah Menandatangani permintaan dan mengenkripsi tanggapan, centang kotak dengan judul Menandatangani SAML permintaan ke penyedia ini.

  3. Dari tab Pengalaman masuk di kumpulan pengguna Anda, di bawah login penyedia identitas Federasi, pilih Lihat sertifikat penandatanganan.

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

API/CLI

Untuk mengonfigurasi penandatanganan SAML permintaan

Konfigurasikan penandatanganan permintaan dengan RequestSigningAlgorithm parameter UpdateIdentityProviderAPIpermintaan CreateIdentityProvideratau permintaan. 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" }