Individu di organisasi saya mendapatkan pesan “Login Eksternal Tidak Sah” ketika mereka mencoba mengakses Quick Sight - Amazon Quick Suite

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

Individu di organisasi saya mendapatkan pesan “Login Eksternal Tidak Sah” ketika mereka mencoba mengakses Quick Sight

   Pemirsa yang dituju: Administrator Amazon Quick Suite 

Ketika seorang individu di organisasi Anda bergabung ke Quick Sight menggunakan AssumeRoleWithWebIdentity, Quick Sight memetakan satu pengguna berbasis peran ke satu login eksternal. Dalam beberapa kasus, individu tersebut mungkin diautentikasi melalui login eksternal (seperti Amazon Cognito) yang berbeda dari pengguna yang dipetakan semula. Jika demikian, mereka tidak dapat mengakses Quick Sight dan mendapatkan pesan kesalahan tak terduga berikut.

Login eksternal yang digunakan untuk federasi tidak sah untuk pengguna Quick Sight.

Untuk mempelajari cara memecahkan masalah ini, lihat bagian berikut:

Mengapa ini terjadi?

Anda menggunakan aliran Amazon Cognito yang disederhanakan

Jika Anda menggunakan Amazon Cognito untuk bergabung ke Quick Sight, penyiapan sistem masuk tunggal (IAM Identity Center) mungkin menggunakan operasi CognitoIdentityCredentials API untuk mengambil peran Quick Sight. Metode ini memetakan semua pengguna di kumpulan identitas Amazon Cognito ke satu pengguna Quick Sight dan tidak didukung oleh Quick Sight.

Sebaiknya gunakan operasi AssumeRoleWithWebIdentity API sebagai gantinya, yang menentukan nama sesi peran.

Anda menggunakan pengguna Amazon Cognito yang tidak diautentikasi

Pusat Identitas IAM Amazon Cognito disiapkan untuk pengguna yang tidak diautentikasi di kumpulan identitas Amazon Cognito. Kebijakan kepercayaan peran Quick Sight diatur seperti contoh berikut.

Penyiapan ini memungkinkan pengguna Amazon Cognito sementara untuk mengambil sesi peran yang dipetakan ke pengguna Quick Sight yang unik. Karena identitas yang tidak diautentikasi bersifat sementara, identitas tersebut tidak didukung oleh Quick Sight.

Kami menyarankan Anda untuk tidak menggunakan pengaturan ini, yang penyiapannya tidak didukung oleh Quick Sight. Untuk Quick Sight, pastikan Pusat Identitas IAM Amazon Cognito menggunakan pengguna yang diautentikasi.

Anda menghapus dan membuat ulang pengguna Amazon Cognito dengan atribut nama pengguna yang sama

Dalam hal ini, pengguna Amazon Cognito terkait yang dipetakan ke pengguna Quick Sight telah dihapus dan dibuat ulang. Pengguna Amazon Cognito yang baru dibuat memiliki subjek dasar yang berbeda. Bergantung pada bagaimana nama sesi peran dipetakan ke pengguna Quick Sight, nama sesi mungkin sesuai dengan pengguna berbasis peran Quick Sight yang sama.

Kami menyarankan Anda memetakan ulang pengguna Quick Sight ke subjek pengguna Amazon Cognito yang diperbarui dengan menggunakan operasi APIUpdateUser. Untuk informasi selengkapnya, lihat contoh UpdateUser API berikut.

Anda memetakan beberapa kumpulan pengguna Amazon Cognito yang Akun AWS berbeda dengan satu kumpulan identitas dan dengan Quick Sight

Memetakan beberapa kumpulan pengguna Amazon Cognito dalam kumpulan identitas Akun AWS yang berbeda dengan satu dan Quick Sight tidak didukung oleh Quick Sight.

Bagaimana saya bisa memperbaikinya?

Anda dapat menggunakan operasi API publik Quick Sight untuk memperbarui informasi login eksternal bagi pengguna Anda. Gunakan opsi berikut untuk mempelajari caranya.

Gunakan RegisterUser untuk membuat pengguna dengan informasi login eksternal

Jika penyedia login eksternal adalah Amazon Cognito, gunakan kode CLI berikut untuk membuat pengguna.

aws quicksight register-user --aws-account-id account-id --namespace namespace --email user-email --user-role user-role --identity-type IAM --iam-arn arn:aws:iam::account-id:role/cognito-associated-iam-role --session-name cognito-username --external-login-federation-provider-type COGNITO --external-login-id cognito-identity-id --region identity-region

external-login-idHarus menjadi ID identitas untuk pengguna Amazon Cognito. Formatnya<identity-region>:<cognito-user-sub>, seperti yang ditunjukkan pada contoh berikut.

aws quicksight register-user --aws-account-id 111222333 --namespace default --email cognito-user@amazon.com --user-role ADMIN --identity-type IAM --iam-arn arn:aws:iam::111222333:role/CognitoQuickSightRole --session-name cognito-user --external-login-federation-provider-type COGNITO --external-login-id us-east-1:12345678-1234-1234-abc1-a1b1234567 --region us-east-1

Jika penyedia login eksternal adalah penyedia OpenID Connect (OIDC) kustom, gunakan kode CLI berikut untuk membuat pengguna.

aws quicksight register-user --aws-account-id account-id --namespace namespace --email user-email --user-role user-role --identity-type IAM --iam-arn arn:aws:iam::account-id:role/identity-provider-associated-iam-role --session-name identity-username --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url custom-identity-provider-url --external-login-id custom-provider-identity-id --region identity-region

Berikut adalah contohnya.

aws quicksight register-user --aws-account-id 111222333 --namespace default --email identity-user@amazon.com --user-role ADMIN --identity-type IAM --iam-arn arn:aws:iam::111222333:role/CustomIdentityQuickSightRole --session-name identity-user --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url idp.us-east-1.amazonaws.com/us-east-1_ABCDE --external-login-id 12345678-1234-1234-abc1-a1b1234567 --region us-east-1

Untuk mempelajari lebih lanjut tentang penggunaan RegisterUser di CLI, lihat RegisterUserdi Referensi API Amazon Quick Suite.

Gunakan DescribeUser untuk memeriksa informasi login eksternal untuk pengguna

Jika pengguna adalah pengguna federasi berbasis peran dari penyedia login eksternal, gunakan operasi DescribeUser API untuk memeriksa informasi login eksternal untuknya, seperti yang ditunjukkan dalam kode berikut.

aws quicksight describe-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --region identity-region

Berikut adalah contohnya.

aws quicksight describe-user --aws-account-id 111222333 --namespace default --user-name IdentityQuickSightRole/user --region us-west-2

Hasilnya berisi bidang informasi login eksternal jika ada. Berikut adalah contohnya.

{ "Status": 200, "User": { "Arn": "arn:aws:quicksight:us-east-1:111222333:user-default-IdentityQuickSightRole-user", "UserName": "IdentityQuickSightRole-user", "Email": "user@amazon.com", "Role": "ADMIN", "IdentityType": "IAM", "Active": true, "PrincipalId": "federated-iam-AROAAAAAAAAAAAAAA:user", "ExternalLoginFederationProviderType": "COGNITO", "ExternalLoginFederationProviderUrl": "cognito-identity.amazonaws.com", "ExternalLoginId": "us-east-1:123abc-1234-123a-b123-12345678a" }, "RequestId": "12345678-1234-1234-abc1-a1b1234567" }

Untuk mempelajari lebih lanjut tentang penggunaan DescribeUser di CLI, lihat DescribeUserdi Referensi API Amazon Quick Suite.

Gunakan UpdateUser untuk memperbarui informasi login eksternal untuk pengguna

Dalam beberapa kasus, Anda mungkin menemukan bahwa informasi login eksternal yang disimpan untuk pengguna dari DescribeUser hasilnya tidak benar atau informasi login eksternal hilang. Jika demikian, Anda dapat menggunakan operasi UpdateUser API untuk memperbaruinya. Gunakan contoh berikut.

Untuk pengguna Amazon Cognito, gunakan yang berikut ini.

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name cognito-associated-iam-role/cognito-username --email user-email --role user-role --external-login-federation-provider-type COGNITO --external-login-id cognito-identity-id --region identity-region

Berikut adalah contohnya.

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name CognitoQuickSightRole/cognito-user --email cognito-user@amazon.com --role ADMIN --external-login-federation-provider-type COGNITO --external-login-id us-east-1:12345678-1234-1234-abc1-a1b1234567 --region us-west-2

Untuk pengguna penyedia OIDC kustom, gunakan yang berikut ini.

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --email user-email --role user-role --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url custom-identity-provider-url --external-login-id custom-provider-identity-id --region identity-region

Berikut adalah contohnya.

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name IdentityQuickSightRole/user --email user@amazon.com --role ADMIN --external-login-federation-provider-type CUSTOM_OIDC --custom-federation-provider-url idp.us-east-1.amazonaws.com/us-east-1_ABCDE --external-login-id 123abc-1234-123a-b123-12345678a --region us-west-2

Jika Anda ingin menghapus informasi login eksternal untuk pengguna, gunakan NONEexternal login federation provider type. Gunakan perintah CLI berikut untuk menghapus informasi login eksternal.

aws quicksight update-user --aws-account-id account-id --namespace namespace --user-name identity-provider-associated-iam-role/identity-username --email user-email --role user-role --external-login-federation-provider-type NONE --region identity-region

Berikut adalah contohnya.

aws quicksight update-user --aws-account-id 111222333 --namespace default --user-name CognitoQuickSightRole/cognito-user --email cognito-user@amazon.com --role ADMIN --external-login-federation-provider-type NONE --region us-west-2

Untuk mempelajari lebih lanjut tentang penggunaan UpdateUser di CLI, lihat Referensi API Amazon Quick Suite UpdateUserdi Amazon.