Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memetakan atribut IdP ke profil dan token
Layanan penyedia identitas (IdP), termasuk Amazon Cognito, biasanya dapat merekam lebih banyak informasi tentang pengguna. Anda mungkin ingin tahu perusahaan mana mereka bekerja, cara menghubungi mereka, dan informasi identifikasi lainnya. Tetapi format yang diambil atribut ini memiliki variasi antar penyedia. Misalnya, atur tiga IdPs dari tiga vendor berbeda dengan kumpulan pengguna Anda dan periksa contoh pernyataan SAML, token ID, atau userInfo payload dari masing-masing. Satu akan mewakili alamat email pengguna sebagaiemail, yang lain sebagaiemailaddress, dan yang ketiga sebagaihttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress.
Manfaat utama yang datang dari konsolidasi IdPs dengan kumpulan pengguna adalah kemampuan untuk memetakan berbagai nama atribut ke dalam skema token OIDC tunggal dengan nama atribut bersama yang konsisten, dapat diprediksi. Dengan cara ini, pengembang Anda tidak diharuskan untuk mempertahankan logika untuk memproses berbagai peristiwa masuk tunggal yang kompleks. Konsolidasi format ini adalah pemetaan atribut. Pemetaan atribut kumpulan pengguna menetapkan nama atribut IdP ke nama atribut kumpulan pengguna yang sesuai. Misalnya, Anda dapat mengonfigurasi kumpulan pengguna untuk menulis nilai emailaddress klaim ke atribut kumpulan pengguna standaremail.
Setiap IdP kumpulan pengguna memiliki skema pemetaan atribut terpisah. Untuk menentukan pemetaan atribut untuk IdP Anda, konfigurasikan penyedia identitas kumpulan pengguna di konsol Amazon Cognito, AWS SDK, atau REST kumpulan pengguna.
Hal yang perlu diketahui tentang pemetaan
Sebelum Anda mulai mengatur pemetaan atribut pengguna, tinjau detail penting berikut ini.
-
Saat pengguna federasi masuk ke aplikasi Anda, pemetaan harus ada untuk setiap atribut kumpulan pengguna yang diperlukan kumpulan pengguna Anda. Misalnya, jika kumpulan pengguna Anda memerlukan
emailatribut untuk mendaftar, petakan atribut ini ke yang setara dari IdP. -
Secara default, alamat email yang dipetakan tidak diverifikasi. Anda tidak dapat memverifikasi alamat email yang dipetakan menggunakan kode satu kali. Sebagai gantinya, petakan atribut dari IdP Anda untuk mendapatkan status verifikasi. Misalnya, Google dan sebagian besar penyedia OIDC menyertakan atribut
email_verified. -
Anda dapat memetakan token penyedia identitas (IdP) ke atribut khusus di kumpulan pengguna Anda. Penyedia sosial menyajikan token akses, dan penyedia OIDC menyajikan token akses dan ID. Untuk memetakan token, tambahkan atribut khusus dengan panjang maksimum 2.048 karakter, berikan akses tulis klien aplikasi Anda ke atribut tersebut, dan petakan
access_tokenatauid_tokendari IdP ke atribut khusus. -
Untuk setiap atribut kumpulan pengguna yang dipetakan, panjang nilai maksimum 2.048 karakter harus cukup besar untuk nilai yang diperoleh Amazon Cognito dari IdP. Jika tidak, Amazon Cognito melaporkan kesalahan saat pengguna masuk ke aplikasi Anda. Amazon Cognito tidak mendukung pemetaan token IdP ke atribut khusus jika token memiliki panjang lebih dari 2.048 karakter.
-
Amazon Cognito memperoleh
usernameatribut dalam profil pengguna federasi dari klaim spesifik yang dilewati IdP federasi Anda, seperti yang ditunjukkan pada tabel berikut. Amazon Cognito menambahkan nilai atribut ini dengan nama IdP Anda, misalnya.MyOIDCIdP_[sub]Jika Anda ingin pengguna federasi memiliki atribut yang sama persis dengan atribut di direktori pengguna eksternal Anda, petakan atribut tersebut ke atribut masuk Amazon Cognito seperti.preferred_usernamePenyedia Identitas usernameatribut sumberFacebook idGoogle subLogin with Amazon user_idMasuk dengan Apple subPenyedia SAML NameIDPenyedia OpenID Connect (OIDC) sub -
Jika kumpulan pengguna tidak peka huruf besar/kecil, Amazon Cognito mengubah seluruh nama pengguna yang dibuat secara otomatis dari pengguna federasi menjadi huruf kecil, termasuk awalan nama IdP. Berikut ini adalah contoh nama pengguna untuk kumpulan pengguna yang peka huruf besar-kecil:
MySAML_TestUser@example.com. Berikut ini adalah nama pengguna yang sama untuk kumpulan pengguna yang tidak p eka huruf bes ar/kecil:mysaml_testuser@example.com.Dalam kumpulan pengguna yang tidak peka huruf besar/kecil, pemicu Lambda yang memproses nama pengguna harus memperhitungkan perubahan pada seluruh nama pengguna. Perubahan ini mencakup nilai kasus campuran dari atribut sumber nama pengguna yang Anda petakan dari IdP Anda. Untuk menautkan IdP Anda ke kumpulan pengguna dengan pengaturan sensitivitas huruf besar-kecil yang berbeda dari kumpulan saat ini, buat kumpulan pengguna baru.
-
Amazon Cognito harus dapat memperbarui atribut kolam pengguna yang dipetakan ketika pengguna masuk ke aplikasi Anda. Saat pengguna masuk melalui IdP, Amazon Cognito memperbarui atribut yang dipetakan dengan informasi terbaru dari IdP. Amazon Cognito hanya memperbarui atribut yang dipetakan saat nilainya berubah. Untuk memastikan bahwa Amazon Cognito dapat memperbarui atribut, periksa persyaratan berikut:
-
Semua atribut khusus kumpulan pengguna yang Anda petakan dari IdP harus dapat diubah. Anda dapat memperbarui atribut khusus yang dapat diubah kapan saja. Sebaliknya, Anda hanya dapat menetapkan nilai untuk atribut kustom yang tidak dapat diubah pengguna saat pertama kali membuat profil pengguna. Untuk membuat atribut kustom yang dapat diubah di konsol Amazon Cognito, aktifkan kotak centang Mutable untuk atribut yang Anda tambahkan saat memilih Tambahkan atribut khusus di menu. Sign-up Atau, jika Anda membuat kumpulan pengguna dengan menggunakan operasi CreateUserPool API, Anda dapat mengatur
Mutableparameter untuk masing-masing atribut ini ketrue. Jika IdP Anda mengirimkan nilai untuk atribut yang tidak dapat diubah yang dipetakan, Amazon Cognito mengembalikan kesalahan dan login gagal. -
Dalam pengaturan klien aplikasi untuk aplikasi Anda, atribut yang dipetakan harus dapat ditulis. Anda dapat mengatur atribut mana yang dapat ditulis di halaman Klien aplikasi di konsol Amazon Cognito. Atau, jika Anda membuat klien aplikasi dengan menggunakan operasi API
CreateUserPoolClient, Anda dapat menambahkan atribut ini ke arrayWriteAttributes. Jika IdP mengirimkan nilai untuk atribut yang tidak dapat ditulis yang dipetakan, Amazon Cognito tidak menetapkan nilai atribut dan melanjutkan dengan otentikasi.
-
-
Ketika atribut IdP berisi beberapa nilai, Amazon Cognito meratakan semua nilai menjadi satu string yang dipisahkan koma yang tertutup dalam karakter kurung persegi dan.
[]Formulir URL Amazon Cognito mengkodekan nilai yang berisi karakter non-alfanumerik kecuali untuk,,, dan..-*_Anda harus memecahkan kode dan mengurai nilai individual sebelum menggunakannya di aplikasi. -
Atribut tujuan mempertahankan nilai apa pun yang ditetapkan oleh aturan pemetaan atribut Anda kecuali jika tindakan masuk atau administratif mengubahnya. Amazon Cognito tidak menghapus atribut dari pengguna saat atribut sumber tidak lagi dikirim dalam token penyedia atau pernyataan SAML. Tindakan berikut menghapus nilai atribut dari profil kumpulan pengguna untuk pengguna federasi:
-
IdP mengirimkan nilai kosong untuk atribut sumber dan aturan pemetaan menerapkan nilai kosong ke atribut tujuan.
-
Anda menghapus nilai atribut yang dipetakan dengan AdminDeleteUserAttributes permintaan DeleteUserAttributes atau.
-
Menentukan pemetaan atribut penyedia identitas untuk kumpulan pengguna Anda (Konsol Manajemen AWS)
Anda dapat menggunakan Konsol Manajemen AWS untuk menentukan pemetaan atribut untuk IdP kumpulan pengguna Anda.
catatan
Amazon Cognito akan memetakan klaim masuk ke atribut kolam pengguna hanya jika klaim ada di token masuk. Jika klaim yang dipetakan sebelumnya tidak lagi ada di token masuk, klaim tersebut tidak akan dihapus atau diubah. Jika aplikasi Anda memerlukan pemetaan klaim yang dihapus, Anda dapat menggunakan pemicu Pre-Authentication Lambda untuk menghapus atribut khusus selama otentikasi dan mengizinkan atribut ini diisi ulang dari token yang masuk.
Untuk menentukan pemetaan atribut IdP sosial
-
Masuk ke konsol Amazon Cognito
. Jika diminta, masukkan AWS kredensibilitas Anda. -
Di panel navigasi, pilih Kumpulan Pengguna, dan pilih kumpulan pengguna yang ingin Anda edit.
-
Pilih menu penyedia sosial dan eksternal.
-
Pilih Tambahkan penyedia identitas, atau pilih Facebook, Google, Amazon atau Apple IdP yang telah Anda konfigurasi. Cari pemetaan atribut dan pilih Edit.
Untuk informasi selengkapnya tentang menambahkan IdP sosial, lihatMenggunakan penyedia identitas sosial dengan kumpulan pengguna.
-
Untuk setiap atribut yang perlu Anda petakan, selesaikan langkah-langkah berikut:
-
Pilih atribut dari kolom atribut kumpulan pengguna. Ini adalah atribut yang ditetapkan ke profil pengguna di kumpulan pengguna Anda. Atribut kustom dicantumkan setelah atribut standar.
-
Pilih atribut dari kolom
<provider>atribut. Ini akan menjadi atribut yang diteruskan dari direktori penyedia. Atribut yang diketahui dari penyedia sosial disediakan dalam daftar drop-down. -
Untuk memetakan atribut tambahan antara IdP dan Amazon Cognito, pilih Tambahkan atribut lain.
-
-
Pilih Simpan perubahan.
Untuk menentukan pemetaan atribut penyedia SAML
-
Masuk ke Konsol Amazon Cognito
. Jika diminta, masukkan AWS kredensibilitas Anda. -
Di panel navigasi, pilih Kumpulan Pengguna, dan pilih kumpulan pengguna yang ingin Anda edit.
-
Pilih menu penyedia sosial dan eksternal.
-
Pilih Tambahkan penyedia identitas, atau pilih IdP SAML yang telah Anda konfigurasi. Cari pemetaan atribut, dan pilih Edit. Untuk informasi selengkapnya tentang menambahkan IdP SAML, lihat. Menggunakan penyedia identitas SAML dengan kumpulan pengguna
-
Untuk setiap atribut yang perlu Anda petakan, selesaikan langkah-langkah berikut:
-
Pilih atribut dari kolom atribut kumpulan pengguna. Ini adalah atribut yang ditetapkan ke profil pengguna di kumpulan pengguna Anda. Atribut kustom dicantumkan setelah atribut standar.
-
Pilih atribut dari kolom atribut SAML. Ini akan menjadi atribut yang diteruskan dari direktori penyedia.
IdP Anda mungkin menawarkan contoh pernyataan SAML untuk referensi. Beberapa IdPs menggunakan nama sederhana, seperti
email, sementara yang lain menggunakan nama URL-formatted atribut yang mirip dengan:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress -
Untuk memetakan atribut tambahan antara IdP dan Amazon Cognito, pilih Tambahkan atribut lain.
-
-
Pilih Simpan perubahan.
Menentukan pemetaan atribut penyedia identitas untuk kumpulan pengguna Anda (AWS CLI and AWS API)
Badan permintaan berikut untuk CreateIdentityProvider atau UpdateIdentityProvider memetakan atribut “MyIdP” penyedia SAMLemailaddress,birthdate, dan phone ke atribut kumpulan penggunaemail,birthdate, danphone_number, dalam urutan itu. Ini adalah badan permintaan lengkap untuk penyedia SAML 2.0—badan permintaan Anda akan bervariasi tergantung pada jenis IdP dan detail spesifik. Pemetaan atribut ada di AttributeMapping parameter.
{ "AttributeMapping": { "email" : "emailaddress", "birthdate" : "birthdate", "phone_number" : "phone" }, "IdpIdentifiers": [ "IdP1", "pdxsaml" ], "ProviderDetails": { "IDPInit": "true", "IDPSignout": "true", "EncryptedResponses" : "true", "MetadataURL": "https://auth.example.com/sso/saml/metadata", "RequestSigningAlgorithm": "rsa-sha256" }, "ProviderName": "MyIdP", "ProviderType": "SAML", "UserPoolId": "us-west-2_EXAMPLE" }
Gunakan perintah berikut untuk menentukan pemetaan atribut IdP untuk kumpulan pengguna Anda.
Untuk menentukan pemetaan atribut pada waktu pembuatan penyedia
-
AWS CLI:
aws cognito-idp create-identity-providerContoh dengan file metadata:
aws cognito-idp create-identity-provider --user-pool-id<user_pool_id>--provider-name=SAML_provider_1 --provider-type SAML --provider-details file:///details.json --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressDi mana
details.jsonberisi:{ "MetadataFile": "<SAML metadata XML>" }catatan
Jika
<SAML metadata XML>berisi kutipan ("), mereka harus lolos (\").Contoh dengan URL metadata:
aws cognito-idp create-identity-provider \ --user-pool-idus-east-1_EXAMPLE\ --provider-name=SAML_provider_1 \ --provider-type SAML \ --provider-details MetadataURL=https://myidp.example.com/saml/metadata\ --attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress -
API/SDK: CreateIdentityProvider
Untuk menentukan pemetaan atribut untuk IdP yang ada
-
AWS CLI:
aws cognito-idp update-identity-providerContoh:
aws cognito-idp update-identity-provider --user-pool-id<user_pool_id>--provider-name<provider_name>--attribute-mapping email=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress -
API/SDK: UpdateIdentityProvider
Untuk mendapatkan informasi tentang pemetaan atribut untuk IdP tertentu
-
AWS CLI:
aws cognito-idp describe-identity-providerContoh:
aws cognito-idp describe-identity-provider --user-pool-id<user_pool_id>--provider-name<provider_name> -
API/SDK: DescribeIdentityProvider