Menyiapkan SAML penyedia sebagai idP kumpulan identitas - Amazon Cognito

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

Menyiapkan SAML penyedia sebagai idP kumpulan identitas

Dengan kumpulan identitas Amazon Cognito, Anda dapat mengautentikasi pengguna dengan penyedia identitas (IdPs) hingga 2.0. SAML Anda dapat menggunakan iDP yang mendukung SAML Amazon Cognito untuk menyediakan alur orientasi sederhana bagi pengguna Anda. IdP SAML pendukung Anda menentukan peran yang dapat IAM diasumsikan oleh pengguna Anda. Dengan cara ini, pengguna yang berbeda dapat menerima set izin yang berbeda.

Mengonfigurasi kumpulan identitas Anda untuk IDP SAML

Langkah-langkah berikut menjelaskan cara mengonfigurasi kumpulan identitas Anda untuk menggunakan iDP SAML berbasis.

Untuk menambahkan penyedia SAML identitas (iDP)
  1. Pilih kumpulan Identitas dari konsol Amazon Cognito. Pilih kumpulan identitas.

  2. Pilih tab Akses pengguna.

  3. Pilih Tambahkan penyedia identitas.

  4. Pilih SAML.

  5. Pilih penyedia SAML identitas dari IAM IdPs dalam Anda Akun AWS. Jika Anda ingin menambahkan SAML penyedia baru, pilih Buat penyedia baru untuk menavigasi ke IAM konsol.

  6. Untuk menyetel peran yang diminta Amazon Cognito saat mengeluarkan kredensional kepada pengguna yang telah mengautentikasi dengan penyedia ini, konfigurasikan setelan Peran.

    1. Anda dapat menetapkan pengguna dari IDP tersebut peran Default yang Anda atur saat mengonfigurasi peran Terautentikasi, atau Anda dapat Memilih peran dengan aturan.

      1. Jika Anda memilih Pilih peran dengan aturan, masukkan Klaim sumber dari autentikasi pengguna Anda, Operator yang ingin Anda bandingkan dengan klaim, Nilai yang akan menyebabkan kecocokan dengan pilihan peran ini, dan Peran yang ingin Anda tetapkan saat penetapan Peran cocok. Pilih Tambahkan yang lain untuk membuat aturan tambahan berdasarkan kondisi yang berbeda.

      2. Pilih resolusi Peran. Jika klaim pengguna tidak sesuai dengan aturan, Anda dapat menolak kredensi atau mengeluarkan kredensi untuk peran yang Diautentikasi.

  7. Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensi kepada pengguna yang telah diautentikasi dengan penyedia ini, konfigurasikan Atribut untuk kontrol akses.

    1. Untuk tidak menerapkan tag utama, pilih Tidak aktif.

    2. Untuk menerapkan tag utama berdasarkan sub dan aud klaim, pilih Gunakan pemetaan default.

    3. Untuk membuat skema atribut kustom Anda sendiri ke tag utama, pilih Gunakan pemetaan khusus. Kemudian masukkan kunci Tag yang ingin Anda sumber dari setiap Klaim yang ingin Anda wakili dalam tag.

  8. Pilih Simpan perubahan.

Mengkonfigurasi IDP Anda SAML

Setelah Anda membuat SAML penyedia, konfigurasikan SAML IDP Anda untuk menambahkan kepercayaan pihak yang bergantung antara IDP Anda dan. AWS Dengan banyak IdPs, Anda dapat menentukan URL yang dapat digunakan IDP untuk membaca informasi pihak yang bergantung dan sertifikat dari dokumen. XML Untuk AWS, Anda dapat menggunakan https://signin.aws.amazon.com/static/saml-metadata.xml. Langkah selanjutnya adalah mengonfigurasi respons SAML pernyataan dari IDP Anda untuk mengisi klaim yang diperlukan. AWS Untuk detail tentang konfigurasi klaim, lihat Mengonfigurasi SAML pernyataan untuk respons autentikasi.

Jika SAML IDP Anda menyertakan lebih dari satu sertifikat penandatanganan dalam SAML metadata, saat login, kumpulan pengguna Anda menentukan bahwa SAML pernyataan tersebut valid jika cocok dengan sertifikat apa pun dalam metadata. SAML

Menyesuaikan peran pengguna Anda dengan SAML

Saat Anda menggunakan SAML Identitas Amazon Cognito, Anda dapat menyesuaikan peran untuk pengguna akhir. Amazon Cognito hanya mendukung aliran yang ditingkatkan dengan SAML IDP berbasis. Anda tidak perlu menentukan peran yang diautentikasi atau tidak diautentikasi agar kumpulan identitas menggunakan iDP berbasisSAML. Atribut https://aws.amazon.com/SAML/Attributes/Role klaim menentukan satu atau lebih pasangan peran dan penyedia yang dibatasi koma. ARN Ini adalah peran yang dapat diasumsikan pengguna. Anda dapat mengonfigurasi SAML iDP untuk mengisi atribut peran berdasarkan informasi atribut pengguna yang tersedia dari iDP. Jika Anda menerima beberapa peran dalam SAML pernyataan, isi customRoleArn parameter opsional saat Anda menelepon. getCredentialsForIdentity Pengguna mengasumsikan ini customRoleArn jika peran cocok dengan satu dalam klaim dalam pernyataan. SAML

Mengautentikasi pengguna dengan IDP SAML

Untuk berfederasi dengan IdP SAML berbasis, tentukan URL di mana pengguna memulai login. AWS federasi menggunakan login yang dimulai IDP. Dalam AD FS 2.0, URL mengambil bentukhttps://<fqdn>/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices.

Untuk menambahkan dukungan untuk SAML IDP Anda di Amazon Cognito, pertama-tama autentikasi pengguna dengan penyedia identitas SAML Anda dari aplikasi iOS atau Android Anda. Kode yang Anda gunakan untuk mengintegrasikan dan mengautentikasi dengan SAML IDP khusus SAML untuk penyedia. Setelah mengautentikasi pengguna, Anda dapat menggunakan Amazon APIs Cognito untuk memberikan pernyataan yang SAML dihasilkan ke Identitas Amazon Cognito.

Anda tidak dapat mengulangi, atau memutar ulang, SAML pernyataan di Logins peta permintaan kumpulan identitas Anda. API SAMLPernyataan yang diputar ulang memiliki ID pernyataan yang menduplikasi ID dari permintaan sebelumnya. API APIoperasi yang dapat menerima SAML pernyataan dalam Logins peta meliputi GetId,, GetCredentialsForIdentityGetOpenIdToken, dan. GetOpenIDTokenForDeveloperIdentity Anda dapat memutar ulang ID SAML pernyataan satu kali per API permintaan dalam alur otentikasi kumpulan identitas. Misalnya, Anda dapat memberikan SAML pernyataan yang sama dalam GetId permintaan dan GetCredentialsForIdentity permintaan berikutnya, tetapi tidak dalam permintaan keduaGetId.

Android

Jika Anda menggunakan AndroidSDK, Anda dapat mengisi peta login dengan SAML pernyataan sebagai berikut.

Map logins = new HashMap(); logins.put("arn:aws:iam::aws account id:saml-provider/name", "base64 encoded assertion response"); // Now this should be set to CognitoCachingCredentialsProvider object. CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(context, identity pool id, region); credentialsProvider.setLogins(logins); // If SAML assertion contains multiple roles, resolve the role by setting the custom role credentialsProvider.setCustomRoleArn("arn:aws:iam::aws account id:role/customRoleName"); // This should trigger a call to the Amazon Cognito service to get the credentials. credentialsProvider.getCredentials();

iOS

Jika Anda menggunakan iOSSDK, Anda dapat memberikan SAML pernyataan AWSIdentityProviderManager sebagai berikut.

- (AWSTask<NSDictionary<NSString*,NSString*> *> *) logins { //this is hardcoded for simplicity, normally you would asynchronously go to your SAML provider //get the assertion and return the logins map using a AWSTaskCompletionSource return [AWSTask taskWithResult:@{@"arn:aws:iam::aws account id:saml-provider/name":@"base64 encoded assertion response"}]; } // If SAML assertion contains multiple roles, resolve the role by setting the custom role. // Implementing this is optional if there is only one role. - (NSString *)customRoleArn { return @"arn:aws:iam::accountId:role/customRoleName"; }