Menggunakan penyedia OIDC identitas dengan kumpulan pengguna - Amazon Cognito

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

Menggunakan penyedia OIDC identitas dengan kumpulan pengguna

Pengguna dapat masuk ke aplikasi Anda menggunakan akun mereka yang ada dari penyedia identitas OpenID Connect (OIDC) (IdPs). Dengan OIDC penyedia, pengguna sistem masuk tunggal independen dapat memberikan kredensyal yang ada saat aplikasi Anda menerima OIDC token dalam format bersama kumpulan pengguna. User pool adalah OIDC iDP yang juga dapat berfungsi sebagai pihak yang mengandalkan perantara antara beberapa eksternal OIDC IdPs dan aplikasi Anda.

Pengguna yang masuk dengan OIDC IDP tidak diharuskan memberikan kredensyal atau informasi baru untuk mengakses aplikasi kumpulan pengguna Anda. Aplikasi Anda dapat secara diam-diam mengarahkan mereka ke IDP mereka untuk login, dengan kumpulan pengguna sebagai alat di latar belakang yang menstandarisasi format token untuk aplikasi Anda. Untuk mempelajari lebih lanjut tentang pengalihan iDP, lihat. Otorisasi titik akhir

Seperti penyedia identitas pihak ketiga lainnya, Anda harus mendaftarkan aplikasi Anda ke OIDC penyedia dan mendapatkan informasi tentang aplikasi iDP yang ingin Anda sambungkan ke kumpulan pengguna Anda. OIDCIdP kumpulan pengguna memerlukan ID klien, rahasia klien, cakupan yang ingin Anda minta, dan informasi tentang titik akhir layanan penyedia. Kumpulan pengguna Anda dapat menemukan OIDC titik akhir penyedia dari titik akhir penemuan atau Anda dapat memasukkannya secara manual. Anda juga harus memeriksa token ID penyedia dan membuat pemetaan atribut antara iDP dan atribut di kumpulan pengguna Anda.

Ikhtisar otentikasi dengan IDP OIDC
catatan

Masuk melalui pihak ketiga (federasi) tersedia di kolam pengguna Amazon Cognito. Fitur ini independen dari OIDC federasi dengan kumpulan identitas Amazon Cognito.

Anda dapat menambahkan OIDC IDP ke kumpulan pengguna Anda di AWS Management Console, melalui AWS CLI, atau dengan metode kumpulan API pengguna. CreateIdentityProvider

Prasyarat

Sebelum memulai, Anda perlu melakukan hal berikut:

  • Kumpulan pengguna dengan klien aplikasi dan domain kumpulan pengguna. Untuk informasi selengkapnya, lihat Membuat kolam pengguna.

  • OIDCIdP dengan konfigurasi berikut:

    • Mendukung otentikasi client_secret_post klien. Amazon Cognito tidak memeriksa token_endpoint_auth_methods_supported klaim di titik akhir OIDC penemuan untuk IDP Anda. Amazon Cognito tidak mendukung otentikasi client_secret_basic klien. Untuk informasi selengkapnya tentang otentikasi klien, lihat Otentikasi Klien di dokumentasi OpenID Connect.

    • Hanya digunakan HTTPS untuk OIDC titik akhir sepertiopenid_configuration,userInfo, danjwks_uri.

    • Hanya menggunakan TCP port 80 dan 443 untuk titik OIDC akhir.

    • Hanya menandatangani token ID dengan HMAC -SHA,ECDSA, atau RSA algoritma.

    • Menerbitkan kid klaim ID kunci di dalamnya jwks_uri dan menyertakan kid klaim dalam tokennya.

    • Menyajikan kunci publik yang tidak kedaluwarsa dengan rantai kepercayaan CA root yang valid.

Langkah 1: Daftar dengan OIDC IDP

Sebelum Anda membuat OIDC iDP dengan Amazon Cognito, Anda harus mendaftarkan aplikasi Anda dengan OIDC iDP untuk menerima ID klien dan rahasia klien.

Untuk mendaftar dengan OIDC IDP
  1. Buat akun pengembang dengan OIDC IDP.

    Tautan ke OIDC IdPs
    OIDCiDP Cara Menginstal OIDCPenemuan URL
    Salesforce

    Instal penyedia identitas Salesforce

    https://login.salesforce.com

    Identitas Ping

    Instal penyedia identitas Ping Identity

    https://Your Ping domain address:9031/idp/userinfo.openid

    Misalnya: https://pf.company.com:9031/idp/userinfo.openid

    Okta

    Instal penyedia identitas Okta

    https://Your Okta subdomain.oktapreview.com

    atau https://Your Okta subdomain.okta.com

    Microsoft Azure Active Directory (Azure AD)

    Instal penyedia identitas Microsoft Azure AD

    https://login.microsoftonline.com/{tenant}/v2.0

    Google

    Instal penyedia identitas Google

    https://accounts.google.com

    catatan

    Amazon Cognito menawarkan Google sebagai IdP masuk sosial yang terintegrasi. Sebaiknya Anda menggunakan IdP terintegrasi. Lihat Menggunakan penyedia identitas sosial dengan kumpulan pengguna.

  2. Daftarkan domain pool pengguna Anda URL dengan /oauth2/idpresponse endpoint dengan OIDC IDP Anda. Ini memastikan bahwa OIDC IDP kemudian menerimanya dari Amazon Cognito saat mengautentikasi pengguna.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Daftarkan callback Anda URL dengan kumpulan pengguna Amazon Cognito Anda. Ini adalah halaman tempat Amazon Cognito mengalihkan pengguna Anda setelah otentikasi berhasil. URL

    https://www.example.com
  4. Pilih cakupan Anda. Cakupan openid diperlukan. Cakupan email diperlukan untuk memberikan akses ke klaim email dan email_verified.

  5. OIDCIDP memberi Anda ID klien dan rahasia klien. Anda akan menggunakannya saat menyiapkan OIDC iDP di kumpulan pengguna Anda.

Contoh: Gunakan Salesforce sebagai OIDC IDP dengan kumpulan pengguna Anda

Anda menggunakan OIDC iDP ketika Anda ingin membangun kepercayaan antara iDP OIDC -kompatibel seperti Salesforce dan kumpulan pengguna Anda.

  1. Buat akun di situs web Developer Salesforce.

  2. Masuk melalui akun developer yang Anda siapkan di langkah sebelumnya.

  3. Dari halaman Salesforce Anda, lakukan salah satu hal berikut:

    • Jika Anda menggunakan Lightning Experience, pilih ikon setup gear, lalu pilih Setup Home.

    • Jika Anda menggunakan Salesforce Classic dan Anda melihat Penyiapan di header antarmuka pengguna, pilih itu.

    • Jika Anda menggunakan Salesforce Classic dan Anda tidak melihat Penyiapan di header, pilih nama Anda dari bilah navigasi atas, lalu pilih Penyiapan dari daftar tarik-turun.

  4. Di bilah navigasi kiri, pilih Pengaturan Perusahaan.

  5. Pada bilah navigasi, pilih Domain, masukkan domain, dan pilih Buat.

  6. Di bilah navigasi kiri, di bawah Alat Platform, pilih Aplikasi.

  7. Pilih Pengelola Aplikasi.

    1. Pilih Aplikasi baru yang terhubung.

    2. Lengkapi bidang yang diperlukan.

      Di bawah Mulai URL, masukkan URL /authorize titik akhir untuk domain kumpulan pengguna yang masuk dengan IDP Salesforce Anda. Saat pengguna mengakses aplikasi yang terhubung, Salesforce mengarahkan mereka ke aplikasi ini URL untuk menyelesaikan proses masuk. Kemudian Salesforce mengarahkan pengguna ke callback URL yang telah Anda kaitkan dengan klien aplikasi Anda.

      https://mydomain.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
    3. Aktifkan OAuthpengaturan dan masukkan /oauth2/idpresponse titik URL akhir untuk domain kumpulan pengguna Anda di Callback URL. URLDi sinilah Salesforce mengeluarkan kode otorisasi yang ditukar Amazon Cognito dengan token. OAuth

      https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  8. Pilih cakupan Anda. Anda harus menyertakan openid lingkup. Untuk memberikan akses ke email dan klaim email_verified, tambahkan cakupan email. Pisahkan cakupan berdasarkan spasi.

  9. Pilih Buat.

    Dalam Salesforce, ID klien disebut Kunci Konsumen, dan rahasia klien adalah Rahasia Konsumen. Perhatikan ID klien dan rahasia klien Anda. Anda akan menggunakannya di bagian selanjutnya.

Langkah 2: Tambahkan OIDC IDP ke kumpulan pengguna Anda

Di bagian ini, Anda mengonfigurasi kumpulan pengguna Anda untuk memproses permintaan otentikasi OIDC berbasis dari OIDC iDP.

Untuk menambahkan OIDC iDP (konsol Amazon Cognito)

Menambahkan sebuah OIDC iDP
  1. Masuk ke Konsol Amazon Cognito. Jika diminta, masukkan AWS kredensialnya.

  2. Pilih User Pools dari menu navigasi.

  3. Pilih kolam pengguna yang ada dari daftar, atau buat kolam pengguna.

  4. Pilih tab Pengalaman masuk. Cari Masuk Federasi dan pilih Tambahkan penyedia identitas.

  5. Pilih OpenID Connect IDP.

  6. Masukkan nama unik ke dalam nama Penyedia.

  7. Masukkan ID klien yang Anda terima dari penyedia Anda ke ID Klien.

  8. Masukkan rahasia klien yang Anda terima dari penyedia Anda ke dalam rahasia Klien.

  9. Masukkan cakupan resmi untuk penyedia ini. Cakupan menentukan grup atribut pengguna mana (seperti name danemail) yang akan diminta aplikasi Anda dari penyedia Anda. Lingkup harus dipisahkan oleh spasi, mengikuti spesifikasi OAuth2.0.

    Pengguna Anda akan diminta untuk menyetujui untuk memberikan atribut ini ke aplikasi Anda.

  10. Pilih metode permintaan Atribut untuk menyediakan Amazon Cognito dengan HTTP metode (salah satu GET atauPOST) yang harus digunakan untuk mengambil detail pengguna dari userInfotitik akhir yang dioperasikan oleh penyedia Anda.

  11. Pilih metode Pengaturan untuk mengambil titik akhir OpenID Connect baik dengan pengisian Otomatis URL melalui penerbit atau input Manual. Gunakan Isi otomatis melalui penerbit URL saat penyedia Anda memiliki .well-known/openid-configuration titik akhir publik tempat Amazon Cognito dapat mengambil URLs titik akhirtoken,,, userInfo dan titik authorization akhir. jwks_uri

  12. Masukkan penerbit URL atauauthorization,, tokenuserInfo, dan jwks_uri titik akhir URLs dari IDP Anda.

    catatan

    URLHarus dimulai denganhttps://, dan tidak boleh diakhiri dengan garis miring/. Hanya nomor port 443 dan 80 yang dapat digunakan dengan iniURL. Misalnya, Salesforce menggunakan ini: URL

    https://login.salesforce.com

    Jika Anda memilih pengisian otomatis, dokumen penemuan harus digunakan HTTPS untuk nilai berikut:authorization_endpoint,token_endpoint,userinfo_endpoint, danjwks_uri. Jika tidak, login akan gagal.

  13. Sub OIDC klaim dipetakan ke atribut kumpulan pengguna Username secara default. Anda dapat memetakan OIDC klaim lain ke atribut kumpulan pengguna. Masukkan OIDC klaim, dan pilih atribut kumpulan pengguna yang sesuai dari daftar drop-down. Misalnya, email klaim sering dipetakan ke atribut kolam pengguna Email.

  14. Petakan atribut dari iDP Anda ke kumpulan pengguna Anda. Untuk informasi selengkapnya, lihat Menentukan Pemetaan Atribut Penyedia Identitas untuk Kolam Pengguna Anda.

  15. Pilih Buat.

  16. Dari tab Integrasi klien aplikasi, pilih salah satu klien Aplikasi dalam daftar dan Edit pengaturan UI yang dihosting. Tambahkan OIDC iDP baru ke klien aplikasi di bawah Penyedia identitas.

  17. Pilih Simpan perubahan.

Untuk menambahkan OIDC iDP ()AWS CLI

  • Lihat deskripsi parameter untuk CreateIdentityProviderAPImetode ini.

    aws cognito-idp create-identity-provider --user-pool-id string --provider-name string --provider-type OIDC --provider-details map --attribute-mapping string --idp-identifiers (list) --cli-input-json string --generate-cli-skeleton string

    Gunakan peta detail penyedia ini:

    { "client_id": "string", "client_secret": "string", "authorize_scopes": "string", "attributes_request_method": "string", "oidc_issuer": "string", "authorize_url": "string", "token_url": "string", "attributes_url": "string", "jwks_uri": "string" }

Langkah 3: Uji konfigurasi OIDC IDP Anda

Anda dapat membuat otorisasi URL dengan menggunakan elemen dari dua bagian sebelumnya, dan menggunakannya untuk menguji konfigurasi OIDC IDP Anda.

https://mydomain.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

Anda dapat menemukan domain Anda di halaman konsol Nama Domain kolam pengguna. client_id ada di halaman Pengaturan umum. Gunakan callback Anda URL untuk parameter redirect_uri. Ini adalah halaman di mana pengguna Anda akan diarahkan setelah otentikasi berhasil. URL