Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otorisasi dengan Izin Terverifikasi Amazon
Izin Terverifikasi Amazon adalah layanan otorisasi untuk aplikasi yang Anda buat. Saat Anda menambahkan kumpulan pengguna Amazon Cognito sebagai sumber identitas, aplikasi Anda dapat meneruskan akses kumpulan pengguna atau token identitas (ID) ke Izin Terverifikasi untuk mengizinkan atau menolak keputusan. Izin Terverifikasi mempertimbangkan properti pengguna Anda dan konteks permintaan berdasarkan kebijakan yang Anda tulis dalam Bahasa Kebijakan Cedar
Aplikasi Anda dapat memberikan identitas pengguna atau token akses ke Izin Terverifikasi IsAuthorizedWithTokenatau BatchIsAuthorizedWithTokenAPIpermintaan. APIOperasi ini menerima pengguna Anda sebagai Principal
dan membuat keputusan otorisasi untuk Resource
yang ingin mereka akses. Action
Kustom tambahan Context
dapat berkontribusi pada keputusan akses terperinci.
Saat aplikasi Anda menampilkan token dalam IsAuthorizedWithToken
API permintaan, Izin Terverifikasi akan melakukan validasi berikut.
-
Kumpulan pengguna Anda adalah sumber identitas Izin Terverifikasi yang dikonfigurasi untuk penyimpanan kebijakan yang diminta.
-
aud
Klaimclient_id
atau, masing-masing dalam token akses atau identitas Anda, cocok dengan ID klien aplikasi kumpulan pengguna yang Anda berikan ke Izin Terverifikasi. Untuk memverifikasi klaim ini, Anda harus mengonfigurasi validasi ID klien di sumber identitas Izin Terverifikasi. -
Token Anda tidak kedaluwarsa.
-
Nilai
token_use
klaim dalam token Anda cocok dengan parameter yang Anda kirimkanIsAuthorizedWithToken
.token_use
Klaim harusaccess
jika Anda meneruskannya keaccessToken
parameter, danid
jika Anda meneruskannya keidentityToken
parameter. -
Tanda tangan di token Anda berasal dari kunci JSON web yang diterbitkan (JWKs) dari kumpulan pengguna Anda. Anda dapat melihat Anda JWKs di
https://cognito-idp.
.Region
.amazonaws.com/your user pool ID
/.well-known/jwks.json
Token yang dicabut dan pengguna yang dihapus
Izin Terverifikasi hanya memvalidasi informasi yang diketahui dari sumber identitas Anda dan dari waktu kedaluwarsa token pengguna Anda. Izin Terverifikasi tidak memeriksa pencabutan token atau keberadaan pengguna. Jika Anda mencabut token pengguna atau menghapus profil pengguna dari kumpulan pengguna, Izin Terverifikasi masih menganggap token tersebut valid hingga kedaluwarsa.
Evaluasi kebijakan
Konfigurasikan kumpulan pengguna Anda sebagai sumber identitas untuk toko kebijakan Anda. Konfigurasikan aplikasi Anda untuk mengirimkan token pengguna Anda dalam permintaan ke Izin Terverifikasi. Untuk setiap permintaan, Izin Terverifikasi membandingkan klaim dalam token dengan kebijakan. Kebijakan Izin Terverifikasi seperti IAM kebijakan di AWS. Ini menyatakan prinsip, sumber daya, dan tindakan. Izin Terverifikasi merespons permintaan Anda Allow
jika cocok dengan tindakan yang diizinkan dan tidak cocok dengan tindakan eksplisit; jika tidak, ia Deny
merespons dengan. Deny
Untuk informasi selengkapnya, lihat kebijakan Izin Terverifikasi Amazon di Panduan Pengguna Izin Terverifikasi Amazon.
Menyesuaikan token
Untuk mengubah, menambah, dan menghapus klaim pengguna yang ingin Anda tampilkan ke Izin Terverifikasi, sesuaikan konten dalam token akses dan identitas Anda dengan Pemicu Lambda generasi pra token file. Dengan pemicu pembuatan token pra, Anda dapat menambahkan dan memodifikasi klaim di token Anda. Misalnya, Anda dapat menanyakan database untuk atribut pengguna tambahan dan menyandikannya ke dalam token ID Anda.
catatan
Karena cara Izin Terverifikasi memproses klaim, jangan tambahkan klaim bernama cognito
dev
, atau custom
dalam fungsi pembuatan token pra Anda. Ketika Anda menunjukkan awalan klaim yang dicadangkan ini tidak dalam format yang dibatasi titik dua seperti cognito:username
tetapi sebagai nama klaim lengkap, permintaan otorisasi Anda gagal.
Sumber daya tambahan
APIotorisasi dengan Izin Terverifikasi
ID atau token akses Anda dapat mengotorisasi permintaan ke back-end API Amazon REST APIs Gateway dengan Izin Terverifikasi. Anda dapat membuat toko kebijakan dengan tautan langsung ke kumpulan pengguna Anda danAPI. Dengan opsi Mulai Siapkan dengan Cognito dan API Gateway, Izin Terverifikasi menambahkan sumber identitas kumpulan pengguna ke toko kebijakan, dan otorisasi Lambda ke. API Saat aplikasi Anda meneruskan token pembawa kumpulan pengguna keAPI, otorisasi Lambda akan memanggil Izin Terverifikasi. Authorizer meneruskan token sebagai prinsipal dan jalur permintaan serta metode sebagai tindakan.
Diagram berikut menggambarkan alur otorisasi untuk API Gateway API dengan Izin Terverifikasi. Untuk perincian terperinci, lihat penyimpanan kebijakan API yang ditautkan di Panduan Pengguna Izin Terverifikasi Amazon.
Izin Terverifikasi menyusun API otorisasi di sekitar grup kumpulan pengguna. Karena ID dan token akses menyertakan cognito:groups
klaim, toko kebijakan Anda dapat mengelola kontrol akses berbasis peran (RBAC) untuk Anda APIs dalam berbagai konteks aplikasi.
Memilih pengaturan toko kebijakan
Saat mengonfigurasi sumber identitas di toko kebijakan, Anda harus memilih apakah Anda ingin memproses akses atau token ID. Keputusan ini penting bagi cara mesin kebijakan Anda beroperasi. Token ID berisi atribut pengguna. Token akses berisi informasi kontrol akses pengguna: OAuth cakupan. Meskipun kedua jenis token memiliki informasi keanggotaan grup, kami umumnya merekomendasikan token akses RBAC dengan penyimpanan kebijakan Izin Terverifikasi. Token akses menambah keanggotaan grup dengan cakupan yang dapat berkontribusi pada keputusan otorisasi. Klaim dalam token akses menjadi konteks dalam permintaan otorisasi.
Anda juga harus mengonfigurasi tipe entitas pengguna dan grup saat mengonfigurasi kumpulan pengguna sebagai sumber identitas. Jenis entitas adalah pengidentifikasi utama, tindakan, dan sumber daya yang dapat Anda referensikan dalam kebijakan Izin Terverifikasi. Entitas di toko kebijakan dapat memiliki hubungan keanggotaan, di mana satu entitas dapat menjadi anggota entitas induk. Dengan keanggotaan, Anda dapat mereferensikan grup utama, grup tindakan, dan grup sumber daya. Dalam kasus grup kumpulan pengguna, jenis entitas pengguna yang Anda tentukan harus merupakan anggota dari jenis entitas grup. Saat Anda menyiapkan penyimpanan kebijakan yang API ditautkan atau mengikuti Penyiapan terpandu di konsol Izin Terverifikasi, toko kebijakan Anda secara otomatis memiliki hubungan orang tua-anggota ini.
Token ID dapat digabungkan RBAC dengan kontrol akses berbasis atribut ()ABAC. Setelah membuat penyimpanan kebijakan API -linked, Anda dapat menyempurnakan kebijakan Anda dengan atribut pengguna dan keanggotaan grup. Klaim atribut dalam token ID menjadi atribut utama dalam permintaan otorisasi. Kebijakan Anda dapat membuat keputusan otorisasi berdasarkan atribut utama.
Anda juga dapat mengonfigurasi toko kebijakan untuk menerima token dengan client_id
klaim aud
atau yang cocok dengan daftar klien aplikasi yang dapat diterima yang Anda berikan.
Contoh kebijakan untuk otorisasi berbasis peran API
Contoh kebijakan berikut dibuat dengan penyiapan penyimpanan kebijakan Izin Terverifikasi sebagai PetStorecontoh RESTAPI.
permit( principal in PetStore::UserGroup::"us-east-1_EXAMPLE|MyGroup", action in [ PetStore::Action::"get /pets", PetStore::Action::"get /pets/{petId}" ], resource );
Izin Terverifikasi mengembalikan Allow
keputusan untuk permintaan otorisasi dari aplikasi Anda ketika:
-
Aplikasi Anda meneruskan ID atau token akses di
Authorization
header sebagai token pembawa. -
Aplikasi Anda melewati token dengan
cognito:groups
klaim yang berisi stringMyGroup
. -
Aplikasi Anda membuat
HTTP GET
permintaan untuk, misalnya,https://myapi.example.com/pets
atauhttps://myapi.example.com/pets/scrappy
.
Contoh kebijakan untuk pengguna Amazon Cognito
Kumpulan pengguna Anda juga dapat menghasilkan permintaan otorisasi ke Izin Terverifikasi dalam kondisi selain API permintaan. Anda dapat mengirimkan keputusan kontrol akses apa pun dalam aplikasi Anda ke toko kebijakan Anda. Misalnya, Anda dapat melengkapi keamanan Amazon DynamoDB atau Amazon S3 dengan kontrol akses berbasis atribut sebelum permintaan apa pun transit ke jaringan, sehingga mengurangi penggunaan kuota.
Contoh berikut menggunakan Bahasa Kebijakan Cedarexample_image.png
John, pengguna di aplikasi Anda, menerima token ID dari klien aplikasi Anda dan meneruskannya dalam GET permintaan ke URL yang memerlukan otorisasi,https://example.com/images/example_image.png
. Token ID John memiliki aud
klaim ID klien aplikasi kumpulan pengguna Anda1234567890example
. Fungsi Lambda generasi pra token Anda juga memasukkan klaim baru costCenter
dengan nilai, untuk John, dari. Finance1234
permit ( principal, actions in [ExampleCorp::Action::"readFile", "writeFile"], resource == ExampleCorp::Photo::"example_image.png" ) when { principal.aud == "1234567890example" && principal.custom.costCenter like "Finance*" };
Badan permintaan berikut menghasilkan Allow
respons.
{ "accesstoken": "
[John's ID token]
", "action": { "actionId": "readFile", "actionType": "Action" }, "resource": { "entityId": "example_image.png", "entityType": "Photo" } }
Bila Anda ingin menentukan prinsipal dalam kebijakan Izin Terverifikasi, gunakan format berikut:
permit ( principal == [Namespace]::[Entity]::"[user pool ID]"|"[user sub]", action, resource );
Berikut ini adalah contoh utama untuk pengguna dalam kumpulan pengguna dengan ID us-east-1_Example
dengan sub, atau ID pengguna,973db890-092c-49e4-a9d0-912a4c0a20c7
.
principal ==
ExampleCorp
::User
::"us-east-1_Example
|973db890-092c-49e4-a9d0-912a4c0a20c7
",
Bila Anda ingin menentukan grup pengguna dalam kebijakan Izin Terverifikasi, gunakan format berikut:
permit ( principal in [Namespace]::[Group Entity]::"[Group name]", action, resource );
Berikut ini adalah contoh
Kontrol akses berbasis atribut
Otorisasi dengan Izin Terverifikasi untuk aplikasi Anda, dan atribut untuk fitur kontrol akses kumpulan identitas Amazon Cognito AWS untuk kredensil, keduanya merupakan bentuk kontrol akses berbasis atribut (). ABAC Berikut ini adalah perbandingan fitur Izin Terverifikasi dan Amazon ABAC Cognito. DalamABAC, sistem memeriksa atribut entitas dan membuat keputusan otorisasi dari kondisi yang Anda tentukan.
Layanan | Proses | Hasil |
---|---|---|
Izin Terverifikasi Amazon | Mengembalikan Allow atau Deny keputusan dari analisis kumpulan penggunaJWT. |
Akses ke sumber daya aplikasi berhasil atau gagal berdasarkan evaluasi kebijakan Cedar. |
Kumpulan identitas Amazon Cognito (atribut untuk kontrol akses) | Menetapkan tag sesi ke pengguna Anda berdasarkan atributnya. IAMkondisi kebijakan dapat memeriksa tag Allow atau akses Deny pengguna ke Layanan AWS. |
Sesi yang ditandai dengan AWS kredensi sementara untuk suatu peran. IAM |