Skenario umum - AWS Identity and Access Management

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

Skenario umum

catatan

Kami menyarankan Anda meminta pengguna manusia Anda untuk menggunakan kredensil sementara saat mengakses. AWS Sudahkah Anda mempertimbangkan untuk menggunakan AWS IAM Identity Center? Anda dapat menggunakan Pusat Identitas IAM untuk mengelola akses ke beberapa secara terpusat Akun AWS dan memberi pengguna akses masuk tunggal yang dilindungi MFA ke semua akun yang ditetapkan dari satu tempat. Dengan IAM Identity Center, Anda dapat membuat dan mengelola identitas pengguna di IAM Identity Center atau dengan mudah terhubung ke penyedia identitas kompatibel SAMP 2.0 yang ada. Untuk informasi selengkapnya, lihat Apa itu Pusat Identitas IAM? dalam Panduan Pengguna AWS IAM Identity Center .

Anda dapat menggunakan penyedia identitas eksternal (iDP) untuk mengelola identitas pengguna di luar AWS dan iDP eksternal. IdP eksternal dapat memberikan informasi identitas untuk AWS menggunakan OpenID Connect (OIDC) atau Security Assertion Markup Language (SAMP). OIDC umumnya digunakan ketika aplikasi yang tidak berjalan AWS membutuhkan akses ke AWS sumber daya.

Bila Anda ingin mengonfigurasi federasi dengan iDP eksternal, Anda membuat penyedia identitas IAM untuk menginformasikan AWS tentang iDP eksternal dan konfigurasinya. Ini membangun kepercayaan antara IDP Anda Akun AWS dan eksternal. Topik berikut menyediakan skenario umum untuk menggunakan penyedia identitas IAM.

Amazon Cognito untuk aplikasi seluler

Cara yang lebih disukai untuk menggunakan federasi OIDC adalah dengan menggunakan Amazon Cognito. Misalnya, Adele pengembang sedang membangun game untuk perangkat seluler di mana data pengguna seperti skor dan profil disimpan di Amazon S3 dan Amazon DynamoDB. Adele juga dapat menyimpan data ini secara lokal di perangkat dan menggunakan Amazon Cognito untuk tetap disinkronkan di seluruh perangkat. Ia tahu bahwa untuk alasan keamanan dan pemeliharaan, kredensial keamanan jangka panjang AWS tidak boleh didistribusikan bersama dengan game. Dia juga tahu bahwa game akan memiliki banyak sekali pengguna. Untuk semua alasan ini, dia tidak ingin membuat identitas pengguna baru di IAM untuk setiap pemain. Alih-alih, dia membangun game agar pengguna dapat masuk menggunakan identitas yang sudah mereka tetapkan dengan penyedia identitas eksternal (IdP) yang terkenal, seperti Login with Amazon, Facebook, Google, atau IdP yang kompatibel dengan OpenID Connect (OIDC). Game ini bisa memanfaatkan mekanisme autentikasi dari salah satu penyedia ini untuk memvalidasi identitas pengguna.

Untuk mengaktifkan aplikasi seluler mengakses AWS sumber dayanya, Adele pertama-tama mendaftar untuk ID pengembang dengan pilihannya. IdPs Dia juga mengonfigurasi aplikasi dengan setiap penyedia ini. Dalam dirinya Akun AWS yang berisi bucket Amazon S3 dan tabel DynamoDB untuk game, Adele menggunakan Amazon Cognito untuk membuat peran IAM yang secara tepat menentukan izin yang dibutuhkan game. Jika dia menggunakan OIDC iDP, dia juga menciptakan entitas penyedia identitas IAM OIDC untuk membangun kepercayaan antara kumpulan identitas Amazon Cognito dalam dirinya dan iDP. Akun AWS

Dalam kode aplikasi, Adele memanggil antarmuka masuk untuk IdP yang sudah dikonfigurasi sebelumnya. IDP menangani semua detail membiarkan pengguna masuk, dan aplikasi mendapatkan token OAuth akses atau token ID OIDC dari penyedia. Aplikasi Adele dapat menukar informasi otentikasi ini dengan serangkaian kredensil keamanan sementara yang terdiri dari ID kunci AWS akses, kunci akses rahasia, dan token sesi. Aplikasi kemudian dapat menggunakan kredensil ini untuk mengakses layanan web yang ditawarkan oleh. AWS Aplikasi ini terbatas dengan izin yang ditentukan dalam peran yang sudah diasumsikan.

Gambar berikut menunjukkan alur cara kerja yang disederhanakan, menggunakan Login with Amazon sebagai IdP. Untuk Langkah 2, aplikasi juga dapat menggunakan Facebook, Google, atau IdP apa pun yang kompatibel dengan OIDC, tetapi itu tidak ditampilkan di sini.

Contoh alur kerja menggunakan Amazon Cognito untuk pengguna federasi untuk aplikasi seluler

  1. Seorang pelanggan memulai aplikasi Anda di perangkat seluler. Aplikasi meminta pengguna untuk masuk.

  2. Aplikasi menggunakan sumber daya Login with Amazon untuk menerima kredensial pengguna.

  3. Aplikasi ini menggunakan operasi API Amazon Cognito GetId dan GetCredentialsForIdentity untuk menukar token Login with Amazon ID dengan token Amazon Cognito. Amazon Cognito, yang telah dikonfigurasi untuk mempercayai proyek Login with Amazon Anda, menghasilkan token yang ditukar dengan kredensi sesi sementara. AWS STS

  4. Aplikasi ini menerima kredensil keamanan sementara dari Amazon Cognito. Aplikasi Anda juga dapat menggunakan alur kerja Dasar (Klasik) di Amazon Cognito untuk mengambil token dari penggunaan. AWS STS AssumeRoleWithWebIdentity Untuk informasi selengkapnya, lihat Alur autentikasi kumpulan identitas (identitas gabungan) di Panduan Pengembang Amazon Cognito.

  5. Kredensial keamanan sementara dapat digunakan oleh aplikasi untuk mengakses setiap sumber daya AWS yang diperlukan oleh aplikasi untuk beroperasi. Peran yang terkait dengan kredensil keamanan sementara dan kebijakan yang ditetapkan menentukan apa yang dapat diakses.

Gunakan proses berikut untuk mengonfigurasi aplikasi agar menggunakan Amazon Cognito guna mengautentikasi pengguna dan memberikan akses aplikasi ke resource. AWS Untuk langkah-langkah khusus untuk menyelesaikan skenario ini, lihat dokumentasi untuk Amazon Cognito.

  1. (Opsional) Daftar sebagai pengembang dengan Login with Amazon, Facebook, Google, atau OpenID Connect (OIDC) lainnya yang kompatibel dengan IDP dan konfigurasikan satu atau beberapa aplikasi dengan penyedia. Langkah ini bersifat opsional karena Amazon Cognito juga mendukung akses tidak terotentikasi (tamu) untuk pengguna Anda.

  2. Pergi ke Amazon Cognito di. Konsol Manajemen AWS Gunakan wizard Amazon Cognito untuk membuat kumpulan identitas, yang merupakan wadah yang digunakan Amazon Cognito untuk menjaga identitas pengguna akhir tetap tertata untuk aplikasi Anda. Anda dapat berbagi kolam identitas di antara aplikasi. Saat Anda menyiapkan kolam identitas, Amazon Cognito membuat satu atau dua peran IAM (satu untuk identitas terotentikasi, dan satu untuk identitas “tamu” tidak terotentikasi) yang menentukan izin bagi pengguna Amazon Cognito.

  3. Integrasikan AWSAmplify dengan aplikasi Anda, dan impor file yang diperlukan untuk menggunakan Amazon Cognito.

  4. Buat instance penyedia kredensi Amazon Cognito, meneruskan ID kumpulan identitas, Akun AWS nomor Anda, dan Nama Sumber Daya Amazon (ARN) peran yang Anda kaitkan dengan kumpulan identitas. Wizard Amazon Cognito di Konsol Manajemen AWS menyediakan kode contoh untuk membantu Anda memulai.

  5. Saat aplikasi Anda mengakses AWS resource, teruskan instance penyedia kredensial ke objek klien, yang meneruskan kredensil keamanan sementara ke klien. Izin untuk kredensial didasarkan pada peran atau peran-peran yang Anda tetapkan sebelumnya.

Untuk informasi selengkapnya, lihat berikut ini:

Federasi OIDC untuk aplikasi seluler

Untuk hasil terbaik, gunakan Amazon Cognito sebagai broker identitas Anda untuk hampir semua skenario federasi OIDC. Amazon Cognito mudah digunakan dan menyediakan kemampuan tambahan seperti akses anonim (tidak terotentikasi), dan sinkronisasi data pengguna di seluruh perangkat dan penyedia. Namun, jika Anda telah membuat aplikasi yang menggunakan federasi OIDC dengan memanggil AssumeRoleWithWebIdentity API secara manual, Anda dapat terus menggunakannya dan aplikasi Anda akan tetap berfungsi dengan baik.

Proses untuk menggunakan federasi OIDC tanpa Amazon Cognito mengikuti garis besar umum ini:

  1. Daftarkan diri Anda sebagai developer dengan penyedia identitas eksternal (IdP) dan konfigurasi aplikasi Anda dengan IdP, yang memberikan ID unik untuk aplikasi Anda. (Berbeda IdPs menggunakan terminologi yang berbeda untuk proses ini. Garis besar ini menggunakan istilah konfigurasi untuk proses identifikasi aplikasi Anda dengan iDP.) Setiap iDP memberi Anda ID aplikasi yang unik untuk IDP tersebut, jadi jika Anda mengonfigurasi aplikasi yang sama dengan beberapa aplikasi IdPs, aplikasi Anda akan memiliki beberapa aplikasi. IDs Anda dapat mengonfigurasi beberapa aplikasi dengan setiap penyedia.

    Tautan eksternal berikut memberikan informasi tentang penggunaan beberapa penyedia identitas yang umum digunakan (IdPs):

    penting

    Jika Anda menggunakan penyedia identitas OIDC dari Google, Facebook, atau Amazon Cognito, jangan membuat penyedia identitas IAM terpisah di. Konsol Manajemen AWS AWS memiliki penyedia identitas OIDC ini bawaan dan tersedia untuk Anda gunakan. Lewati langkah ini dan langsung buat peran baru menggunakan penyedia identitas Anda.

  2. Jika Anda menggunakan iDP selain Google, Facebook, atau Amazon Cognito yang kompatibel dengan OIDC, buat entitas penyedia identitas IAM untuknya.

  3. Di dalam IAM, buat satu atau beberapa peran. Untuk setiap peran, tentukan siapa yang dapat mengambil peran (kebijakan kepercayaan) dan izin apa yang dimiliki pengguna aplikasi (kebijakan izin). Biasanya, Anda membuat satu peran untuk setiap IdP yang mendukung aplikasi. Misalnya, Anda dapat membuat peran yang diambil oleh aplikasi jika pengguna masuk melalui Login with Amazon, peran kedua untuk aplikasi yang sama jika pengguna masuk melalui Facebook, dan peran ketiga untuk aplikasi jika pengguna masuk melalui Google. Untuk hubungan kepercayaan, tentukan IdP (seperti Amazon.com) sebagai Principal (entitas tepercaya), dan sertakan Condition yang sesuai dengan ID aplikasi yang ditetapkan IdP. Contoh peran untuk penyedia yang berbeda dijelaskan dalam Membuat peran untuk penyedia identitas pihak ketiga.

  4. Dalam aplikasi, autentikasi pengguna Anda dengan IdP. Spesifikasi tentang cara melakukan ini bervariasi baik menurut IDP yang Anda gunakan (Login with Amazon, Facebook, atau Google) dan di platform mana aplikasi Anda berjalan. Misalnya, metode otentikasi aplikasi Android dapat berbeda dari metode aplikasi iOS atau aplikasi web JavaScript berbasis.

    Biasanya, jika pengguna belum masuk, IdP menampilkan halaman masuk. Setelah IdP mengautentikasi pengguna, IdP mengembalikan informasi dengan token autentikasi tentang pengguna ke aplikasi Anda. Informasi yang disertakan tergantung pada apa yang diekspos IdP dan informasi apa yang ingin dibagikan oleh pengguna. Anda dapat menggunakan informasi ini di aplikasi Anda.

  5. Di aplikasi Anda, buatlah panggilan berhenti menandatangani ke AssumeRoleWithWebIdentity tindakan untuk meminta kredensial keamanan sementara. Dalam permintaan, Anda meneruskan token autentikasi IDP dan menentukan Amazon Resource Name (ARN) untuk peran IAM yang Anda buat untuk IDP tersebut. AWS memverifikasi bahwa token tepercaya dan valid dan jika demikian, mengembalikan kredensil keamanan sementara ke aplikasi Anda yang memiliki izin untuk peran yang Anda beri nama dalam permintaan. Jawaban juga mencakup metadata tentang pengguna dari IdP, seperti ID pengguna unik yang dikaitkan IdP dengan pengguna.

  6. Menggunakan kredensil keamanan sementara dari AssumeRoleWithWebIdentity respons, aplikasi Anda membuat permintaan yang ditandatangani ke operasi AWS API. Informasi ID pengguna dari iDP dapat membedakan pengguna di aplikasi Anda. Misalnya, Anda dapat memasukkan objek ke folder Amazon S3 yang menyertakan ID pengguna sebagai awalan atau sufiks. Hal ini memungkinkan Anda membuat kebijakan kontrol akses yang mengunci folder sehingga hanya pengguna dengan ID tersebut yang tidak dapat mengaksesnya. Untuk informasi selengkapnya, lihat AWS STS prinsip pengguna federasi.

  7. Aplikasi Anda harus menyimpan kredensial keamanan sementara sehingga Anda tidak perlu mendapatkan kredensial baru setiap kali aplikasi perlu membuat permintaan ke AWS. Secara default, kredensial akan berlaku selama satu jam. Saat kredensial kedaluwarsa (atau sebelum itu), Anda melakukan panggilan lain ke AssumeRoleWithWebIdentity untuk mendapatkan satu set kredensial keamanan sementara baru. Tergantung pada IdP dan cara mereka mengelola token, Anda mungkin harus menyegarkan token IdP sebelum melakukan panggilan baru keAssumeRoleWithWebIdentity , karena token IdP juga biasanya kedaluwarsa setelah waktu tetap. Jika Anda menggunakan AWS SDK for iOS atau AWS SDK for Android, Anda dapat menggunakan tindakan Penyedia STSCredentialsAmazon, yang mengelola kredenal sementara IAM, termasuk menyegarkannya sesuai kebutuhan.