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 untuk perusahaan apa mereka bekerja, cara menghubungi mereka, dan informasi identifikasi lainnya. Tetapi format yang diambil atribut ini memiliki variasi antar penyedia. Misalnya, siapkan tiga IdPs dari tiga vendor berbeda dengan kumpulan pengguna Anda dan periksa contoh SAML pernyataan, token ID, atau userInfo
muatan dari masing-masing vendor. 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 berasal dari konsolidasi IdPs dengan kumpulan pengguna adalah kemampuan untuk memetakan berbagai nama atribut ke dalam skema OIDC token tunggal dengan nama atribut bersama yang konsisten, dapat diprediksi, dan dibagikan. Dengan cara ini, pengembang Anda tidak diharuskan 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 kumpulan pengguna IDP memiliki skema pemetaan atribut terpisah. Untuk menentukan pemetaan atribut untuk iDP Anda, konfigurasikan penyedia identitas kumpulan pengguna di konsol Amazon Cognito, atau kumpulan pengguna. AWS SDK REST API
Hal yang perlu diketahui tentang pemetaan
Sebelum Anda mulai mengatur pemetaan atribut pengguna, tinjau detail penting berikut.
-
Saat pengguna federasi masuk ke aplikasi Anda, pemetaan harus ada untuk setiap atribut kumpulan pengguna yang diperlukan oleh kumpulan pengguna Anda. Misalnya, jika kumpulan pengguna Anda memerlukan
email
atribut untuk mendaftar, petakan atribut ini ke ekuivalennya 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 OIDC penyedia menyertakan
email_verified
atribut. -
Anda dapat memetakan token penyedia identitas (iDP) ke atribut kustom di kumpulan pengguna Anda. Penyedia sosial menyajikan token akses, dan OIDC penyedia menyajikan token akses dan ID. Untuk memetakan token, tambahkan atribut kustom dengan panjang maksimum 2.048 karakter, berikan akses tulis klien aplikasi Anda ke atribut, dan petakan
access_token
atauid_token
dari idP ke atribut kustom. -
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 ketika token memiliki panjang lebih dari 2.048 karakter.
-
Amazon Cognito memperoleh
username
atribut dalam profil pengguna federasi dari klaim spesifik yang dilewati oleh 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, petakan atribut tersebut ke atribut login Amazon Cognito seperti.preferred_username
Penyedia Identitas username
atribut sumberFacebook id
Google sub
Login with Amazon user_id
Masuk dengan Apple sub
SAMLpenyedia NameID
Penyedia OpenID Connect () OIDC sub
-
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 memperbarui setiap atribut yang dipetakan, bahkan jika nilainya saat ini sudah sesuai dengan informasi terbaru. Untuk memastikan bahwa Amazon Cognito dapat memperbarui atribut, periksa persyaratan berikut:
-
Semua atribut kustom kumpulan pengguna yang Anda petakan dari IDP Anda harus bisa berubah. Anda dapat memperbarui atribut kustom yang bisa berubah 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 bisa berubah di konsol Amazon Cognito, aktifkan kotak centang Mutable untuk atribut yang Anda tambahkan saat memilih Tambahkan atribut kustom di tab Pengalaman pendaftaran. Atau, jika Anda membuat kumpulan pengguna menggunakan CreateUserPoolAPIoperasi, Anda dapat mengatur
Mutable
parameter untuk masing-masing atribut initrue
. Jika idP Anda mengirimkan nilai untuk atribut immutable yang dipetakan, Amazon Cognito mengembalikan kesalahan dan proses masuk 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 menggunakan
CreateUserPoolClient
APIoperasi, Anda dapat menambahkan atribut ini keWriteAttributes
array. Jika idP Anda mengirimkan nilai untuk atribut non-writable yang dipetakan, Amazon Cognito tidak menyetel nilai atribut dan melanjutkan dengan autentikasi.
-
-
Ketika atribut IDP berisi beberapa nilai, Amazon Cognito meratakan semua nilai menjadi string tunggal yang dibatasi koma URL dan mengkodekan formulir nilai yang mengandung karakter non-alfanumerik (tidak termasuk karakter '', '', ', dan' ').
.
-
*
_
Anda harus memecahkan kode dan mengurai nilai individual sebelum menggunakannya di aplikasi.
Menentukan pemetaan atribut penyedia identitas untuk kumpulan pengguna Anda ()AWS Management Console
Anda dapat menggunakan AWS Management Console 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 Lambda Pra-Otentikasi untuk menghapus atribut kustom selama autentikasi dan mengizinkan atribut ini terisi kembali dari token yang masuk.
Untuk menentukan pemetaan atribut iDP sosial
-
Masuk ke konsol Amazon Cognito
. Jika diminta, masukkan AWS kredensialnya. -
Di panel navigasi, pilih Kumpulan Pengguna, dan pilih kumpulan pengguna yang ingin Anda edit.
-
Pilih tab Pengalaman masuk dan temukan proses masuk Federasi.
-
Pilih Tambahkan penyedia identitas, atau pilih Facebook, Google, Amazon, atau Apple iDP yang telah Anda konfigurasikan. Temukan pemetaan Atribut dan pilih Edit.
Untuk informasi selengkapnya tentang menambahkan IdP sosial, lihat. Menggunakan penyedia identitas sosial dengan kumpulan pengguna
-
Untuk setiap atribut yang perlu Anda petakan, selesaikan langkah-langkah berikut:
-
Pilih atribut dari kolom atribut User pool. Ini adalah atribut yang ditetapkan ke profil pengguna di kumpulan pengguna Anda. Atribut kustom terdaftar setelah atribut standar.
-
Pilih atribut dari
<provider>
kolom atribut. Ini akan menjadi atribut yang diteruskan dari direktori penyedia. Atribut yang dikenal 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 SAML provider
-
Masuk ke konsol Amazon Cognito
. Jika diminta, masukkan AWS kredensialnya. -
Di panel navigasi, pilih Kumpulan Pengguna, dan pilih kumpulan pengguna yang ingin Anda edit.
-
Pilih tab Pengalaman masuk dan temukan proses masuk Federasi.
-
Pilih Tambahkan penyedia identitas, atau pilih SAML idP yang telah Anda konfigurasikan. Temukan pemetaan Atribut, dan pilih Edit. Untuk informasi selengkapnya tentang menambahkan SAML IDP, lihat. Menggunakan penyedia SAML identitas dengan kumpulan pengguna
-
Untuk setiap atribut yang perlu Anda petakan, selesaikan langkah-langkah berikut:
-
Pilih atribut dari kolom atribut User pool. Ini adalah atribut yang ditetapkan ke profil pengguna di kumpulan pengguna Anda. Atribut kustom terdaftar setelah atribut standar.
-
Pilih atribut dari kolom SAMLatribut. Ini akan menjadi atribut yang diteruskan dari direktori penyedia.
IDP Anda mungkin menawarkan contoh SAML pernyataan untuk referensi. Beberapa IdPs menggunakan nama sederhana, seperti
email
, sementara yang lain menggunakan nama atribut URL -formatted 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 (dan)AWS CLIAWS API
Badan permintaan berikut untuk CreateIdentityProvideratau UpdateIdentityProvidermemetakan atribut "MyIdP” SAML penyedia emailaddress
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-provider
Contoh 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.json
berisi:{ "MetadataFile": "
<SAML metadata XML>
" }catatan
Jika
<SAML metadata XML>
berisi kutipan ("
), mereka harus lolos ()\"
.Contoh dengan metadataURL:
aws cognito-idp create-identity-provider \ --user-pool-id
us-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-provider
Contoh:
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-provider
Contoh:
aws cognito-idp describe-identity-provider --user-pool-id
<user_pool_id>
--provider-name<provider_name>
-
API/SDK: DescribeIdentityProvider