Menggunakan kumpulan pengguna API dan server otorisasi - Amazon Cognito

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

Menggunakan kumpulan pengguna API dan server otorisasi

Saat ingin mendaftar, masuk, dan mengelola pengguna di kumpulan pengguna, Anda memiliki dua opsi.

  1. Titik akhir kumpulan pengguna Anda mencakup UI yang dihosting dan titik akhir federasi. Mereka membuat paket halaman web publik yang diaktifkan Amazon Cognito saat Anda memilih domain untuk kumpulan pengguna Anda. Untuk memulai dengan cepat dengan fitur otentikasi dan otorisasi kumpulan pengguna Amazon Cognito, termasuk halaman untuk pendaftaran, masuk, manajemen kata sandi, dan otentikasi multi-faktor MFA (), gunakan antarmuka pengguna bawaan dari UI yang dihosting. Titik akhir kumpulan pengguna lainnya memfasilitasi otentikasi dengan penyedia identitas pihak ketiga ()IdPs. Layanan yang mereka lakukan meliputi yang berikut ini.

    1. Titik akhir panggilan balik penyedia layanan untuk klaim yang diautentikasi dari Anda, suka, dan. IdPs saml2/idpresponse oauth2/idpresponse Jika Amazon Cognito adalah penyedia layanan perantara (SP) antara aplikasi dan idP Anda, titik akhir callback mewakili layanan.

    2. Endpoint yang memberikan informasi tentang lingkungan Anda, seperti oauth2/userInfo danjwks.json. Aplikasi Anda menggunakan titik akhir ini saat memverifikasi token atau mengambil data profil pengguna dengan AWS SDKs dan OAuth pustaka 2.0.

  2. Kumpulan pengguna Amazon Cognito API adalah seperangkat alat untuk web atau aplikasi seluler Anda, setelah mengumpulkan informasi masuk di front end kustom Anda sendiri, untuk mengautentikasi pengguna. APIOtentikasi kumpulan pengguna menghasilkan token JSON web berikut.

    1. Token identitas dengan klaim atribut yang dapat diverifikasi dari pengguna Anda.

    2. Token akses yang memberi wewenang kepada pengguna Anda untuk membuat API permintaan yang diotorisasi token ke titik akhir layanan.AWS

      catatan

      Secara default, token akses dari API otentikasi kumpulan pengguna hanya berisi aws.cognito.signin.user.admin ruang lingkup. Untuk menghasilkan token akses dengan cakupan tambahan, misalnya untuk mengotorisasi permintaan ke pihak ketigaAPI, minta cakupan selama autentikasi melalui titik akhir kumpulan pengguna Anda atau tambahkan cakupan khusus di file. Pemicu Lambda generasi pra token Kustomisasi token akses menambah biaya ke AWS tagihan Anda.

Anda dapat menautkan pengguna federasi, yang biasanya masuk melalui titik akhir kumpulan pengguna, dengan pengguna yang profilnya lokal ke kumpulan pengguna Anda. Pengguna lokal ada secara eksklusif di direktori kumpulan pengguna Anda tanpa federasi melalui iDP eksternal. Jika Anda menautkan identitas federasi mereka ke pengguna lokal dalam AdminLinkProviderForUserAPIpermintaan, mereka dapat masuk dengan kumpulan API pengguna. Untuk informasi selengkapnya, lihat Menautkan pengguna gabungan ke profil pengguna yang ada.

Kumpulan pengguna Amazon Cognito API adalah tujuan ganda. Ini membuat dan mengonfigurasi sumber daya kumpulan pengguna Amazon Cognito Anda. Misalnya, Anda dapat membuat kumpulan pengguna, menambahkan AWS Lambda pemicu, dan mengonfigurasi domain UI yang dihosting. Kumpulan pengguna API juga melakukan pendaftaran, masuk, dan operasi pengguna lainnya untuk pengguna lokal dan tertaut.

Contoh skenario dengan kumpulan pengguna Amazon Cognito API

  1. Pengguna Anda memilih tombol “Buat akun” yang Anda buat di aplikasi Anda. Mereka memasukkan alamat email dan kata sandi.

  2. Aplikasi Anda mengirimkan SignUpAPIpermintaan dan membuat pengguna baru di kumpulan pengguna Anda.

  3. Aplikasi Anda meminta pengguna Anda untuk kode konfirmasi email. Pengguna Anda memasukkan kode yang mereka terima dalam pesan email.

  4. Aplikasi Anda mengirimkan ConfirmSignUpAPIpermintaan dengan kode konfirmasi pengguna.

  5. Aplikasi Anda meminta pengguna Anda untuk nama pengguna dan kata sandi mereka, dan mereka memasukkan informasi mereka.

  6. Aplikasi Anda mengirimkan InitiateAuthAPIpermintaan dan menyimpan token ID, token akses, dan token penyegaran. Aplikasi Anda memanggil OIDC library untuk mengelola token pengguna dan mempertahankan sesi persisten untuk pengguna tersebut.

Di kumpulan pengguna Amazon CognitoAPI, Anda tidak dapat memasukkan pengguna yang melakukan federasi melalui iDP. Anda harus mengautentikasi pengguna ini melalui titik akhir kumpulan pengguna Anda. Untuk informasi selengkapnya tentang titik akhir kumpulan pengguna yang menyertakan UI yang dihosting, lihatTitik akhir kumpulan pengguna dan referensi UI yang dihosting. Pengguna federasi Anda dapat memulai di UI yang dihosting dan memilih IDP mereka, atau Anda dapat melewati UI yang dihosting dan mengirim pengguna Anda langsung ke IDP Anda untuk masuk. Jika API permintaan Anda ke Otorisasi titik akhir menyertakan parameter iDP, Amazon Cognito secara diam-diam mengalihkan pengguna Anda ke halaman masuk iDP.

Contoh skenario dengan titik akhir kumpulan pengguna

  1. Pengguna Anda memilih tombol “Buat akun” yang Anda buat di aplikasi Anda.

  2. Anda menyajikan pengguna Anda dengan daftar penyedia identitas sosial di mana Anda telah mendaftarkan kredensi pengembang. Pengguna Anda memilih Apple.

  3. Aplikasi Anda memulai permintaan ke nama SignInWithApple penyedia Otorisasi titik akhir with.

  4. Browser pengguna Anda membuka halaman OAuth otorisasi Apple. Pengguna Anda memilih untuk mengizinkan Amazon Cognito membaca informasi profil mereka.

  5. Amazon Cognito mengonfirmasi token akses Apple dan menanyakan profil Apple pengguna Anda.

  6. Pengguna Anda menyajikan kode otorisasi Amazon Cognito ke aplikasi Anda.

  7. Aplikasi Anda menukar kode otorisasi dengan Titik akhir token dan menyimpan token ID, token akses, dan token penyegaran. Aplikasi Anda memanggil OIDC library untuk mengelola token pengguna dan mempertahankan sesi persisten untuk pengguna tersebut.

Kumpulan pengguna API dan titik akhir kumpulan pengguna mendukung berbagai skenario, yang dijelaskan di seluruh panduan ini. Bagian berikut memeriksa bagaimana kumpulan pengguna membagi API lebih lanjut ke dalam kelas yang mendukung persyaratan pendaftaran, masuk, dan manajemen sumber daya Anda.

Kumpulan pengguna Amazon Cognito operasi yang diautentikasi dan tidak diautentikasi API

Kumpulan pengguna Amazon CognitoAPI, baik antarmuka manajemen sumber daya dan antarmuka otentikasi dan otorisasi yang dihadapi pengguna, menggabungkan model otorisasi yang mengikuti operasinya. Bergantung pada API operasinya, Anda mungkin harus memberikan otorisasi dengan IAM kredensil, token akses, token sesi, rahasia klien, atau kombinasi keduanya. Untuk banyak operasi otentikasi dan otorisasi pengguna, Anda memiliki pilihan versi permintaan yang diautentikasi dan tidak diautentikasi. Operasi yang tidak diautentikasi adalah praktik keamanan terbaik untuk aplikasi yang Anda distribusikan kepada pengguna, seperti aplikasi seluler; Anda tidak perlu menyertakan rahasia apa pun dalam kode Anda.

Anda hanya dapat menetapkan izin dalam IAM kebijakan untuk IAM-operasi manajemen yang diautentikasi dan. IAM-operasi pengguna yang diautentikasi

IAM-operasi manajemen yang diautentikasi memodifikasi dan melihat kumpulan pengguna dan konfigurasi klien aplikasi Anda, seperti yang akan Anda lakukan di. AWS Management Console

Misalnya, untuk mengubah kumpulan pengguna Anda dalam UpdateUserPoolAPIpermintaan, Anda harus menunjukkan AWS kredensil dan IAM izin untuk memperbarui sumber daya.

Untuk mengotorisasi permintaan ini di AWS Command Line Interface (AWS CLI) atau AWS SDK, konfigurasikan lingkungan Anda dengan variabel lingkungan atau konfigurasi klien yang menambahkan IAM kredensil ke permintaan Anda. Untuk informasi selengkapnya, lihat Mengakses AWS menggunakan AWS kredensil Anda di. Referensi Umum AWS Anda juga dapat mengirim permintaan langsung ke titik akhir layanan untuk kumpulan pengguna Amazon Cognito. API Anda harus mengotorisasi, atau menandatangani, permintaan ini dengan AWS kredensil yang Anda sematkan di header permintaan Anda. Untuk informasi selengkapnya, lihat AWS APIPermintaan penandatanganan.

IAM-operasi manajemen yang diautentikasi
AddCustomAttributes
CreateGroup
CreateIdentityProvider
CreateResourceServer
CreateUserImportJob
CreateUserPool
CreateUserPoolClient
CreateUserPoolDomain
DeleteGroup
DeleteIdentityProvider
DeleteResourceServer
DeleteUserPool
DeleteUserPoolClient
DeleteUserPoolDomain
DescribeIdentityProvider
DescribeResourceServer
DescribeRiskConfiguration
DescribeUserImportJob
DescribeUserPool
DescribeUserPoolClient
DescribeUserPoolDomain
GetCSVHeader
GetGroup
GetIdentityProviderByIdentifier
GetSigningCertificate
GetUICustomization
GetUserPoolMfaConfig
ListGroups
ListIdentityProviders
ListResourceServers
ListTagsForResource
ListUserImportJobs
ListUserPoolClients
ListUserPools
ListUsers
ListUsersInGroup
SetRiskConfiguration
SetUICustomization
SetUserPoolMfaConfig
StartUserImportJob
StopUserImportJob
TagResource
UntagResource
UpdateGroup
UpdateIdentityProvider
UpdateResourceServer
UpdateUserPool
UpdateUserPoolClient
UpdateUserPoolDomain

IAM-operasi pengguna yang diautentikasi mendaftar, masuk, mengelola kredensi untuk, memodifikasi, dan melihat pengguna Anda.

Misalnya, Anda dapat memiliki tingkat aplikasi sisi server yang mendukung ujung depan web. Aplikasi sisi server Anda adalah klien OAuth rahasia yang Anda percayai dengan akses istimewa ke sumber daya Amazon Cognito Anda. Untuk mendaftarkan pengguna di aplikasi, server Anda dapat menyertakan AWS kredensil dalam permintaan. AdminCreateUserAPI Untuk informasi selengkapnya tentang jenis OAuth klien, lihat Jenis Klien di Kerangka Otorisasi OAuth 2.0.

Untuk mengotorisasi permintaan ini di AWS CLI atau an AWS SDK, konfigurasikan lingkungan aplikasi sisi server Anda dengan variabel lingkungan atau konfigurasi klien yang menambahkan IAM kredensil ke permintaan Anda. Untuk informasi selengkapnya, lihat Mengakses AWS menggunakan AWS kredensil Anda di. Referensi Umum AWS Anda juga dapat mengirim permintaan langsung ke titik akhir layanan untuk kumpulan pengguna Amazon Cognito. API Anda harus mengotorisasi, atau menandatangani, permintaan ini dengan AWS kredensil yang Anda sematkan di header permintaan Anda. Untuk informasi selengkapnya, lihat AWS APIPermintaan penandatanganan.

Jika klien aplikasi Anda memiliki rahasia klien, Anda harus memberikan IAM kredensil dan, tergantung pada operasinya, SecretHash parameter atau SECRET_HASH nilai dalam. AuthParameters Untuk informasi selengkapnya, lihat Menghitung nilai hash rahasia.

IAM-operasi pengguna yang diautentikasi
AdminAddUserToGroup
AdminConfirmSignUp
AdminCreateUser
AdminDeleteUser
AdminDeleteUserAttributes
AdminDisableProviderForUser
AdminDisableUser
AdminEnableUser
AdminForgetDevice
AdminGetDevice
AdminGetUser
AdminInitiateAuth
AdminLinkProviderForUser
AdminListDevices
AdminListGroupsForUser
AdminListUserAuthEvents
AdminRemoveUserFromGroup
AdminResetUserPassword
AdminRespondToAuthChallenge
AdminSetUserMFAPreference
AdminSetUserPassword
AdminSetUserSettings
AdminUpdateAuthEventFeedback
AdminUpdateDeviceStatus
AdminUpdateUserAttributes
AdminUserGlobalSignOut

Operasi pengguna yang tidak diautentikasi mendaftar, masuk, dan memulai pengaturan ulang kata sandi untuk pengguna Anda. Gunakan API operasi yang tidak diautentikasi, atau publik, saat Anda ingin siapa pun di internet mendaftar dan masuk ke aplikasi Anda.

Misalnya, untuk mendaftarkan pengguna di aplikasi, Anda dapat mendistribusikan klien OAuth publik yang tidak menyediakan akses istimewa apa pun ke rahasia. Anda dapat mendaftarkan pengguna ini dengan operasi yang tidak diautentikasi. API SignUp

Untuk mengirim permintaan ini di klien publik yang Anda kembangkan dengan AWS SDK, Anda tidak perlu mengonfigurasi kredensi apa pun. Anda juga dapat mengirim permintaan langsung ke titik akhir layanan untuk API kumpulan pengguna Amazon Cognito tanpa otorisasi tambahan.

Jika klien aplikasi Anda memiliki rahasia klien, Anda harus memberikan, tergantung pada operasi, SecretHash parameter atau SECRET_HASH nilai dalamAuthParameters. Untuk informasi selengkapnya, lihat Menghitung nilai hash rahasia.

Operasi pengguna yang tidak diautentikasi
SignUp
ConfirmSignUp
ResendConfirmationCode
ForgotPassword
ConfirmForgotPassword
InitiateAuth

Operasi pengguna yang diotorisasi token keluar, mengelola kredensil untuk, memodifikasi, dan melihat pengguna Anda setelah mereka masuk atau memulai proses masuk. Gunakan API operasi yang diotorisasi token saat Anda tidak ingin mendistribusikan rahasia di aplikasi, dan Anda ingin mengotorisasi permintaan dengan kredensil pengguna Anda sendiri. Jika pengguna Anda telah menyelesaikan proses masuk, Anda harus mengotorisasi API permintaan resmi token mereka dengan token akses. Jika pengguna Anda berada di tengah proses masuk, Anda harus mengotorisasi API permintaan resmi token mereka dengan token sesi yang dikembalikan Amazon Cognito sebagai respons terhadap permintaan sebelumnya.

Misalnya, di klien publik, Anda mungkin ingin memperbarui profil pengguna dengan cara yang membatasi akses tulis ke profil pengguna sendiri saja. Untuk melakukan pembaruan ini, klien Anda dapat menyertakan token akses pengguna dalam UpdateUserAttributesAPIpermintaan.

Untuk mengirim permintaan ini di klien publik yang Anda kembangkan dengan AWS SDK, Anda tidak perlu mengonfigurasi kredensi apa pun. Sertakan Session parameter AccessToken atau dalam permintaan Anda. Anda juga dapat mengirim permintaan langsung ke titik akhir layanan untuk kumpulan pengguna Amazon Cognito. API Untuk mengotorisasi permintaan ke titik akhir layanan, sertakan token akses atau sesi di POST badan permintaan Anda.

Untuk menandatangani API permintaan operasi yang diotorisasi token, sertakan token akses sebagai Authorization header dalam permintaan Anda, dalam format. Bearer <Base64-encoded access token>

Operasi pengguna yang diotorisasi token AccessToken Sesi
RespondToAuthChallenge
ChangePassword
GetUser
UpdateUserAttributes
DeleteUserAttributes
DeleteUser
ConfirmDevice
ForgetDevice
GetDevice
ListDevices
UpdateDeviceStatus
GetUserAttributeVerificationCode
VerifyUserAttribute
SetUserSettings
SetUserMFAPreference
GlobalSignOut
AssociateSoftwareToken
UpdateAuthEventFeedback
VerifySoftwareToken
RevokeToken¹

¹ RevokeToken mengambil token penyegaran sebagai parameter. Token penyegaran berfungsi sebagai token otorisasi, dan sebagai sumber daya target.