Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cakupan, M2M, dan API otorisasi dengan server sumber daya
Setelah mengonfigurasi domain untuk kumpulan pengguna, Amazon Cognito secara otomatis menyediakan server otorisasi OAuth 2.0 dan UI web yang dihosting dengan halaman pendaftaran dan login yang dapat ditampilkan aplikasi kepada pengguna Anda. Untuk mengetahui informasi selengkapnya, lihat Tambahkan klien aplikasi dengan UI yang dihosting. Anda dapat memilih cakupan yang ingin ditambahkan oleh server otorisasi ke token akses. Cakupan mengotorisasi akses ke server sumber daya dan data pengguna.
Server sumber daya adalah API server OAuth 2.0. Untuk mengamankan sumber daya yang dilindungi akses, ini memvalidasi bahwa token akses dari kumpulan pengguna Anda berisi cakupan yang mengotorisasi metode dan jalur yang diminta di tempat yang dilindunginya. API Ini memverifikasi penerbit berdasarkan tanda tangan token, validitas berdasarkan waktu kedaluwarsa token, dan tingkat akses berdasarkan cakupan dalam klaim token. Lingkup kumpulan pengguna ada dalam scope
klaim token akses. Untuk informasi selengkapnya tentang klaim dalam token akses Amazon Cognito, lihat. Menggunakan token akses
Dengan Amazon Cognito, cakupan dalam token akses dapat mengotorisasi akses ke atribut eksternal APIs atau pengguna. Anda dapat mengeluarkan token akses ke pengguna lokal, pengguna federasi, atau identitas mesin.
APIotorisasi
Berikut ini adalah beberapa cara yang dapat Anda otorisasi permintaan APIs dengan token Amazon Cognito:
- Token akses
-
Saat menambahkan otorisasi Amazon Cognito ke konfigurasi permintaan REST API metode, tambahkan cakupan Otorisasi ke konfigurasi otorisasi. Dengan konfigurasi ini, Anda API menerima token akses di
Authorization
header dan meninjaunya untuk cakupan yang diterima. - Token ID
-
Saat Anda meneruskan token ID yang valid ke otorisasi Amazon Cognito di Anda RESTAPI, API Gateway menerima permintaan tersebut dan meneruskan konten token ID ke backend. API
- Izin Terverifikasi Amazon
-
Di Izin Terverifikasi, Anda memiliki opsi untuk membuat penyimpanan kebijakan API -linked. Izin Terverifikasi membuat dan menetapkan otorisasi Lambda yang memproses ID atau token akses dari header permintaan Anda.
Authorization
Pengotorisasi Lambda ini meneruskan token Anda ke toko kebijakan Anda, tempat Izin Terverifikasi membandingkannya dengan kebijakan dan mengembalikan keputusan izin atau penolakan kepada pihak otorisasi.
Sumber daya lainnya
achine-to-machine Otorisasi M (M2M)
Amazon Cognito mendukung aplikasi yang mengakses API data dengan identitas mesin. Identitas mesin di kumpulan pengguna adalah klien rahasia yang berjalan di server aplikasi dan terhubung ke jarak jauh. APIs Operasi mereka terjadi tanpa interaksi pengguna: tugas terjadwal, aliran data, atau pembaruan aset. Ketika klien ini mengotorisasi permintaan mereka dengan token acess, mereka melakukan otorisasi machine to machine, atau M2M. Dalam otorisasi M2M, rahasia bersama menggantikan kredensyal pengguna dalam kontrol akses.
Aplikasi yang mengakses otorisasi API dengan M2M harus memiliki ID klien dan rahasia klien. Di kumpulan pengguna, Anda harus membuat klien aplikasi yang mendukung hibah kredensi klien. Untuk mendukung kredensi klien, klien aplikasi Anda harus memiliki rahasia klien dan Anda harus memiliki domain kumpulan pengguna. Dalam alur ini, identitas mesin Anda meminta token akses langsung dariTitik akhir token. Anda hanya dapat mengotorisasi cakupan kustom dari server sumber daya dalam token akses untuk hibah kredensi klien. Untuk informasi selengkapnya tentang menyiapkan klien aplikasi, lihatKlien aplikasi kumpulan pengguna.
Token akses dari hibah kredensial klien adalah pernyataan operasi yang dapat diverifikasi yang ingin Anda izinkan identitas mesin Anda untuk meminta dari. API Untuk mempelajari lebih lanjut tentang cara token akses mengotorisasi API permintaan, lanjutkan membaca. Untuk contoh aplikasi, lihat Amazon Cognito dan API Gateway berbasis mesin ke otorisasi mesin
Otorisasi M2M memiliki model penagihan yang berbeda dari cara pengguna aktif bulanan () MAUs ditagih. Jika autentikasi pengguna membawa biaya per pengguna aktif, penagihan M2M mencerminkan kredensi klien aktif klien aplikasi dan total volume permintaan token. Untuk informasi selengkapnya, lihat Harga Amazon Cognito
Untuk informasi tentang mengoptimalkan operasi Amazon Cognito yang menambahkan biaya ke tagihan AWS Anda, lihat. Mengelola biaya
Tentang cakupan
Sebuah cakupan adalah tingkat akses yang dapat diminta aplikasi ke sumber daya. Dalam token akses Amazon Cognito, ruang lingkup didukung oleh kepercayaan yang Anda atur dengan kumpulan pengguna Anda: penerbit token akses tepercaya dengan tanda tangan digital yang dikenal. Kumpulan pengguna dapat menghasilkan token akses dengan cakupan yang membuktikan pelanggan Anda diizinkan untuk mengelola beberapa atau semua profil pengguna mereka sendiri, atau untuk mengambil data dari back-end. API Kumpulan pengguna Amazon Cognito mengeluarkan token akses dengan APIcakupan cadangan kumpulan pengguna, cakupan khusus, dan cakupan standar.
APILingkup cadangan kumpulan pengguna
Ruang aws.cognito.signin.user.admin
lingkup mengotorisasi kumpulan pengguna Amazon Cognito. API Ini memberi wewenang kepada pembawa token akses untuk menanyakan dan memperbarui semua informasi tentang pengguna kumpulan pengguna dengan, misalnya, GetUserdan UpdateUserAttributesAPIoperasi. Saat Anda mengautentikasi pengguna Anda dengan API kumpulan pengguna Amazon Cognito, ini adalah satu-satunya cakupan yang Anda terima dalam token akses. Ini juga satu-satunya cakupan yang Anda perlukan untuk membaca dan menulis atribut pengguna yang telah Anda otorisasi untuk dibaca dan ditulis oleh klien aplikasi. Anda juga dapat meminta ruang lingkup ini dalam permintaan ke AndaOtorisasi titik akhir. Cakupan ini saja tidak cukup untuk meminta atribut pengguna dariTitik akhir UserInfo. Untuk token akses yang mengotorisasi kumpulan pengguna API dan userInfo
permintaan untuk pengguna Anda, Anda harus meminta cakupan openid
dan aws.cognito.signin.user.admin
permintaan. /oauth2/authorize
Lingkup kustom
Cakupan khusus mengotorisasi permintaan ke eksternal APIs yang dilindungi server sumber daya. Anda dapat meminta cakupan khusus dengan jenis cakupan lainnya. Anda dapat menemukan informasi lebih lanjut tentang cakupan khusus di seluruh halaman ini.
Lingkup standar
Saat Anda mengautentikasi pengguna dengan server otorisasi kumpulan pengguna OAuth 2.0, termasuk dengan UI yang dihosting, Anda harus meminta cakupan. Anda dapat mengautentikasi kumpulan pengguna pengguna lokal dan pengguna federasi pihak ketiga di server otorisasi Amazon Cognito Anda. Cakupan standar OAuth 2.0 mengotorisasi aplikasi Anda untuk membaca informasi pengguna Titik akhir UserInfo dari kumpulan pengguna Anda. OAuthModel, tempat Anda melakukan kueri atribut pengguna dari userInfo
titik akhir, dapat mengoptimalkan aplikasi Anda untuk permintaan atribut pengguna dengan volume tinggi. userInfo
Titik akhir mengembalikan atribut pada tingkat izin yang ditentukan oleh cakupan dalam token akses. Anda dapat mengotorisasi klien aplikasi Anda untuk mengeluarkan token akses dengan cakupan standar OAuth 2.0 berikut.
- openid
-
Cakupan minimum untuk kueri OpenID Connect (OIDC). Mengotorisasi token ID, klaim pengenal unik
sub
, dan kemampuan untuk meminta cakupan lainnya.catatan
Saat Anda meminta
openid
cakupan dan tidak ada yang lain, token danuserInfo
respons ID kumpulan pengguna menyertakan klaim untuk semua atribut pengguna yang dapat dibaca oleh klien aplikasi Anda. Saat Anda memintaopenid
dan cakupan standar lainnya sepertiprofile
email
,phone
, dan, isi token ID dan userInforespons terbatas pada batasan cakupan tambahan.Misalnya, permintaan ke Otorisasi titik akhir with parameter
scope=openid+email
mengembalikan token ID dengansub
,email
, danemail_verified
. Token akses dari permintaan ini mengembalikan atribut yang sama dariTitik akhir UserInfo. Permintaan dengan parameterscope=openid
mengembalikan semua atribut yang dapat dibaca klien dalam token ID dan dari.userInfo
- profile
-
Mengotorisasi semua atribut pengguna yang dapat dibaca oleh klien aplikasi.
-
Mengotorisasi atribut pengguna
email
danemail_verified
. Amazon Cognito kembaliemail_verified
jika memiliki nilai yang ditetapkan secara eksplisit. - telepon
-
Mengotorisasi atribut pengguna
phone_number
danphone_number_verified
.
Tentang server sumber daya
Server sumber daya API mungkin memberikan akses ke informasi dalam database, atau mengontrol sumber daya TI Anda. Token akses Amazon Cognito dapat mengotorisasi akses ke dukungan 2.0 APIs itu. OAuth Amazon API Gateway REST APIs memiliki dukungan bawaan untuk otorisasi dengan token akses Amazon Cognito. Aplikasi Anda meneruskan token akses dalam API panggilan ke server sumber daya. Server sumber daya memeriksa token akses untuk menentukan apakah akses harus diberikan.
Amazon Cognito mungkin membuat pembaruan masa depan untuk skema token akses kumpulan pengguna. Jika aplikasi Anda menganalisis konten token akses sebelum meneruskannya keAPI, Anda harus merekayasa kode Anda untuk menerima pembaruan skema.
Cakupan kustom ditentukan oleh Anda, dan memperluas kemampuan otorisasi kumpulan pengguna untuk menyertakan tujuan yang tidak terkait dengan kueri dan modifikasi pengguna dan atributnya. Misalnya, jika Anda memiliki server sumber daya untuk foto, itu mungkin menentukan dua cakupan: photos.read
untuk akses baca ke foto dan photos.write
untuk akses tulis/hapus. Anda dapat mengonfigurasi token API untuk menerima akses untuk otorisasi, dan memberikan HTTP GET
permintaan untuk mengakses token dengan photos.read
scope
klaim, dan HTTP POST
permintaan ke token denganphotos.write
. Ini adalah cakupan khusus.
catatan
Server sumber daya Anda harus memverifikasi tanda tangan token akses dan tanggal kedaluwarsa sebelum memproses klaim apa pun di dalam token. Untuk informasi selengkapnya tentang memverifikasi token, lihatMemverifikasi Token JSON Web. Untuk informasi selengkapnya tentang memverifikasi dan menggunakan token kumpulan pengguna di Amazon API Gateway, lihat blog Mengintegrasikan Kumpulan API Pengguna Amazon Cognito
Gambaran Umum
Dengan Amazon Cognito, Anda dapat membuat server Sumber Daya OAuth 2.0 dan mengaitkan cakupan Kustom dengannya. Cakupan khusus dalam token akses mengotorisasi tindakan tertentu di akun Anda. API Anda dapat mengotorisasi klien aplikasi apa pun di kumpulan pengguna untuk mengeluarkan cakupan kustom dari server sumber daya mana pun. Kaitkan cakupan kustom Anda dengan klien aplikasi dan minta cakupan tersebut dalam hibah kode otorisasi OAuth 2.0, hibah implisit, dan hibah kredensil klien dari. Titik akhir token Amazon Cognito menambahkan cakupan khusus ke scope
klaim dalam token akses. Klien dapat menggunakan token akses terhadap server sumber dayanya, yang membuat keputusan otorisasi berdasarkan cakupan yang ada dalam token. Untuk informasi selengkapnya tentang cakupan token akses, lihat Menggunakan Token dengan Kolam Pengguna.
![Ikhtisar aliran server sumber daya. Klien meminta hibah dengan cakupan khusus, kumpulan pengguna mengembalikan token akses dengan cakupan kustom, dan klien menyajikan token akses keAPI.](images/resource-servers.png)
Untuk mendapatkan token akses dengan cakupan kustom, aplikasi Anda harus membuat permintaan Titik akhir token untuk menukarkan kode otorisasi atau meminta pemberian kredensi klien. Di UI yang dihosting, Anda juga dapat meminta cakupan khusus dalam token akses dari hibah implisit.
catatan
Karena mereka dirancang untuk otentikasi interaktif manusia dengan kumpulan pengguna sebagai IDP, InitiateAuthdan AdminInitiateAuthpermintaan hanya menghasilkan scope
klaim dalam token akses dengan nilai tunggal. aws.cognito.signin.user.admin
Mengelola Server Sumber Daya dan Lingkup Kustom
Saat membuat server sumber daya, Anda harus memberikan nama server sumber daya dan pengenal server sumber daya. Untuk setiap lingkup yang Anda buat di server sumber daya, Anda harus memberikan nama lingkup dan deskripsi.
-
Nama server sumber daya: Nama yang ramah untuk server sumber daya, seperti
Solar system object tracker
atauPhoto API
. -
Pengidentifikasi server sumber daya: Pengidentifikasi unik untuk server sumber daya. Pengidentifikasi adalah nama apa pun yang ingin Anda kaitkan dengan AndaAPI, misalnya
solar-system-data
. Anda dapat mengonfigurasi pengidentifikasi yang lebih panjanghttps://solar-system-data-api.example.com
seperti referensi yang lebih langsung ke API URI jalur, tetapi string yang lebih panjang meningkatkan ukuran token akses. -
Nama lingkup: Nilai yang Anda inginkan dalam
scope
klaim Anda. Misalnya,sunproximity.read
. -
Deskripsi: Deskripsi ruang lingkup yang ramah. Misalnya,
Check current proximity to sun
.
Amazon Cognito dapat menyertakan cakupan khusus dalam token akses untuk pengguna mana pun, baik lokal untuk kumpulan pengguna Anda atau digabungkan dengan penyedia identitas pihak ketiga. Anda dapat memilih cakupan untuk token akses pengguna Anda selama alur otentikasi dengan server otorisasi OAuth 2.0 yang menyertakan UI yang dihosting. Otentikasi pengguna Anda harus dimulai dari Otorisasi titik akhir dengan scope
sebagai salah satu parameter permintaan. Berikut ini adalah format yang direkomendasikan untuk server sumber daya. Untuk pengenal, gunakan nama yang API ramah. Untuk cakupan kustom, gunakan tindakan yang mereka otorisasi.
resourceServerIdentifier
/scopeName
Misalnya, Anda telah menemukan asteroid baru di sabuk Kuiper dan Anda ingin mendaftarkannya melalui sabuk Anda. solar-system-data
API Ruang lingkup yang mengotorisasi operasi tulis ke database asteroid adalah. asteroids.add
Ketika Anda meminta token akses yang akan mengizinkan Anda untuk mendaftarkan penemuan Anda, format parameter scope
HTTPS permintaan Anda sebagaiscope=solar-system-data/asteroids.add
.
Menghapus ruang lingkup dari server sumber daya tidak menghapus hubungannya dengan semua klien. Sebaliknya, ruang lingkup ditandai tidak aktif. Amazon Cognito tidak menambahkan cakupan tidak aktif untuk mengakses token, tetapi sebaliknya berjalan seperti biasa jika aplikasi Anda memintanya. Jika Anda menambahkan cakupan ke server sumber daya Anda lagi nanti, maka Amazon Cognito kembali menulisnya ke token akses. Jika Anda meminta cakupan yang belum dikaitkan dengan klien aplikasi, terlepas dari apakah Anda menghapusnya dari server sumber daya kumpulan pengguna, autentikasi gagal.
Anda dapat menggunakan AWS Management Console,API, atau CLI untuk menentukan server sumber daya dan cakupan untuk kumpulan pengguna Anda.
Mendefinisikan server sumber daya untuk kumpulan pengguna Anda ()AWS Management Console
Anda dapat menggunakan AWS Management Console untuk menentukan server sumber daya untuk kumpulan pengguna Anda.
Cara menentukan server sumber daya
-
Masuk ke konsol Amazon Cognito
. -
Di panel navigasi, pilih Kumpulan Pengguna, dan pilih kumpulan pengguna yang ingin Anda edit.
-
Pilih tab Integrasi aplikasi dan temukan Server sumber daya.
-
Pilih Buat server sumber daya.
-
Masukkan nama server Sumber Daya. Misalnya,
Photo Server
. -
Masukkan pengenal server Sumber Daya. Misalnya,
com.example.photos
. -
Masukkan cakupan khusus untuk sumber daya Anda, seperti
read
danwrite
. -
Untuk setiap nama Lingkup, masukkan Deskripsi, seperti
view your photos
danupdate your photos
. -
Pilih Buat.
Cakupan kustom Anda dapat ditinjau di tab Integrasi aplikasi di bawah Server sumber daya, di kolom Cakupan kustom. Cakupan khusus dapat diaktifkan untuk klien aplikasi dari tab Integrasi aplikasi di bawah Klien aplikasi. Pilih klien aplikasi, cari pengaturan UI yang dihosting, dan pilih Edit. Tambahkan cakupan kustom dan pilih Simpan perubahan.
Mendefinisikan server sumber daya untuk kumpulan pengguna Anda (AWS CLI dan AWS API)
Gunakan perintah berikut untuk menentukan pengaturan server sumber daya untuk kolam pengguna Anda.
Cara membuat server sumber daya
-
AWS CLI:
aws cognito-idp create-resource-server
-
AWS API: CreateResourceServer
Cara mendapatkan informasi tentang pengaturan server sumber daya Anda
-
AWS CLI:
aws cognito-idp describe-resource-server
-
AWS API: DescribeResourceServer
Cara mendaftarkan informasi tentang semua server sumber daya untuk kolam pengguna
-
AWS CLI:
aws cognito-idp list-resource-servers
-
AWS API: ListResourceServers
Cara menghapus server sumber daya
-
AWS CLI:
aws cognito-idp delete-resource-server
-
AWS API: DeleteResourceServer
Cara memperbarui pengaturan pada server sumber daya
-
AWS CLI:
aws cognito-idp update-resource-server
-
AWS API: UpdateResourceServer