Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pengaturan khusus aplikasi dengan klien aplikasi
Klien aplikasi kumpulan pengguna adalah konfigurasi dalam kumpulan pengguna yang berinteraksi dengan satu aplikasi seluler atau web yang mengautentikasi dengan Amazon Cognito. Klien aplikasi dapat memanggil API operasi yang diautentikasi dan tidak diautentikasi, dan membaca atau memodifikasi beberapa atau semua atribut pengguna Anda. Aplikasi Anda harus mengidentifikasi dirinya ke klien aplikasi dalam operasi untuk mendaftar, masuk, dan menangani kata sandi yang terlupakan. APIPermintaan ini harus menyertakan identifikasi diri dengan ID klien aplikasi, dan otorisasi dengan rahasia klien opsional. Anda harus mengamankan klien aplikasi IDs atau rahasia apa pun sehingga hanya aplikasi klien resmi yang dapat memanggil operasi yang tidak diautentikasi ini. Selain itu, jika mengonfigurasi aplikasi untuk menandatangani API permintaan yang diautentikasi dengan AWS kredensional, Anda harus mengamankan kredensialnya terhadap pemeriksaan pengguna.
Anda dapat membuat beberapa aplikasi untuk sebuah kolam pengguna. Klien aplikasi mungkin ditautkan ke platform kode aplikasi, atau penyewa terpisah di kumpulan pengguna Anda. Misalnya, Anda dapat membuat aplikasi untuk aplikasi sisi server dan aplikasi Android yang berbeda. Setiap aplikasi memiliki ID klien aplikasi sendiri.
Anda dapat menerapkan pengaturan untuk fitur kumpulan pengguna berikut di tingkat klien aplikasi:
-
UI yang dihosting IdPs, jenis hibah, panggilan balikURLs, dan kustomisasi
Jenis klien aplikasi
Saat membuat klien aplikasi di Amazon Cognito, Anda dapat mengisi opsi terlebih dahulu berdasarkan jenis OAuth klien standar klien publik dan klien rahasia. Konfigurasikan klien rahasia dengan rahasia klien. Untuk informasi selengkapnya tentang tipe klien, lihat IETFRFC6749 #2 .1
- Klien publik
-
Klien publik berjalan di browser atau di perangkat seluler. Karena tidak memiliki sumber daya sisi server tepercaya, ia tidak memiliki rahasia klien.
- Klien rahasia
-
Klien rahasia memiliki sumber daya sisi server yang dapat dipercaya dengan rahasia klien untuk operasi yang tidak diautentikasi. API Aplikasi ini mungkin berjalan sebagai skrip daemon atau shell di server backend Anda.
- Rahasia klien
-
Rahasia klien, atau kata sandi klien, adalah string tetap yang harus digunakan aplikasi Anda di semua API permintaan ke klien aplikasi. Klien aplikasi Anda harus memiliki rahasia klien untuk melakukan
client_credentials
hibah. Untuk informasi lebih lanjut, lihat IETFRFC6749 #2 .3.1.Anda tidak dapat mengubah rahasia setelah membuat aplikasi. Anda dapat membuat aplikasi baru dengan rahasia baru jika Anda ingin memutar rahasia. Anda juga dapat menghapus aplikasi untuk memblokir akses dari aplikasi yang menggunakan ID klien aplikasi tersebut.
Anda dapat menggunakan klien rahasia, dan rahasia klien, dengan aplikasi publik. Gunakan CloudFront proxy Amazon untuk menambahkan SECRET_HASH
dalam perjalanan. Untuk informasi selengkapnya, lihat Melindungi klien publik untuk Amazon Cognito dengan menggunakan CloudFront proxy Amazon
JSONtoken web
Klien aplikasi Amazon Cognito dapat mengeluarkan token JSON web (JWTs) dari jenis berikut.
- Token identitas (ID)
-
Pernyataan yang dapat diverifikasi bahwa pengguna Anda diautentikasi dari kumpulan pengguna Anda. OpenID Connect (OIDC) menambahkan spesifikasi token ID
ke standar akses dan penyegaran token yang ditentukan oleh OAuth 2.0. Token ID berisi informasi identitas, seperti atribut pengguna, yang dapat digunakan aplikasi Anda untuk membuat profil pengguna dan sumber daya penyediaan. Untuk informasi selengkapnya, lihat Memahami token identitas (ID). - Token akses
-
Pernyataan hak akses pengguna Anda yang dapat diverifikasi. Token akses berisi cakupan
, fitur OIDC dan OAuth 2.0. Aplikasi Anda dapat menampilkan cakupan ke sumber daya back-end dan membuktikan bahwa kumpulan pengguna Anda mengizinkan pengguna atau mesin untuk mengakses data dariAPI, atau data pengguna mereka sendiri. Token akses dengan cakupan kustom, seringkali dari hibah kredensial-klien M2M, mengotorisasi akses ke server sumber daya. Untuk informasi selengkapnya, lihat Memahami token akses. - Token refresh
-
Pernyataan otentikasi awal terenkripsi yang dapat ditampilkan aplikasi Anda ke kumpulan pengguna Anda saat token pengguna Anda kedaluwarsa. Permintaan refresh token mengembalikan akses baru dan token ID yang belum kedaluwarsa. Untuk informasi selengkapnya, lihat Memahami token penyegaran.
Anda dapat mengatur kedaluwarsa token ini untuk setiap klien aplikasi dari tab Integrasi aplikasi kumpulan pengguna Anda di konsol Amazon Cognito
Ketentuan klien aplikasi
Istilah berikut adalah properti klien aplikasi yang tersedia di konsol Amazon Cognito.
- Panggilan balik yang diizinkan URLs
-
Callback URL menunjukkan tempat pengguna akan dialihkan setelah login berhasil. Pilih setidaknya satu callbackURL. Callback URL harus:
-
Jadilah yang absolutURI.
-
Sudah terdaftar pada klien.
-
Tidak termasuk komponen fragmen.
Lihat OAuth2.0 - titik akhir pengalihan
. Amazon Cognito membutuhkan
HTTPS
di atasHTTP
kecualihttp://localhost
untuk tujuan pengujian saja.Panggilan balik aplikasi URLs seperti
myapp://example
juga didukung. -
- Diizinkan keluar URLs
-
Keluar URL menunjukkan ke mana pengguna Anda akan dialihkan setelah keluar.
- Atribut izin baca dan tulis
-
Kumpulan pengguna Anda mungkin memiliki banyak pelanggan, masing-masing dengan klien aplikasi mereka sendiri dan IdPs. Anda dapat mengonfigurasi klien aplikasi agar memiliki akses baca dan tulis hanya ke atribut pengguna yang relevan dengan aplikasi. Dalam kasus seperti otorisasi machine-to-machine (M2M), Anda tidak dapat memberikan akses ke atribut pengguna Anda.
Pertimbangan untuk konfigurasi izin baca dan tulis atribut
-
Saat Anda membuat klien aplikasi dan tidak menyesuaikan izin baca dan tulis atribut, Amazon Cognito memberikan izin baca dan tulis ke semua atribut kumpulan pengguna.
-
Anda dapat memberikan akses tulis ke atribut kustom yang tidak dapat diubah. Klien aplikasi Anda dapat menulis nilai ke atribut yang tidak dapat diubah saat Anda membuat atau mendaftarkan pengguna. Setelah ini, Anda tidak dapat menulis nilai ke atribut kustom yang tidak dapat diubah untuk pengguna.
-
Klien aplikasi harus memiliki akses tulis ke atribut yang diperlukan di kumpulan pengguna Anda. Konsol Amazon Cognito secara otomatis menetapkan atribut yang diperlukan sebagai dapat ditulis.
-
Anda tidak dapat mengizinkan klien aplikasi untuk memiliki akses tulis ke
email_verified
atauphone_number_verified
. Administrator kumpulan pengguna dapat memodifikasi nilai-nilai ini. Seorang pengguna hanya dapat mengubah nilai atribut ini melalui verifikasi atribut.
-
- Alur otentikasi
-
Metode yang memungkinkan klien aplikasi Anda untuk login. Aplikasi Anda dapat mendukung otentikasi dengan nama pengguna dan kata sandi, Secure Remote Password (SRP), autentikasi khusus dengan pemicu Lambda, dan penyegaran token. Sebagai praktik keamanan terbaik, gunakan SRP otentikasi sebagai metode masuk utama Anda. UI yang dihosting secara otomatis menandatangani pengguna denganSRP.
- Lingkup kustom
-
Cakupan kustom adalah salah satu yang Anda tetapkan untuk server sumber daya Anda sendiri di Server Sumber Daya. Formatnya adalah
resource-server-identifier
/scope
. LihatCakupan, M2M, dan APIs dengan server sumber daya. - Pengalihan default URI
-
Mengganti
redirect_uri
parameter dalam permintaan otentikasi untuk pengguna dengan pihak ketiga. IdPs Konfigurasikan pengaturan klien aplikasi ini denganDefaultRedirectURI
parameter UpdateUserPoolClientAPIpermintaan CreateUserPoolClientatau. Ini juga URL harus menjadi anggotaCallbackURLs
untuk klien aplikasi Anda. Amazon Cognito mengalihkan sesi yang diautentikasi ke ini saat: URL-
Klien aplikasi Anda memiliki satu penyedia identitas yang ditetapkan dan beberapa panggilan balik yang URLs ditentukan. Kumpulan pengguna Anda mengalihkan permintaan otentikasi ke server otorisasi ke pengalihan default URI jika tidak menyertakan parameter.
redirect_uri
-
Klien aplikasi Anda memiliki satu penyedia identitas yang ditetapkan dan satu callback URLs ditentukan. Dalam skenario ini, tidak perlu mendefinisikan callback URL default. Permintaan yang tidak menyertakan pengalihan
redirect_uri
parameter ke callback URL yang tersedia.
-
- Penyedia Identitas
-
Anda dapat memilih beberapa atau semua penyedia identitas eksternal kumpulan pengguna (IdPs) untuk mengautentikasi pengguna Anda. Klien aplikasi Anda juga dapat mengautentikasi hanya pengguna lokal di kumpulan pengguna Anda. Saat menambahkan iDP ke klien aplikasi, Anda dapat membuat tautan otorisasi ke iDP dan menampilkannya di halaman login UI yang dihosting. Anda dapat menetapkan beberapa IdPs, tetapi Anda harus menetapkan setidaknya satu. Untuk informasi selengkapnya tentang penggunaan eksternal IdPs, lihatMenambahkan login kumpulan pengguna melalui pihak ketiga.
- Lingkup OpenID Connect
-
Pilih salah satu atau beberapa cakupan
OAuth
berikut untuk menentukan hak akses yang dapat diminta untuk token akses.-
openid
Cakupan menyatakan bahwa Anda ingin mengambil token ID dan ID unik pengguna. Ini juga meminta semua atau beberapa atribut pengguna, tergantung pada cakupan tambahan dalam permintaan. Amazon Cognito tidak mengembalikan token ID kecuali Anda meminta cakupannya.openid
openid
Cakupan mengotorisasi klaim token ID struktural seperti kedaluwarsa dan ID kunci, dan menentukan atribut pengguna yang Anda terima sebagai respons dari. userInfo titik akhir-
openid
Kapan satu-satunya cakupan yang Anda minta, Amazon Cognito mengisi token ID dengan semua atribut pengguna yang dapat dibaca oleh klien aplikasi saat ini.userInfo
Respons terhadap token akses dengan cakupan ini saja mengembalikan semua atribut pengguna. -
Ketika Anda meminta
openid
dengan cakupan lain sepertiphone
email
,, atauprofile
, token ID danuserInfo
mengembalikan ID unik pengguna dan atribut yang ditentukan oleh cakupan tambahan.
-
-
Cakupan
phone
memberikan akses kephone_number
dan klaimphone_number_verified
. Cakupan ini hanya dapat diminta dengan cakupanopenid
. -
Cakupan
email
memberikan akses keemail
dan klaimemail_verified
. Cakupan ini hanya dapat diminta dengan cakupanopenid
. -
Ruang
aws.cognito.signin.user.admin
lingkup memberikan akses ke operasi APIkumpulan pengguna Amazon Cognito yang memerlukan token akses, seperti UpdateUserAttributesdan. VerifyUserAttribute -
Cakupan
profile
memberikan akses ke semua atribut pengguna yang dapat dibaca oleh klien. Cakupan ini hanya dapat diminta dengan cakupanopenid
.
Untuk informasi selengkapnya tentang cakupan, lihat daftar OIDCcakupan standar
. -
- OAuthjenis hibah
-
OAuthHibah adalah metode otentikasi yang mengambil token kumpulan pengguna. Amazon Cognito mendukung jenis hibah berikut. Untuk mengintegrasikan OAuth hibah ini di aplikasi, Anda harus menambahkan domain ke kumpulan pengguna.
Pemberian kode otorisasi
Pemberian kode otorisasi menghasilkan kode yang dapat ditukarkan oleh aplikasi Anda dengan token kumpulan pengguna dengan. Titik akhir token Saat Anda menukar kode otorisasi, aplikasi Anda akan menerima ID, akses, dan token penyegaran. OAuthAlur ini, seperti hibah implisit, terjadi di browser pengguna Anda. Pemberian kode otorisasi adalah hibah paling aman yang ditawarkan Amazon Cognito, karena token tidak terlihat di sesi pengguna Anda. Sebagai gantinya, aplikasi Anda menghasilkan permintaan yang mengembalikan token dan dapat menyimpannya di penyimpanan yang dilindungi. Untuk informasi selengkapnya, lihat Kode otorisasi di IETFRFC6749 #1
.3.1 catatan
Sebagai praktik keamanan terbaik di aplikasi klien publik, aktifkan hanya OAuth alur hibah kode otorisasi, dan terapkan Kunci Bukti untuk Pertukaran Kode (PKCE) untuk membatasi pertukaran token. DenganPKCE, klien hanya dapat bertukar kode otorisasi ketika mereka telah memberikan titik akhir token dengan rahasia yang sama yang disajikan dalam permintaan otentikasi asli. Untuk informasi lebih lanjut tentangPKCE, lihat IETFRFC7636
. Hibah implisit
Hibah implisit memberikan akses dan token ID, tetapi bukan token penyegaran, ke sesi browser pengguna Anda langsung dari. Otorisasi titik akhir Hibah implisit menghapus persyaratan untuk permintaan terpisah ke titik akhir token, tetapi tidak kompatibel dengan PKCE dan tidak mengembalikan token penyegaran. Hibah ini mengakomodasi skenario pengujian dan arsitektur aplikasi yang tidak dapat menyelesaikan hibah kode otorisasi. Untuk informasi selengkapnya, lihat Hibah implisit di IETFRFC6749 #1
.3.2. Anda dapat mengaktifkan hibah kode otorisasi dan hibah implisit di klien aplikasi, lalu menggunakan setiap hibah sesuai kebutuhan. Pemberian kredensi klien
Hibah kredensi klien adalah untuk komunikasi machine-to-machine (M2M). Kode otorisasi dan implisit memberikan token penerbitan kepada pengguna manusia yang diautentikasi. Kredensi klien memberikan otorisasi berbasis cakupan dari sistem non-interaktif ke sistem. API Aplikasi Anda dapat meminta kredensi klien langsung dari titik akhir token dan menerima token akses. Untuk informasi selengkapnya, lihat Client Client Client di IETFRFC6749
#1 .3.4. Anda hanya dapat mengaktifkan hibah kredensial-klien di klien aplikasi yang memiliki rahasia klien dan yang tidak mendukung kode otorisasi atau hibah implisit. catatan
Karena Anda tidak memanggil alur kredensi klien sebagai pengguna, hibah ini hanya dapat menambahkan cakupan khusus untuk mengakses token. Cakupan kustom adalah salah satu yang Anda tetapkan untuk server sumber daya Anda sendiri. Cakupan default menyukai
openid
danprofile
tidak berlaku untuk pengguna bukan manusia.Karena token ID adalah validasi atribut pengguna, token tersebut tidak relevan dengan komunikasi M2M, dan pemberian kredensi klien tidak menerbitkannya. Lihat Cakupan, M2M, dan APIs dengan server sumber daya.
Hibah kredensi klien menambah biaya ke tagihan Anda. AWS Untuk informasi selengkapnya, lihat Harga Amazon Cognito
.
Membuat klien aplikasi
Memperbarui klien aplikasi kumpulan pengguna (AWS CLI dan AWS API)
Di AWS CLI, masukkan perintah berikut:
aws cognito-idp update-user-pool-client --user-pool-id "
MyUserPoolID
" --client-id "MyAppClientID
" --allowed-o-auth-flows-user-pool-client --allowed-o-auth-flows "code" "implicit" --allowed-o-auth-scopes "openid" --callback-urls "["https://example.com
"]" --supported-identity-providers "["MySAMLIdP", "LoginWithAmazon"]"
Jika perintah berhasil, AWS CLI mengembalikan konfirmasi:
{ "UserPoolClient": { "ClientId": "
MyClientID
", "SupportedIdentityProviders": [ "LoginWithAmazon", "MySAMLIdP" ], "CallbackURLs": [ "https://example.com
" ], "AllowedOAuthScopes": [ "openid" ], "ClientName": "Example", "AllowedOAuthFlows": [ "implicit", "code" ], "RefreshTokenValidity": 30, "AuthSessionValidity": 3, "CreationDate": 1524628110.29, "AllowedOAuthFlowsUserPoolClient": true, "UserPoolId": "MyUserPoolID
", "LastModifiedDate": 1530055177.553 } }
Lihat referensi AWS CLI perintah untuk informasi lebih lanjut: update-user-pool-client.
AWS API: UpdateUserPoolClient
Mendapatkan informasi tentang klien aplikasi kumpulan pengguna (AWS CLI dan AWS API)
aws cognito-idp describe-user-pool-client --user-pool-id
MyUserPoolID
--client-idMyClientID
Lihat referensi AWS CLI perintah untuk informasi lebih lanjut: describe-user-pool-client.
AWS API: DescribeUserPoolClient
Mencantumkan semua informasi klien aplikasi di kumpulan pengguna (AWS CLI dan AWS API)
aws cognito-idp list-user-pool-clients --user-pool-id "
MyUserPoolID
" --max-results 3
Lihat referensi AWS CLI perintah untuk informasi lebih lanjut: list-user-pool-clients.
AWS API: ListUserPoolClients
Menghapus klien aplikasi kumpulan pengguna (AWS CLI dan AWS API)
aws cognito-idp delete-user-pool-client --user-pool-id "
MyUserPoolID
" --client-id "MyAppClientID
"
Lihat referensi AWS CLI perintah untuk informasi lebih lanjut: delete-user-pool-client
AWS API: DeleteUserPoolClient