Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Inisiasi sesi SAMP di kumpulan pengguna Amazon Cognito
Amazon Cognito mendukung sistem masuk tunggal (SSO) dan SSO yang dimulai oleh penyedia layanan (SP-initiated). IdP-initiated Sebagai praktik keamanan terbaik, terapkan SP-initiated SSO di kumpulan pengguna Anda. Bagian 5.1.2 dari Ikhtisar V2.0 Teknis SAMP
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 IdP-initiated mendukung SSO. Saat Anda mendukung IdP-initiated otentikasi, Amazon Cognito tidak dapat memverifikasi bahwa Amazon Cognito telah meminta respons SAMP yang diterimanya karena Amazon Cognito tidak memulai otentikasi dengan permintaan SAMP. Di SP-initiated SSO, Amazon Cognito menetapkan parameter status yang memvalidasi respons SAMP terhadap permintaan asli. Dengan SP-initiated login, Anda juga dapat melindungi dari pemalsuan permintaan lintas situs (CSRF).
Menerapkan SP-initated login SAMP
Sebagai praktik terbaik, terapkan sign-in service-provider-initiated (SP-initiated) 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 IdP-initiated masuk dalam kondisi tertentu.
Proses berikut menunjukkan cara pengguna menyelesaikan SP-initiated login ke kumpulan pengguna Anda melalui penyedia SAMP.
-
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.
-
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.
-
IDP mengautentikasi pengguna secara interaktif, atau dengan sesi yang diingat dalam cookie browser.
-
IDP mengarahkan pengguna Anda ke titik akhir respons SAMP kumpulan pengguna Anda dengan pernyataan SAMP yang dienkripsi secara opsional 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 wrongkesalahan. -
Setelah memverifikasi pernyataan SAMP dan memetakan atribut pengguna 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.
-
Pengguna Anda menampilkan kode otorisasi mereka ke aplikasi Anda, yang menukar kode dengan token web JSON (JWT).
-
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 OIDC-based identitas. Token akses adalah objek otorisasi dengan cakupan OAuth 2.0
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 IdP-initiated login SAMP
Saat mengonfigurasi penyedia identitas Anda untuk login IdP-initiated SAMP 2.0, Anda dapat menyajikan pernyataan SAMP ke saml2/idpresponse titik akhir di domain kumpulan pengguna Anda tanpa perlu memulai sesi di. Otorisasi titik akhir Kumpulan pengguna dengan konfigurasi ini menerima pernyataan IdP-initiated SAMP dari penyedia identitas eksternal kumpulan pengguna yang didukung oleh klien aplikasi yang diminta.
-
Pengguna meminta login SAMP dengan aplikasi Anda.
-
Aplikasi Anda memanggil browser atau mengarahkan pengguna ke halaman login untuk penyedia SAMP mereka.
-
IDP mengautentikasi pengguna secara interaktif, atau dengan sesi yang diingat dalam cookie browser.
-
IdP mengarahkan pengguna Anda ke aplikasi Anda dengan pernyataan SAMP, atau respons, di badan POST mereka.
-
Aplikasi Anda menambahkan pernyataan SAMP ke badan POST dari permintaan ke endpoint kumpulan pengguna Anda.
saml2/idpresponse -
Amazon Cognito mengeluarkan kode otorisasi kepada pengguna Anda.
-
Pengguna Anda menampilkan kode otorisasi mereka ke aplikasi Anda, yang menukar kode dengan token web JSON (JWT).
-
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 IdP-initiated SAMP 2.0.
-
Buat atau tentukan kumpulan pengguna dan klien aplikasi.
-
Buat SAMP 2.0 iDP di kumpulan pengguna Anda.
-
Konfigurasikan iDP Anda untuk mendukung inisiasi IDP. IdP-initiated SAMP 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. IdP-initiated
-
Kaitkan penyedia IdP-initiated SAMP Anda dengan klien aplikasi di kumpulan pengguna Anda.
-
Arahkan pengguna Anda ke halaman login untuk IDP SAMP Anda dan ambil pernyataan SAMP.
-
Arahkan pengguna Anda ke
saml2/idpresponsetitik akhir kumpulan pengguna Anda dengan pernyataan SAMP mereka. -
Terima token web JSON (JWT).
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. IdP-initiated Meskipun kumpulan pengguna Anda tidak dapat memverifikasi sesi IdP-initiated masuk, 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 IdP-initiated SAMP ke Anda/saml2/idpresponse. Untuk permintaan otorisasi login yang dikelola SP-initiated dan dikelola, 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 IdP-initiated SAMP, rincian 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 tanggapan untuk penyedia IdP-initiated SAMP.
POST /saml2/idpresponse HTTP/1.1 User-Agent:USER_AGENTAccept: */* Host:example.auth.us-east-1.amazoncognito.comContent-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%2BphoneHTTP/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]