Individu di organisasi saya mendapatkan pesan “Login Eksternal Tidak Sah” saat mereka mencoba mengakses Amazon QuickSight - Amazon QuickSight

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” saat mereka mencoba mengakses Amazon QuickSight

   Audiens yang dituju: QuickSight Administrator Amazon 

Saat seseorang di organisasi Anda berfederasi ke Amazon QuickSight menggunakan AssumeRoleWithWebIdentity, QuickSight petakan 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 QuickSight dan mendapatkan pesan kesalahan tak terduga berikut.

Login eksternal yang digunakan untuk federasi tidak sah bagi QuickSight pengguna.

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 QuickSight, penyiapan sistem masuk tunggal (Pusat Identitas IAM) mungkin menggunakan operasi CognitoIdentityCredentials API untuk mengambil peran. QuickSight Metode ini memetakan semua pengguna di kumpulan identitas Amazon Cognito ke satu QuickSight pengguna dan tidak didukung oleh Amazon. QuickSight

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 QuickSight peran diatur seperti contoh berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "us-west-2:cognito-pool-id" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "unauthenticated" } } } ] }

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

Kami menyarankan agar Anda tidak menggunakan pengaturan ini, yang penyiapannya tidak didukung oleh Amazon QuickSight. Untuk Amazon QuickSight, 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 QuickSight pengguna Amazon telah dihapus dan dibuat ulang. Pengguna Amazon Cognito yang baru dibuat memiliki subjek dasar yang berbeda. Bergantung pada bagaimana nama sesi peran dipetakan ke QuickSight pengguna, nama sesi mungkin sesuai dengan pengguna berbasis QuickSight peran yang sama.

Sebaiknya Anda memetakan ulang QuickSight pengguna 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 QuickSight

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

Bagaimana saya bisa memperbaikinya?

Anda dapat menggunakan operasi API QuickSight publik 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 sebuah contoh.

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 Amazon QuickSight API.

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 sebuah contoh.

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 Amazon QuickSight API.

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 sebuah contoh.

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 sebuah contoh.

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 sebuah contoh.

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 UpdateUserdi Referensi Amazon QuickSight API.