Cakupan, M2M, dan API otorisasi dengan server sumber daya - Amazon Cognito

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.

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 menggunakan. AWS CDK

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 mengontrol biaya otorisasi M2M, optimalkan durasi token akses dan jumlah permintaan token yang dibuat aplikasi Anda. Lihat Token cache cara menggunakan caching API Gateway untuk mengurangi permintaan token baru dalam otorisasi M2M.

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. userInfoTitik 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 uniksub, dan kemampuan untuk meminta cakupan lainnya.

catatan

Saat Anda meminta openid cakupan dan tidak ada yang lain, token dan userInfo respons ID kumpulan pengguna menyertakan klaim untuk semua atribut pengguna yang dapat dibaca oleh klien aplikasi Anda. Saat Anda meminta openid dan cakupan standar lainnya seperti profileemail,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 parameter scope=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.

Email

Mengotorisasi atribut pengguna email danemail_verified. Amazon Cognito kembali email_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 dengan Gateway. APIGateway adalah pilihan yang baik untuk memeriksa token akses dan melindungi sumber daya Anda. Untuk informasi selengkapnya tentang otorisasi API Gateway Lambda, lihat Menggunakan otorisasi Gateway API Lambda.

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.

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, misalnyasolar-system-data. Anda dapat mengonfigurasi pengidentifikasi yang lebih panjang https://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
  1. Masuk ke konsol Amazon Cognito.

  2. Di panel navigasi, pilih Kumpulan Pengguna, dan pilih kumpulan pengguna yang ingin Anda edit.

  3. Pilih tab Integrasi aplikasi dan temukan Server sumber daya.

  4. Pilih Buat server sumber daya.

  5. Masukkan nama server Sumber Daya. Misalnya, Photo Server.

  6. Masukkan pengenal server Sumber Daya. Misalnya, com.example.photos.

  7. Masukkan cakupan khusus untuk sumber daya Anda, seperti read danwrite.

  8. Untuk setiap nama Lingkup, masukkan Deskripsi, seperti view your photos danupdate your photos.

  9. 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
Cara mendapatkan informasi tentang pengaturan server sumber daya Anda
Cara mendaftarkan informasi tentang semua server sumber daya untuk kolam pengguna
Cara menghapus server sumber daya
Cara memperbarui pengaturan pada server sumber daya