OIDCaliran otentikasi iDP kumpulan pengguna - Amazon Cognito

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

OIDCaliran otentikasi iDP kumpulan pengguna

Dengan login OpenID Connect (OIDC), kumpulan pengguna Anda mengotomatiskan alur login kode otorisasi dengan penyedia identitas (iDP) Anda. Setelah pengguna Anda menyelesaikan proses masuk dengan IDP mereka, Amazon Cognito mengumpulkan kode mereka di titik akhir penyedia eksternal. oauth2/idpresponse Dengan token akses yang dihasilkan, kumpulan pengguna Anda menanyakan titik akhir userInfo IDP untuk mengambil atribut pengguna. Kumpulan pengguna Anda kemudian membandingkan atribut yang diterima dengan aturan pemetaan atribut yang telah Anda siapkan dan mengisi profil pengguna dan token ID yang sesuai.

Cakupan OAuth 2.0 yang Anda minta dalam konfigurasi OIDC penyedia menentukan atribut pengguna yang disediakan idP ke Amazon Cognito. Sebagai praktik keamanan terbaik, hanya minta cakupan yang sesuai dengan atribut yang ingin Anda petakan ke kumpulan pengguna Anda. Misalnya, jika permintaan kumpulan penggunaopenid profile, Anda akan mendapatkan semua atribut yang mungkin, tetapi jika Anda meminta, openid email phone_number Anda hanya akan mendapatkan alamat email dan nomor telepon pengguna. Anda dapat mengonfigurasi cakupan yang Anda minta OIDC IdPs agar berbeda dari yang Anda otorisasi dan minta dalam permintaan otentikasi klien aplikasi dan kumpulan pengguna.

Saat pengguna masuk ke aplikasi menggunakan OIDC iDP, kumpulan pengguna akan menjalankan alur autentikasi berikut.

  1. Pengguna Anda mendarat di halaman login bawaan Amazon Cognito, dan ditawarkan opsi untuk masuk melalui iDP, misalnya OIDC Salesforce.

  2. Pengguna Anda dialihkan ke authorization titik akhir iDP. OIDC

  3. Setelah pengguna Anda mengautentikasi, OIDC iDP mengalihkan ke Amazon Cognito dengan kode otorisasi.

  4. Amazon Cognito menukar kode otorisasi dengan iDP untuk token OIDC akses.

  5. Amazon Cognito membuat atau memperbarui akun pengguna di kolam pengguna Anda.

  6. Amazon Cognito menerbitkan token pembawa aplikasi Anda, yang mungkin termasuk identitas, akses, dan token penyegaran.

Aliran OIDC otentikasi IDP kumpulan pengguna
catatan

Amazon Cognito membatalkan permintaan otentikasi yang tidak selesai dalam 5 menit, dan mengarahkan pengguna ke UI yang dihosting. Halaman menampilkan pesan Something went wrong kesalahan.

OIDCadalah lapisan identitas di atas OAuth 2.0, yang menentukan token identitas JSON -formatted (JWT) yang dikeluarkan oleh aplikasi OIDC klien ( IdPs pihak yang mengandalkan). Lihat dokumentasi untuk OIDC IDP Anda untuk informasi tentang cara menambahkan Amazon Cognito sebagai OIDC pihak yang mengandalkan.

Saat pengguna mengautentikasi dengan pemberian kode otorisasi, kumpulan pengguna mengembalikan ID, akses, dan token penyegaran. Token ID adalah OIDCtoken standar untuk manajemen identitas, dan token akses adalah token OAuth2.0 standar. Untuk informasi selengkapnya tentang jenis hibah yang dapat didukung oleh klien aplikasi kumpulan pengguna Anda, lihatOtorisasi titik akhir.

Bagaimana kumpulan pengguna memproses klaim dari OIDC penyedia

Saat pengguna menyelesaikan proses masuk dengan OIDC penyedia pihak ketiga, UI yang dihosting Amazon Cognito akan mengambil kode otorisasi dari iDP. Kumpulan pengguna Anda menukar kode otorisasi untuk akses dan token ID dengan token titik akhir IDP Anda. Kumpulan pengguna Anda tidak meneruskan token ini ke pengguna atau aplikasi Anda, tetapi menggunakannya untuk membuat profil pengguna dengan data yang ditampilkan dalam klaim dalam tokennya sendiri.

Amazon Cognito tidak secara independen memvalidasi token akses. Sebagai gantinya, ia meminta informasi atribut pengguna dari userInfo titik akhir penyedia dan mengharapkan permintaan ditolak jika token tidak valid.

Amazon Cognito memvalidasi token ID penyedia dengan pemeriksaan berikut:

  1. Periksa apakah penyedia menandatangani token dengan algoritma dari set berikut:RSA,HMAC, Elliptic Curve.

  2. Jika penyedia menandatangani token dengan algoritme penandatanganan asimetris, periksa apakah ID kunci penandatanganan dalam kid klaim token terdaftar di titik jwks_uri akhir penyedia.

  3. Bandingkan tanda tangan token ID dengan tanda tangan yang diharapkan berdasarkan metadata penyedia.

  4. Bandingkan iss klaim dengan OIDC penerbit yang dikonfigurasi untuk IDP.

  5. Bandingkan aud klaim yang cocok dengan ID klien yang dikonfigurasi di iDP, atau berisi ID klien yang dikonfigurasi jika ada beberapa nilai dalam klaim. aud

  6. Periksa apakah stempel waktu dalam exp klaim tidak sebelum waktu saat ini.

Kumpulan pengguna Anda memvalidasi token ID, lalu mencoba permintaan ke userInfo titik akhir penyedia dengan token akses penyedia. Ini mengambil informasi profil pengguna yang cakupan dalam token akses mengotorisasi untuk dibaca. Kumpulan pengguna Anda kemudian mencari atribut pengguna yang telah Anda tetapkan seperti yang diperlukan dalam kumpulan pengguna Anda. Anda harus membuat pemetaan atribut dalam konfigurasi penyedia Anda untuk atribut yang diperlukan. Kumpulan pengguna Anda memeriksa token ID penyedia dan userInfo responsnya. Kumpulan pengguna Anda menulis semua klaim yang mencocokkan aturan pemetaan dengan atribut pengguna di profil pengguna kumpulan pengguna. Kumpulan pengguna Anda mengabaikan atribut yang cocok dengan aturan pemetaan tetapi tidak diperlukan dan tidak ditemukan dalam klaim penyedia.