

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

# Menautkan pengguna gabungan ke profil pengguna yang ada
<a name="cognito-user-pools-identity-federation-consolidate-users"></a>

Seringkali, pengguna yang sama memiliki profil dengan beberapa penyedia identitas (IdPs) yang telah Anda sambungkan ke kumpulan pengguna Anda. Amazon Cognito dapat menautkan setiap kemunculan pengguna ke profil pengguna yang sama di direktori Anda. Dengan cara ini, satu orang yang memiliki beberapa pengguna IDP dapat memiliki pengalaman yang konsisten di aplikasi Anda. [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html)memberi tahu Amazon Cognito untuk mengenali ID unik pengguna di direktori federasi Anda sebagai pengguna di kumpulan pengguna. Pengguna di kumpulan pengguna Anda dihitung sebagai satu pengguna aktif bulanan (MAU) untuk tujuan [penagihan](https://aws.amazon.com/cognito/pricing/) ketika Anda memiliki nol atau lebih identitas gabungan yang terkait dengan profil pengguna.

Saat pengguna federasi masuk ke kumpulan pengguna Anda untuk pertama kalinya, Amazon Cognito mencari profil lokal yang telah Anda tautkan ke identitas mereka. Jika tidak ada profil tertaut, kumpulan pengguna Anda akan membuat profil baru. Anda dapat membuat profil lokal dan menautkannya ke pengguna federasi kapan saja sebelum login pertama mereka, dalam permintaan `AdminLinkProviderForUser` API, baik dalam tugas prestaging yang direncanakan atau di file. [Pemicu Lambda pra pendaftaran](user-pool-lambda-pre-sign-up.md) Setelah pengguna masuk dan Amazon Cognito mendeteksi profil lokal yang ditautkan, kumpulan pengguna akan membaca klaim pengguna dan membandingkannya dengan aturan pemetaan untuk iDP. Kumpulan pengguna Anda kemudian memperbarui profil lokal yang ditautkan dengan klaim yang dipetakan dari proses masuk mereka. Dengan cara ini, Anda dapat mengonfigurasi profil lokal dengan klaim akses dan menyimpan klaim identitas mereka up-to-date dengan penyedia Anda. Setelah Amazon Cognito mencocokkan pengguna federasi Anda dengan profil yang ditautkan, mereka selalu masuk ke profil tersebut. Anda kemudian dapat menautkan lebih banyak identitas penyedia pengguna Anda ke profil yang sama, memberikan satu pelanggan pengalaman yang konsisten di aplikasi Anda. Untuk menautkan pengguna federasi yang sebelumnya telah masuk, Anda harus terlebih dahulu menghapus profil mereka yang ada. Anda dapat mengidentifikasi profil yang ada berdasarkan formatnya:`[Provider name]_identifier`. Misalnya, `LoginWithAmazon_amzn1.account.AFAEXAMPLE`. Pengguna yang Anda buat dan kemudian ditautkan ke identitas pengguna pihak ketiga memiliki nama pengguna yang mereka buat, dan `identities` atribut yang berisi detail identitas tertaut mereka.

**penting**  
Karena `AdminLinkProviderForUser` memungkinkan pengguna dengan identitas federasi eksternal untuk masuk sebagai pengguna yang ada di kumpulan pengguna, sangat penting bahwa itu hanya digunakan dengan atribut eksternal IdPs dan penyedia yang telah dipercaya oleh pemilik aplikasi.

Misalnya, jika Anda adalah penyedia layanan terkelola (MSP) dengan aplikasi yang Anda bagikan dengan beberapa pelanggan. Setiap pelanggan masuk ke aplikasi Anda melalui Active Directory Federation Services (ADFS). Administrator TI Anda, Carlos, memiliki akun di setiap domain pelanggan Anda. Anda ingin Carlos diakui sebagai administrator aplikasi setiap kali dia masuk, terlepas dari IDP.

ADFS Anda IdPs menyajikan alamat email Carlos `msp_carlos@example.com` dalam `email` klaim pernyataan SAMP Carlos ke Amazon Cognito. Anda membuat pengguna di kumpulan pengguna Anda dengan nama pengguna`Carlos`. Perintah berikut AWS Command Line Interface (AWS CLI) menghubungkan identitas Carlos dari IdPs ADFS1,, ADFS2 dan. ADFS3

**catatan**  
Anda dapat menautkan pengguna berdasarkan klaim atribut tertentu. Kemampuan ini unik untuk OIDC dan SAMP. IdPs Untuk jenis penyedia lainnya, Anda harus menautkan berdasarkan atribut sumber tetap. Untuk informasi selengkapnya, lihat [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html). Anda harus mengatur `ProviderAttributeName` `Cognito_Subject` kapan Anda menautkan iDP sosial ke profil pengguna. `ProviderAttributeValue`harus menjadi pengenal unik pengguna dengan IDP Anda.

```
aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS1,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS2,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com

aws cognito-idp admin-link-provider-for-user \
--user-pool-id us-east-1_EXAMPLE \
--destination-user ProviderAttributeValue=Carlos,ProviderName=Cognito \
--source-user ProviderName=ADFS3,ProviderAttributeName=email,ProviderAttributeValue=msp_carlos@example.com
```

Profil pengguna `Carlos` di kumpulan pengguna Anda sekarang memiliki `identities` atribut berikut.

```
[{
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS1",
    "providerType": "SAML",
    "issuer": "http://auth.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}, {
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS2",
    "providerType": "SAML",
    "issuer": "http://auth2.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}, {
    "userId": "msp_carlos@example.com",
    "providerName": "ADFS3",
    "providerType": "SAML",
    "issuer": "http://auth3.example.com",
    "primary": false,
    "dateCreated": 111111111111111
}]
```

**Hal-hal yang perlu diketahui tentang menautkan pengguna federasi**
+ Anda dapat menautkan hingga lima pengguna federasi ke setiap profil pengguna.
+ Anda dapat menautkan pengguna ke setiap IDP dari hingga lima klaim atribut IDP, seperti yang ditentukan oleh `ProviderAttributeName` parameter `SourceUser` dalam permintaan API. `AdminLinkProviderForUser` Misalnya, jika Anda telah menautkan setidaknya satu pengguna ke atribut sumber`email`,,,`phone`,`department`, dan `given_name``location`, Anda hanya dapat menautkan pengguna tambahan pada salah satu dari lima atribut tersebut.
+ Anda dapat menautkan pengguna federasi ke profil pengguna federasi yang ada, atau ke pengguna lokal.
+ Anda tidak dapat menautkan penyedia ke profil pengguna di Konsol Manajemen AWS.
+ Token ID pengguna Anda berisi semua penyedia terkait dalam `identities` klaim.
+ Anda dapat menyetel kata sandi untuk profil pengguna federasi yang dibuat secara otomatis dalam permintaan API. [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) Status pengguna itu kemudian berubah dari `EXTERNAL_PROVIDER` menjadi`CONFIRMED`. Pengguna dalam status ini dapat masuk sebagai pengguna federasi, dan memulai alur otentikasi di API seperti pengguna lokal yang ditautkan. Mereka juga dapat memodifikasi kata sandi dan atribut mereka dalam permintaan API yang diautentikasi token seperti dan. [ChangePassword[UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ChangePassword.html) Sebagai praktik keamanan terbaik dan agar pengguna tetap sinkron dengan iDP eksternal Anda, jangan setel kata sandi pada profil pengguna federasi. Sebagai gantinya, tautkan pengguna ke profil lokal dengan`AdminLinkProviderForUser`.
+ Amazon Cognito mengisi atribut pengguna ke profil pengguna lokal yang ditautkan saat pengguna masuk melalui idP mereka. Amazon Cognito memproses klaim identitas dalam token ID dari IDP OIDC, dan juga memeriksa titik akhir penyedia 2.0 dan `userInfo` OIDC. OAuth Amazon Cognito memprioritaskan informasi dalam token ID daripada informasi dari. `userInfo`

Ketika Anda mengetahui bahwa pengguna Anda tidak lagi menggunakan akun pengguna eksternal yang telah Anda tautkan ke profil mereka, Anda dapat memisahkan akun pengguna tersebut dengan pengguna kumpulan pengguna Anda. Saat menautkan pengguna, Anda memberikan nama atribut, nilai atribut, dan nama penyedia pengguna dalam permintaan. Untuk menghapus profil yang tidak lagi dibutuhkan pengguna Anda, buat permintaan [AdminDisableProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableProviderForUser.html)API dengan parameter yang setara.

Lihat [AdminLinkProviderForUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminLinkProviderForUser.html)sintaks perintah tambahan dan contoh di. AWS SDKs