Mengelola UI yang dihosting 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.

Mengelola UI yang dihosting dan server otorisasi

Kumpulan pengguna Amazon Cognito dengan domain adalah server otorisasi yang OAuth sesuai -2.0 dan antarmuka pengguna (UI) yang ready-to-use dihosting untuk otentikasi. Server otorisasi merutekan permintaan otentikasi, mengeluarkan dan mengelola token JSON web (JWTs), dan memberikan informasi atribut pengguna. UI yang dihosting adalah kumpulan antarmuka web untuk pendaftaran dasar, masuk, otentikasi multi-faktor, dan aktivitas pengaturan ulang kata sandi di kumpulan pengguna Anda. Ini juga merupakan hub pusat untuk otentikasi dengan penyedia identitas pihak ketiga (IdPs) yang Anda kaitkan dengan aplikasi Anda. Aplikasi Anda dapat memanggil UI yang dihosting dan titik akhir otorisasi saat Anda ingin mengautentikasi dan mengotorisasi pengguna. Anda dapat membuat pengalaman pengguna UI yang dihosting sesuai dengan merek Anda dengan logo dan CSS kustomisasi Anda sendiri. Untuk informasi selengkapnya tentang komponen UI yang dihosting dan server otorisasi, lihatTitik akhir kumpulan pengguna dan referensi UI yang dihosting.

catatan

UI yang dihosting Amazon Cognito tidak mendukung otentikasi khusus dengan tantangan otentikasi khusus yang memicu Lambda.

Menyiapkan UI yang dihosting dengan AWS Amplify

Jika digunakan AWS Amplify untuk menambahkan autentikasi ke web atau aplikasi seluler, Anda dapat mengatur UI yang dihosting dengan menggunakan antarmuka baris perintah (CLI) dan pustaka dalam kerangka kerja. AWS Amplify Untuk menambahkan autentikasi ke aplikasi Anda, Anda menggunakan AWS Amplify CLI untuk menambahkan Auth kategori ke project Anda. Kemudian, dalam kode klien Anda, Anda menggunakan AWS Amplify pustaka untuk mengautentikasi pengguna dengan kumpulan pengguna Amazon Cognito Anda.

Anda dapat menampilkan UI yang di-host sebelumnya, atau Anda dapat menggabungkan pengguna melalui titik akhir OAuth 2.0 yang mengalihkan ke penyedia login sosial, seperti Facebook, Google, Amazon, atau Apple. Setelah pengguna berhasil melakukan autentikasi dengan penyedia sosial, AWS Amplify buat pengguna baru di kumpulan pengguna Anda jika diperlukan, lalu berikan OIDC token pengguna ke aplikasi Anda.

Contoh berikut menunjukkan cara menggunakan AWS Amplify untuk menyiapkan UI yang dihosting dengan penyedia sosial di aplikasi Anda.

Menyiapkan UI yang dihosting dengan konsol Amazon Cognito

Buat klien aplikasi
  1. Masuk ke Konsol Amazon Cognito. Jika diminta, masukkan AWS kredensional Anda.

  2. Pilih Kolam Pengguna.

  3. Pilih kolam pengguna yang ada dari daftar, atau buat kolam pengguna.

  4. Pilih tab Integrasi aplikasi.

  5. Di bawah Klien aplikasi, pilih Buat klien aplikasi.

  6. Pilih jenis Aplikasi: Klien publik, Klien Rahasia, atau Lainnya. Klien Publik biasanya beroperasi dari perangkat pengguna Anda dan menggunakan yang tidak diautentikasi dan diautentikasi token. APIs Klien Rahasia biasanya beroperasi dari aplikasi di server pusat yang Anda percayai dengan rahasia dan API kredensional klien, dan menggunakan header otorisasi dan kredensional untuk menandatangani permintaan. AWS Identity and Access Management Jika kasus penggunaan Anda berbeda dari pengaturan klien aplikasi yang telah dikonfigurasi sebelumnya untuk klien Publik atau klien Rahasia, pilih Lainnya.

  7. Masukkan nama klien Aplikasi.

  8. Pilih alur Autentikasi yang ingin Anda izinkan di klien aplikasi Anda.

  9. Konfigurasikan durasi sesi alur Otentikasi. Ini adalah jumlah waktu yang dimiliki pengguna Anda untuk menyelesaikan setiap tantangan otentikasi sebelum token sesi mereka kedaluwarsa.

  10. (Opsional) Konfigurasikan kedaluwarsa token.

    1. Tentukan kedaluwarsa token Refresh untuk klien aplikasi. Nilai default-nya adalah 30 hari. Anda dapat mengubahnya ke nilai berapa pun antara 1 jam dan 10 tahun.

    2. Tentukan kedaluwarsa token Access untuk klien aplikasi. Nilai default adalah 1 jam. Anda dapat mengubahnya ke nilai berapa pun antara 5 menit dan 24 jam.

    3. Tentukan kedaluwarsa token ID untuk klien aplikasi. Nilai default adalah 1 jam. Anda dapat mengubahnya ke nilai berapa pun antara 5 menit dan 24 jam.

      penting

      Jika Anda menggunakan UI yang dihosting dan mengonfigurasi masa pakai token kurang dari satu jam, pengguna Anda akan dapat menggunakan token berdasarkan durasi cookie sesi mereka, yang saat ini diperbaiki pada satu jam.

  11. Pilih Hasilkan rahasia klien agar Amazon Cognito menghasilkan rahasia klien untuk Anda. Rahasia klien biasanya dikaitkan dengan klien rahasia.

  12. Pilih apakah Anda akan Aktifkan pencabutan token untuk klien aplikasi ini. Ini akan meningkatkan ukuran token. Untuk informasi selengkapnya, lihat Mencabut Token.

  13. Pilih apakah Anda akan Mencegah pesan kesalahan yang mengungkapkan keberadaan pengguna untuk klien aplikasi ini. Amazon Cognito akan menanggapi permintaan masuk untuk pengguna yang tidak ada dengan pesan umum yang menyatakan bahwa nama pengguna atau kata sandi salah.

  14. (Opsional) Konfigurasikan izin baca dan tulis Atribut untuk klien aplikasi ini. Klien aplikasi Anda dapat memiliki izin untuk membaca dan menulis subset terbatas dari skema atribut kumpulan pengguna Anda.

  15. Pilih Buat.

  16. Perhatikan id Klien. Ini akan mengidentifikasi klien aplikasi dalam permintaan pendaftaran dan masuk.

Konfigurasi app
  1. Di tab Integrasi aplikasi, pilih klien aplikasi Anda di bawah Klien aplikasi. Tinjau informasi UI Hosted Anda saat ini.

  2. Tambahkan callback URL di bawah URLCallback yang diizinkan. Callback URL adalah tempat pengguna dialihkan setelah login berhasil.

  3. Tambahkan sign-out URL di bawah Login keluar yang diizinkan. URL Keluar URL adalah tempat pengguna Anda dialihkan setelah keluar.

  4. Tambahkan setidaknya satu opsi yang tercantum dari daftar penyedia Identitas.

  5. Di bawah OAuth2.0 jenis hibah, pilih Pemberian kode otorisasi untuk mengembalikan kode otorisasi yang kemudian ditukar dengan token kumpulan pengguna. Karena tidak pernah berinteraksi langsung ke pengguna akhir, token cenderung tidak dikompromikan. Namun, aplikasi kustom diperlukan pada backend untuk menukar kode otorisasi dengan token kolam pengguna. Untuk alasan keamanan, kami menyarankan Anda menggunakan alur pemberian kode otorisasi, bersama dengan kunci Bukti untuk kode Exchange (PKCE), untuk aplikasi seluler.

  6. Di bawah OAuth2.0 jenis hibah, pilih Pemberian implisit agar token JSON web kumpulan pengguna (JWT) dikembalikan kepada Anda dari Amazon Cognito. Anda dapat menggunakan aliran ini ketika tidak ada backend yang tersedia untuk menukar kode otorisasi dengan token. Ini juga membantu untuk debugging token.

  7. Anda dapat mengaktifkan kode Otorisasi dan hibah kode Implisit, dan kemudian menggunakan setiap hibah sesuai kebutuhan. Jika kode Otorisasi atau hibah kode Implisit tidak dipilih dan klien aplikasi Anda memiliki rahasia klien, Anda dapat mengaktifkan hibah kredensi Klien. Pilih kredensi Klien hanya jika aplikasi Anda perlu meminta token akses atas namanya sendiri dan bukan atas nama pengguna.

  8. Pilih cakupan OpenID Connect yang ingin Anda otorisasi untuk klien aplikasi ini.

  9. Pilih Simpan perubahan.

Mengkonfigurasi domain
  1. Arahkan ke tab Integrasi aplikasi untuk kumpulan pengguna Anda.

  2. Di sebelah Domain, pilih Tindakan dan pilih Buat domain khusus atau Buat domain Cognito. Jika Anda telah mengonfigurasi domain kumpulan pengguna, pilih Hapus domain Cognito atau Hapus domain kustom sebelum membuat domain kustom baru.

  3. Masukkan awalan domain yang tersedia untuk digunakan dengan domain Cognito. Untuk informasi tentang cara menyiapkan domain Kustom, lihat Menggunakan Domain Anda sendiri untuk UI yang dihosting

  4. Pilih Buat.

Melihat halaman masuk Anda

Di konsol Amazon Cognito, pilih tombol Lihat UI yang Dihosting dalam konfigurasi klien aplikasi Anda, di bawah Klien aplikasi dan analitik di tab Integrasi aplikasi. Tombol ini akan membawa Anda ke halaman login di UI yang dihosting dengan parameter dasar berikut.

  • Id klien aplikasi

  • Permintaan hibah kode otorisasi

  • Permintaan untuk semua cakupan yang telah Anda aktifkan untuk klien aplikasi saat ini

  • Callback pertama URL dalam daftar untuk klien aplikasi saat ini

Tombol Lihat UI yang dihosting berguna saat Anda ingin menguji fungsi dasar UI yang dihosting. Anda dapat menyesuaikan login Anda URL dengan parameter tambahan dan modifikasi. Dalam kebanyakan kasus, parameter yang dibuat secara otomatis dari tautan UI yang dihosting View tidak sepenuhnya sesuai dengan kebutuhan aplikasi Anda. Dalam kasus ini, Anda harus menyesuaikan aplikasi URL yang dipanggil saat masuk ke pengguna. Untuk informasi selengkapnya tentang kunci dan nilai parameter masuk, lihatTitik akhir kumpulan pengguna dan referensi UI yang dihosting.

Halaman web login UI yang dihosting menggunakan format berikutURL. Contoh ini meminta hibah kode otorisasi dengan response_type=code parameter.

https://<your domain>/oauth2/authorize?response_type=code&client_id=<your app client id>&redirect_uri=<your callback url>

Anda dapat mengambil string domain kumpulan pengguna dari tab Integrasi aplikasi. Di tab yang sama, Anda dapat mengidentifikasi klien aplikasi, panggilan balik merekaIDs, cakupan yang diizinkanURLs, dan konfigurasi lainnya di bawah Klien aplikasi dan analitik.

Saat Anda menavigasi ke /oauth2/authorize titik akhir dengan parameter kustom Anda, Amazon Cognito mengarahkan Anda ke /oauth2/login titik akhir atau, jika Anda memiliki identity_provider parameter idp_identifier atau, secara diam-diam mengarahkan Anda ke halaman masuk IDP Anda. Untuk contoh URL yang melewati UI yang dihosting, lihatSAMLinisiasi sesi di kumpulan pengguna Amazon Cognito.

Contoh permintaan UI yang dihosting untuk hibah implisit

Anda dapat melihat halaman web login UI yang dihosting dengan berikut ini URL untuk pemberian kode implisit di mana. response_type=token Setelah berhasil masuk, Amazon Cognito mengembalikan token kolam pengguna ke bilah alamat browser web Anda.

https://mydomain.us-east-1.amazoncognito.com/authorize?response_type=token&client_id=1example23456789&redirect_uri=https://mydomain.example.com

Identitas dan token akses muncul sebagai parameter yang ditambahkan ke pengalihan URL Anda.

Berikut ini adalah contoh respons dari permintaan hibah implisit.

https://mydomain.example.com/#id_token=eyJraaBcDeF1234567890&access_token=eyJraGhIjKlM1112131415&expires_in=3600&token_type=Bearer

Hal-hal yang perlu diketahui tentang UI yang dihosting dan server otorisasi

UI yang dihosting dan mengonfirmasi pengguna sebagai administrator

Untuk pengguna lokal kumpulan pengguna, UI yang dihosting berfungsi paling baik saat Anda mengonfigurasi kumpulan pengguna agar Izinkan Cognito mengirim pesan secara otomatis untuk memverifikasi dan mengonfirmasi. Saat Anda mengaktifkan setelan ini, Amazon Cognito mengirimkan pesan dengan kode konfirmasi kepada pengguna yang mendaftar. Saat Anda mengonfirmasi pengguna sebagai administrator kumpulan pengguna, UI yang dihosting akan menampilkan pesan kesalahan setelah mendaftar. Dalam keadaan ini, Amazon Cognito telah membuat pengguna baru, tetapi belum dapat mengirim pesan verifikasi. Anda masih dapat mengonfirmasi pengguna sebagai administrator, tetapi mereka mungkin menghubungi meja dukungan Anda setelah mereka menemukan kesalahan. Untuk informasi selengkapnya tentang konfirmasi administratif, lihatMemungkinkan pengguna untuk mendaftar di aplikasi Anda tetapi mengonfirmasinya sebagai administrator kumpulan pengguna.

Melihat perubahan Anda ke konfigurasi UI yang dihosting

Jika perubahan pada halaman UI yang di-host tidak segera muncul, tunggu beberapa menit dan kemudian segarkan halaman.

Menguraikan token kumpulan pengguna

Token kumpulan pengguna Amazon Cognito ditandatangani menggunakan RS256 algoritme. Anda dapat memecahkan kode dan memverifikasi token kumpulan pengguna menggunakan AWS Lambda, lihat Dekode, dan verifikasi token Amazon JWT Cognito aktif. GitHub

UI dan TLS versi yang dihosting

UI yang dihosting memerlukan enkripsi dalam perjalanan. Domain kumpulan pengguna yang disediakan oleh Amazon Cognito memerlukan versi TLS minimum 1.2. Domain kustom mendukung tetapi tidak memerlukan TLS versi 1.2. Karena Amazon Cognito mengelola konfigurasi UI yang dihosting dan titik akhir server otorisasi, Anda tidak dapat mengubah TLS persyaratan domain kumpulan pengguna.

UI dan CORS kebijakan yang dihosting

UI yang dihosting Amazon Cognito tidak mendukung kebijakan asal berbagi sumber daya lintas asal (CORS) kustom. CORSKebijakan di UI yang dihosting akan mencegah pengguna meneruskan parameter otentikasi dalam permintaan mereka. Sebagai gantinya, terapkan CORS kebijakan di frontend web aplikasi Anda. Amazon Cognito mengembalikan header Access-Control-Allow-Origin: * respons ke permintaan ke titik akhir berikutOAuth.

UI yang di-host dan cookie server otorisasi

Titik akhir kumpulan pengguna Amazon Cognito mengatur cookie di browser pengguna. Cookie sesuai dengan persyaratan beberapa browser bahwa situs tidak menetapkan cookie pihak ketiga. Mereka hanya dicakup ke titik akhir kumpulan pengguna Anda dan termasuk yang berikut ini:

  • XSRF-TOKENCookie untuk setiap permintaan.

  • csrf-stateCookie untuk konsistensi sesi saat pengguna dialihkan.

  • Cookie cognito sesi yang mempertahankan upaya masuk yang berhasil selama satu jam.

Di iOS, Anda dapat memblokir semua cookie. Pengaturan ini tidak kompatibel dengan UI yang dihosting. Untuk bekerja dengan pengguna yang mungkin mengaktifkan setelan ini, buat autentikasi kumpulan pengguna ke dalam aplikasi iOS asli AWS SDK dengan file. Dalam skenario ini, Anda dapat membangun penyimpanan sesi Anda sendiri yang tidak berbasis cookie.