Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan OIDC penyedia sebagai idP kumpulan identitas
OpenID Connect
Menambahkan penyedia OpenID Connect
Untuk informasi tentang cara membuat penyedia OpenID Connect, lihat Membuat penyedia identitas OpenID Connect (OIDC) di Panduan Pengguna.AWS Identity and Access Management
Mengaitkan penyedia dengan Amazon Cognito
Untuk menambahkan penyedia OIDC identitas (iDP)
-
Pilih kumpulan Identitas dari konsol Amazon Cognito
. Pilih kumpulan identitas. -
Pilih tab Akses pengguna.
-
Pilih Tambahkan penyedia identitas.
-
Pilih OpenID Connect () OIDC.
-
Pilih penyedia OIDC identitas dari IAM IdPs dalam Anda Akun AWS. Jika Anda ingin menambahkan SAML penyedia baru, pilih Buat penyedia baru untuk menavigasi ke IAM konsol.
-
Untuk menyetel peran yang diminta Amazon Cognito saat mengeluarkan kredensional kepada pengguna yang telah mengautentikasi dengan penyedia ini, konfigurasikan setelan Peran.
-
Anda dapat menetapkan pengguna dari IDP tersebut peran Default yang Anda atur saat mengonfigurasi peran Terautentikasi, atau Anda dapat Memilih peran dengan aturan.
-
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.
-
Pilih resolusi Peran. Jika klaim pengguna tidak sesuai dengan aturan, Anda dapat menolak kredensi atau mengeluarkan kredensi untuk peran yang Diautentikasi.
-
-
-
Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensi kepada pengguna yang telah diautentikasi dengan penyedia ini, konfigurasikan Atribut untuk kontrol akses.
-
Untuk tidak menerapkan tag utama, pilih Tidak aktif.
-
Untuk menerapkan tag utama berdasarkan
sub
danaud
klaim, pilih Gunakan pemetaan default. -
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.
-
-
Pilih Simpan perubahan.
Anda dapat mengaitkan beberapa penyedia OpenID Connect dengan kolam identitas tunggal.
Menggunakan OpenID Connect
Lihat dokumentasi penyedia Anda untuk cara login dan menerima token ID.
Setelah Anda memiliki token, tambahkan token ke peta login. Gunakan penyedia Anda sebagai kuncinya. URI
Memvalidasi token OpenID Connect
Saat pertama kali berintegrasi dengan Amazon Cognito, Anda mungkin menerima pengecualianInvalidToken
. Penting untuk memahami bagaimana Amazon Cognito memvalidasi token OpenID Connect OIDC ().
catatan
Seperti yang ditentukan di sini (https://tools.ietf.org/html/rfc7523),
-
iss
Parameter harus cocok dengan kunci yang digunakan peta login (seperti login.provider.com). -
Tanda tangan harus valid. Tanda tangan harus dapat diverifikasi melalui kunci RSA publik.
-
Sidik jari kunci publik sertifikat cocok dengan sidik jari yang Anda tetapkan IAM saat Anda membuat OIDC penyedia.
-
Jika
azp
parameter ada, periksa nilai ini terhadap klien yang terdaftar IDs di OIDC penyedia Anda. -
Jika
azp
parameter tidak ada, periksaaud
parameter terhadap klien yang terdaftar IDs di OIDC penyedia Anda.
Situs web jwt.io
Android
Map<String, String> logins = new HashMap<String, String>(); logins.put("login.provider.com", token); credentialsProvider.setLogins(logins);
iOS - Objective-C
credentialsProvider.logins = @{ "login.provider.com": token }
iOS - Swift
Untuk memberikan token OIDC ID ke Amazon Cognito, terapkan protokol. AWSIdentityProviderManager
Saat Anda menerapkan logins
metode ini, kembalikan kamus yang berisi nama OIDC penyedia yang Anda konfigurasikan. Kamus ini bertindak sebagai kunci, dan token ID saat ini dari pengguna yang diautentikasi bertindak sebagai nilai, seperti yang ditunjukkan pada contoh kode berikut.
class OIDCProvider: NSObject, AWSIdentityProviderManager { func logins() -> AWSTask<NSDictionary> { let completion = AWSTaskCompletionSource<NSString>() getToken(tokenCompletion: completion) return completion.task.continueOnSuccessWith { (task) -> AWSTask<NSDictionary>? in //login.provider.name is the name of the OIDC provider as setup in the Amazon Cognito console return AWSTask(result:["login.provider.name":task.result!]) } as! AWSTask<NSDictionary> } func getToken(tokenCompletion: AWSTaskCompletionSource<NSString>) -> Void { //get a valid oidc token from your server, or if you have one that hasn't expired cached, return it //TODO code to get token from your server //... //if error getting token, set error appropriately tokenCompletion.set(error:NSError(domain: "OIDC Login", code: -1 , userInfo: ["Unable to get OIDC token" : "Details about your error"])) //else tokenCompletion.set(result:"result from server id token") } }
Saat Anda membuat instanceAWSCognitoCredentialsProvider
, lewati kelas yang mengimplementasikan AWSIdentityProviderManager sebagai nilai identityProviderManager dalam konstruktor. Untuk informasi lebih lanjut, kunjungi AWSCognitoCredentialsProvider
JavaScript
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'login.provider.com': token } });
Unity
credentials.AddLogin("login.provider.com", token);
Xamarin
credentials.AddLogin("login.provider.com", token);