Memetakan atribut iDP ke profil dan token - Amazon Cognito

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 atau id_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 usernameatribut sumber
    Facebook 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 CreateUserPoolClientAPIoperasi, Anda dapat menambahkan atribut ini ke WriteAttributes 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
  1. Masuk ke konsol Amazon Cognito. Jika diminta, masukkan AWS kredensialnya.

  2. Di panel navigasi, pilih Kumpulan Pengguna, dan pilih kumpulan pengguna yang ingin Anda edit.

  3. Pilih tab Pengalaman masuk dan temukan proses masuk Federasi.

  4. 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

  5. Untuk setiap atribut yang perlu Anda petakan, selesaikan langkah-langkah berikut:

    1. 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.

    2. 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.

    3. Untuk memetakan atribut tambahan antara IDP dan Amazon Cognito, pilih Tambahkan atribut lain.

  6. Pilih Simpan perubahan.

Untuk menentukan pemetaan atribut SAML provider
  1. Masuk ke konsol Amazon Cognito. Jika diminta, masukkan AWS kredensialnya.

  2. Di panel navigasi, pilih Kumpulan Pengguna, dan pilih kumpulan pengguna yang ingin Anda edit.

  3. Pilih tab Pengalaman masuk dan temukan proses masuk Federasi.

  4. 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

  5. Untuk setiap atribut yang perlu Anda petakan, selesaikan langkah-langkah berikut:

    1. 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.

    2. 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, sepertiemail, sementara yang lain menggunakan nama atribut URL -formatted mirip dengan:

      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
    3. Untuk memetakan atribut tambahan antara IDP dan Amazon Cognito, pilih Tambahkan atribut lain.

  6. 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 emailaddressbirthdate, 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/emailaddress

    Di 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