Contoh aplikasi untuk kumpulan identitas - Amazon Cognito

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

Contoh aplikasi untuk kumpulan identitas

Kasus penggunaan yang paling umum untuk kumpulan identitas Amazon Cognito adalah untuk menyatukan pengguna dari beberapa sistem masuk dan mengirimkan kredensyal akses terbatas AWS sementara langsung ke klien. Ini menghilangkan kebutuhan untuk membangun broker kredensil untuk izin mengakses sumber daya Anda. AWS Misalnya, Anda mungkin perlu mengizinkan pengguna masuk dengan akun media sosial mereka dan mengakses aset aplikasi dari Amazon S3 untuk aplikasi seluler Anda. Identity pool juga memberikan kredensi kepada pengguna yang masuk dengan kumpulan pengguna.

Dalam tutorial ini, Anda akan membuat aplikasi web di mana Anda dapat memperoleh kredensyal otentikasi sementara dan tamu dalam aliran otentikasi yang ditingkatkan dan dasar dengan penyedia identitas yang didukung (IdPs) di kumpulan identitas. Jika Anda sudah berpengalaman dalam pengembangan web, unduh contoh aplikasi dari GitHub.

Unduh contoh aplikasi dari GitHub

Aplikasi contoh ini menunjukkan kemampuan berikut dari kumpulan identitas Amazon Cognito:

Alur otentikasi di kumpulan identitas
  • Alur otentikasi yang disempurnakan dengan rincian rincian rincian permintaan API

  • Alur otentikasi dasar dengan rincian rincian permintaan API

Menerapkan akses tamu (tidak diautentikasi)
  • Menyediakan Layanan AWS akses terbatas tanpa memerlukan login

Integrasi dengan penyedia identitas yang didukung
  • Sosial IdPs (Facebook, Amazon, Twitter, Apple, dan Google) untuk akses konsumen

  • Enterprise IdPs (melalui OpenID Connect atau SAMP) untuk pengguna korporat

  • Kumpulan pengguna Amazon Cognito

AWS manajemen kredensial
  • Menukar token penyedia identitas untuk kredensil sementara AWS

  • Menggunakan kredensi sementara untuk mengakses AWS layanan dengan aman

Setelah Anda mengatur aplikasi di server web pengembangan Anda dan mengaksesnya di browser, Anda melihat opsi berikut.

Tangkapan layar antarmuka web aplikasi demo kumpulan identitas Amazon Cognito yang menampilkan halaman utama dengan opsi metode otentikasi dan bagian demo interaktif.

Prasyarat

Sebelum memulai, Anda memerlukan sumber daya berikut yang dikonfigurasi.

  • AWS Akun dengan akses ke Amazon Cognito. Jika Anda tidak memiliki AWS akun, ikuti instruksi diMemulai dengan AWS.

  • Python 3.8 atau yang lebih baru diinstal pada mesin pengembangan Anda.

  • GitHub akses.

  • AWS kredensil yang dikonfigurasi dengan izin untuk membuat permintaan yang diautentikasi ke Amazon Cognito. APIs Kredensi ini diperlukan untuk otentikasi pengembang.

Untuk informasi selengkapnya tentang penerapan AWS kredensi dan federasi kumpulan identitas di SDK spesifik Anda, lihat. Mendapatkan kredensil

Pengaturan penyedia otentikasi

Untuk hasil terbaik dengan aplikasi ini, siapkan dan integrasikan satu atau beberapa penyedia identitas pihak ketiga (IdPs) atau kumpulan pengguna Amazon Cognito dengan kumpulan identitas Amazon Cognito Anda. Setelah Anda menyelesaikan prasyarat dan sebelum Anda menjalankan aplikasi demo ini, pilih penyedia identitas mana yang akan dikonfigurasi. Konsol Amazon Cognito memandu Anda melalui proses mengonfigurasi kumpulan identitas dan penyedia.

catatan

Untuk aplikasi demo ini, Anda tidak perlu menyiapkan semua penyedia identitas yang didukung. Anda dapat mulai dengan yang cocok dengan kasus penggunaan Anda. Setiap tautan memberikan instruksi konfigurasi terperinci.

Menyebarkan aplikasi demo

Kloning repositori

  1. Buka jendela terminal.

  2. Kloning aws-doc-sdk-examples repositori atau ambil folder ini di repo.

    git clone https://github.com/awsdocs/aws-doc-sdk-examples.git
  3. Arahkan ke direktori proyek .

    cd python/example_code/cognito/scenarios/identity_pools_example_demo/web

Buat kumpulan identitas

Untuk membuat kumpulan identitas Amazon Cognito untuk aplikasi Anda, ikuti petunjuk di. Ikhtisar konsol kolam identitas

Untuk mengkonfigurasi kumpulan identitas untuk aplikasi demo
  1. Buka Amazon Cognito konsol.

  2. Dari menu navigasi kiri, pilih Identity pool. Pilih kumpulan identitas yang ada, atau buat yang baru.

  3. Di bawah akses Pengguna, aktifkan akses Terautentikasi dan akses Tamu. Konfigurasikan peran IAM baru atau yang sudah ada dan tetapkan izin yang ingin Anda berikan kepada setiap jenis pengguna.

  4. Di bawah Akses pengguna, siapkan penyedia identitas apa pun yang ingin Anda konfigurasikan.

  5. Di bawah properti Identity pool, aktifkan otentikasi Dasar (klasik).

  6. Biarkan browser Anda tetap terbuka ke konsol untuk kumpulan identitas Anda. Anda akan menggunakan ID kumpulan identitas dan informasi konfigurasi lainnya dalam pengaturan aplikasi Anda.

Konfigurasikan dan jalankan aplikasi

Langkah-langkah berikut memandu Anda melalui pengaturan awal aplikasi demo Anda.

Untuk mengkonfigurasi aplikasi demo
  1. Buka baris perintah python/example_code/cognito/scenarios/identity_pools_example_demo/web di aws-doc-sdk-examples klon Anda.

  2. Buat .env file dengan menyalin contoh file lingkungan.

    cp .env.example .env
  3. Buka file .env di editor teks. Ganti nilai contoh dalam file dengan nilai konfigurasi Anda sendiri.

  4. Instal dependensi backend.

    pip install -r requirements.txt
  5. Mulai server backend:

    cd backend python oauth_server.py
  6. Buka jendela terminal baru, arahkan ke direktori proyek dan mulai server frontend:

    cd frontend python -m http.server 8001
  7. Buka browser Anda ke aplikasi di http://localhost:8001. Browser Anda akan menampilkan antarmuka aplikasi demo, siap untuk menguji otentikasi kumpulan identitas.

Jelajahi metode otentikasi di kumpulan identitas Anda

Bagian ini memandu Anda melalui alur otentikasi dasar dan disempurnakan menggunakan aplikasi demo kumpulan identitas Amazon Cognito. Dengan demo ini, Anda akan mempelajari cara kerja kumpulan identitas dengan berbagai penyedia identitas untuk memberikan AWS kredensyal sementara kepada pengguna aplikasi Anda.

Di bagian demo Interaktif dari aplikasi contoh, pertama-tama Anda akan memilih antara dua jenis akses yang didukung oleh kumpulan identitas.

Akses (tamu) yang tidak diautentikasi

Berikan AWS kredensi kepada pengguna yang belum diautentikasi.

Akses terautentikasi

Tukar token penyedia identitas untuk AWS kredensil dengan cakupan penuh izin yang tersedia. Pilih penyedia identitas dari salah satu yang Anda konfigurasikan dalam .env file Anda.

Langkah ini menunjukkan cara mendapatkan AWS kredensi sementara untuk pengguna (tamu) yang tidak diautentikasi melalui fitur akses tamu kumpulan identitas Anda. Dalam aplikasi demo, Anda akan menguji alur yang disempurnakan dan dasar untuk melihat bagaimana kumpulan identitas mengeluarkan kredensil tanpa memerlukan login pengguna. Akses tamu menggunakan urutan API yang sama dengan akses yang diautentikasi, tetapi tanpa memberikan token penyedia identitas (seperti OAuth token dari Google, Facebook, atau pernyataan SAMP dari penyedia perusahaan).

Lanjutkan membaca jika Anda mencari informasi tentang menyediakan AWS akses terbatas ke pengguna tanpa memerlukan otentikasi. Setelah menerapkan akses tamu, Anda akan mempelajari cara memberikan AWS kredensyal secara aman kepada pengguna anonim dan memahami perbedaan antara dua alur autentikasi.

penting

Akses yang tidak diautentikasi dapat mengeluarkan kredensyal kepada siapa pun yang memiliki akses internet, jadi paling baik digunakan untuk AWS sumber daya yang memerlukan keamanan minimal, seperti aset publik APIs dan grafis. Sebelum melanjutkan dengan langkah ini, periksa apakah Anda telah mengonfigurasi kumpulan identitas Anda dengan akses tamu diaktifkan dan pastikan kebijakan IAM yang tepat diberlakukan untuk membatasi izin.

Guest access with enhanced flow

Alur yang disempurnakan adalah pendekatan yang disederhanakan untuk mendapatkan AWS kredensil bagi pengguna yang tidak diautentikasi dengan dua permintaan API.

Untuk menguji akses tamu dengan alur yang disempurnakan
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses tamu.

  3. Pilih tab Enhanced flow.

  4. Pilih Uji akses tamu.

  5. Aplikasi ini memperoleh AWS kredensi sementara dari kumpulan identitas Anda tanpa permintaan otentikasi tambahan.

  6. Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya:

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-07T00:58:21-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • GetId()Permintaan API dengan AndaidentityPoolId. Tidak ada token otentikasi yang diperlukan untuk akses tamu

        { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Jika valid, ia menemukan atau membuat dan mengembalikan penggunaIdentityID. Contoh respons terlihat seperti ini:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }
      • GetCredentialsForIdentity()dengan yang dikembalikanidentityPoolId.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Cognito memvalidasi akses tamu, mengasumsikan peran yang tidak diautentikasi secara internal dengan, AWS STS dan mengembalikan kredensi AWS sementara. (Tidak ada otentikasi IAM pada panggilan ini; kepercayaan peran harus mengizinkancognito-identity-amazonzaws.com.)

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-07T00:58:21-07:00" } }
Guest access with basic flow

Alur dasar menyediakan kontrol terperinci atas proses otentikasi dengan permintaan API terpisah untuk pengambilan identitas dan pembuatan kredenal.

Untuk menguji akses tamu dengan alur dasar
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses tamu.

  3. Pilih tab Alur dasar.

  4. Pilih Uji akses tamu.

  5. Aplikasi ini memperoleh AWS kredensi sementara dari kumpulan identitas Anda tanpa permintaan otentikasi tambahan.

  6. Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya.

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • GetId()Permintaan API dengan ID kumpulan identitas Anda. Tidak ada token otentikasi yang diperlukan untuk akses tamu.

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

        Jika valid, ia menemukan atau membuat dan mengembalikan penggunaIdentityID. Contoh respons terlihat seperti ini:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken()dengan Logins peta yang dikembalikan IdentityID dan sama

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }

        Apa yang terjadi dalam langkah ini: Amazon Cognito mengeluarkan token identitas web OpenID Connect berumur pendek dari cognito-identity.amazonaws.com yang mewakili ini. IdentityId Token mencakup klaim OIDC yang AWS STS mengevaluasi, termasuk aud (ID kumpulan identitas Anda) dan amr (diautentikasi atau tidak diautentikasi). Kebijakan kepercayaan peran IAM Anda harus memerlukan klaim tersebut.

      • AssumeRoleWithWebIdentity()- Aplikasi Anda memanggil AWS STS langsung untuk menukar token OpenID Amazon Cognito dengan kredensi sementara AWS

        POST sts:AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolUnauth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Respons:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "FwoGZXIvYXdzEEXAMPLE......" } }

        Apa yang terjadi dalam langkah ini: Setelah divalidasi: mengembalikan kredensi sementara AWS

Gunakan kredensial sementara

Kredensyal sementara ini berfungsi sebagai kredensyal standar tetapi dengan izin terbatas yang ditentukan oleh peran IAM kumpulan identitas Anda yang tidak AWS diautentikasi. Anda dapat menggunakannya dengan AWS SDK atau AWS CLI. Untuk informasi selengkapnya tentang mengonfigurasi AWS SDKs dengan kredensyal, lihat Penyedia kredensyal terstandarisasi di Panduan Referensi Alat dan Alat. AWS SDKs

Contoh di bawah ini bukan daftar lengkap, tetapi menunjukkan cara umum fitur tamu kumpulan identitas dapat meningkatkan pengalaman pengguna.

Contoh berikut mengonfigurasi penyedia kredensi untuk akses Amazon S3 terbatas sebagai pengguna tamu.

Python
# Example: Using credentials with boto3 import boto3 # Configure client with temporary credentials s3_client = boto3.client( 's3', aws_access_key_id='AKIAIOSFODNN7EXAMPLE', aws_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', aws_session_token='IQoJb3JpZ2luX2VjEEXAMPLE......' ) # Make API requests within IAM role permissions response = s3_client.list_objects_v2(Bucket='my-public-bucket') # Access public content for obj in response.get('Contents', []): print(f"File: {obj['Key']}, Size: {obj['Size']} bytes")
JavaScript
// Example: Accessing public content import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"; const s3Client = new S3Client({ region: "us-east-1", credentials: { accessKeyId: 'AKIAIOSFODNN7EXAMPLE', secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', sessionToken: 'IQoJb3JpZ2luX2VjEEXAMPLE......' } }); // Access public images or documents const response = await s3Client.send(new GetObjectCommand({ Bucket: 'my-public-content', Key: 'product-catalog.pdf' }));

Contoh berikut menggunakan akses hanya-baca ke Amazon DynamoDB sebagai pengguna tamu.

Python
# Example: Limited app functionality for trial users import boto3 dynamodb = boto3.client( 'dynamodb', aws_access_key_id='AKIAIOSFODNN7EXAMPLE', aws_secret_access_key='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', aws_session_token='IQoJb3JpZ2luX2VjEEXAMPLE......' ) # Allow guest users to view sample data (limited to 5 items) response = dynamodb.scan(TableName='SampleProducts', Limit=5)
JavaScript
// Example: Limited app functionality for trial users import { DynamoDBClient, ScanCommand } from "@aws-sdk/client-dynamodb"; const dynamodbClient = new DynamoDBClient({ region: "us-east-1", credentials: { accessKeyId: 'AKIAIOSFODNN7EXAMPLE', secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', sessionToken: 'IQoJb3JpZ2luX2VjEEXAMPLE......' } }); // Allow guest users to view sample data (limited to 5 items) const response = await dynamodbClient.send(new ScanCommand({ TableName: 'SampleProducts', Limit: 5 }));

Langkah ini mengeksplorasi alur keseluruhan untuk menggunakan penyedia identitas sosial dengan kumpulan identitas Amazon Cognito. Otentikasi sosial memberikan pengalaman masuk yang akrab sambil menjaga keamanan melalui manajemen identitas federasi. Anda dapat masuk dari penyedia identitas sosial (iDP) seperti Google, Facebook, dan Amazon, lalu menukar token iDP itu dengan kredensyal sementara. AWS Integrasi Twitter dan Apple juga didukung oleh kumpulan identitas, tetapi tidak didukung dalam aplikasi contoh.

Identity pool itu sendiri bukan direktori pengguna. Itu tidak menyimpan kata sandi atau bidang profil. Sebaliknya, ia mempercayai eksternal IdPs untuk mengautentikasi pengguna dan berfokus pada otorisasi pengguna yang sudah diautentikasi untuk langsung memanggil AWS layanan, dengan menjual kredensyal untuk peran IAM.

Social identity provider with enhanced flow

Bagian ini menunjukkan bagaimana Anda dapat menggunakan penyedia identitas sosial untuk masuk ke pengguna dan, menggunakan alur yang disempurnakan, bertukar token penyedia di kumpulan identitas Amazon Cognito untuk kredensyal sementara guna meminta sumber daya. AWS

Gunakan login sosial dengan alur yang disempurnakan dalam aplikasi contoh
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses yang diautentikasi.

  3. Pilih tab Enhanced flow.

  4. Pilih penyedia sosial yang didukung yang telah Anda konfigurasikan, misalnya Masuk dengan Google, Masuk dengan Facebook, atau Login with Amazon.

  5. Masuk dan setujui untuk berbagi data pengguna dengan aplikasi.

  6. Penyedia mengalihkan kembali ke URI pengalihan aplikasi

  7. Aplikasi mengirimkan token penyedia ke kumpulan identitas Anda dan mengambil kredensi sementara AWS

  8. Aplikasi ini menampilkan panel Hasil di antarmuka web.

    Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya:

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • Aplikasi masuk ke pengguna dengan iDP sosial dan mendapatkan token penyedia. Kolam identitas menerima artefak ini dari penyedia sosial:

        Penyedia identitas Kunci penyedia Cognito Tujuan
        Google accounts.google.com OAuth 2.0 token dari Google Sign-In
        Facebook graph.facebook.com Akses token dari Facebook Login
        Amazon www.amazon.com OAuth token dari Login with Amazon

        Setelah otentikasi berhasil dengan penyedia sosial, aplikasi Anda menerima OAuth respons yang berisi token akses dan detail autentikasi lainnya:

        { "access_token": "ya29.A0AS3H6NEXAMPLE......", "expires_in": 3599, "scope": "openid https://www.examplesocial....", "token_type": "Bearer", "id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" }
      • GetId()Permintaan API dengan ID kumpulan identitas Anda dan Logins peta yang berisi token penyedia sosial Anda

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity()dengan Logins peta yang dikembalikan IdentityID dan sama

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "accounts.google.com": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" } }

        Respons:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-07T00:58:21-07:00" }, "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }

Apa yang terjadi: Amazon Cognito memvalidasi token terhadap penyedia yang dikonfigurasi, memilih peran IAM berdasarkan konfigurasi penyedia Anda, dan memanggil AWS STS atas nama Anda. Kumpulan identitas Anda kemudian mengembalikan kredensil sementara.

Social identity provider with basic flow

Bagian ini menunjukkan bagaimana Anda dapat menggunakan penyedia identitas sosial untuk masuk ke pengguna dan, menggunakan alur dasar, menukar token penyedia di kumpulan identitas Amazon Cognito untuk kredensyal sementara untuk memanggil layanan. AWS

Gunakan login sosial dengan alur dasar dalam aplikasi contoh
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses yang diautentikasi.

  3. Pilih tab Alur dasar.

  4. Pilih penyedia sosial yang didukung yang telah Anda konfigurasikan, misalnya Masuk dengan Google, Masuk dengan Facebook, atau Login with Amazon.

  5. Masuk dan setujui untuk berbagi data pengguna dengan aplikasi.

  6. Penyedia mengalihkan kembali ke URI pengalihan aplikasi

  7. Aplikasi mengirimkan token penyedia ke kumpulan identitas Anda dan mengambil kredensi sementara AWS

  8. Aplikasi ini menampilkan panel Hasil di antarmuka web.

    Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya:

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • Aplikasi masuk ke pengguna dengan iDP sosial dan mendapatkan token penyedia. Kolam identitas menerima artefak ini dari penyedia sosial:

        Penyedia identitas Kunci penyedia Cognito Tujuan
        Google accounts.google.com OAuth 2.0 token dari Google Sign-In
        Facebook graph.facebook.com Akses token dari Facebook Login
        Amazon www.amazon.com OAuth token dari Login with Amazon

        Setelah otentikasi berhasil dengan penyedia sosial, aplikasi Anda menerima OAuth respons yang berisi token akses dan detail autentikasi lainnya:

        { "access_token": "ya29.A0AS3H6NEXAMPLE......", "expires_in": 3599, "scope": "openid https://www.examplesocial....", "token_type": "Bearer", "id_token": "eyJhbGciOiJSUzI1NiIsEXAMPLE......" }
      • GetId()Permintaan API dengan ID kumpulan identitas Anda dan Logins peta yang berisi token penyedia sosial Anda

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "accounts.google.com": "token..." } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken()dengan peta Login yang dikembalikan IdentityID dan sama

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "accounts.google.com": "token..." } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }
      • AssumeRoleWithWebIdentity()dengan token OpenID

        POST AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Respons:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" } }

Apa yang terjadi: Amazon Cognito memvalidasi token terhadap penyedia yang dikonfigurasi dan mengeluarkan token OpenID. Aplikasi dipanggil AWS STS langsung untuk mengambil peran IAM dan menerima kredensi sementara.

Memahami akses sosial

  • Pengguna sosial menerima AWS kredensil sementara melalui kumpulan identitas Amazon Cognito setelah mengautentikasi dengan penyedia sosial mereka.

  • Setiap pengguna yang diautentikasi mendapatkan ID identitas unik yang tetap ada di seluruh sesi.

  • Kredensi ini ditautkan ke peran IAM yang dirancang khusus untuk akses yang diautentikasi, memberikan izin yang lebih luas daripada akses tamu.

  • Token penyedia sosial ditukar dengan AWS kredensil, mempertahankan identitas dan izin pengguna.

Langkah ini mengeksplorasi otentikasi Amazon Cognito dengan integrasi login terkelola kumpulan pengguna. Saat Anda menautkan kumpulan pengguna sebagai IDP ke kumpulan identitas, token kumpulan pengguna mengotorisasi kumpulan identitas Anda untuk mengeluarkan kredensi sementara.

User pool authentication with enhanced flow

Alur yang disempurnakan memberikan pendekatan yang efisien untuk memperoleh AWS kredensil melalui kumpulan identitas Amazon Cognito dengan satu permintaan API.

Gunakan autentikasi kumpulan pengguna Amazon Cognito dengan alur yang ditingkatkan kumpulan identitas
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses yang diautentikasi.

  3. Pilih tab Enhanced flow.

  4. Pilih Masuk dengan kumpulan pengguna Amazon Cognito

  5. Selesaikan proses masuk dengan nama pengguna dan kata sandi Anda di login terkelola.

  6. Kumpulan pengguna mengalihkan kembali ke URI pengalihan aplikasi Anda dengan kode otorisasi.

  7. Aplikasi menukar kode otorisasi dengan kumpulan pengguna Anda untuk token web JSON.

  8. Aplikasi menukar token ID dengan kumpulan identitas Anda untuk AWS kredensi sementara

  9. Aplikasi ini menampilkan panel Hasil di antarmuka web

    Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya:

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • Aplikasi masuk ke pengguna dengan Amazon Cognito. Setelah autentikasi berhasil dengan kumpulan pengguna, aplikasi Anda menerima respons OAuth 2.0 yang berisi token ID (JWT). Kumpulan identitas menerima token ID JWT dari kumpulan pengguna menggunakan format kunci penyedia ini:

        Penyedia identitas Kunci penyedia Cognito Tujuan
        Kolam pengguna Amazon Cognito cognito-idp.{region}.amazonaws.com/{user-pool-id} Token ID JWT dari kumpulan pengguna Amazon Cognito

        Setelah autentikasi berhasil dengan kumpulan pengguna, aplikasi Anda menerima respons OAuth 2.0 yang berisi token ID (JWT):

        { "id_token": "eyJraWQiOiJFWAMPLE......", "token_type": "Bearer", "expires_in": 3600 }
      • GetId()Permintaan API dengan Anda identityPoolId dan Logins peta yang menyertakan kunci penyedia kumpulan pengguna yang dipetakan ke. id_token Amazon Cognito memverifikasi tanda tangan, penerbit, kedaluwarsa, dan audience (aud) token kumpulan pengguna cocok dengan salah satu klien aplikasi yang IDs Anda daftarkan untuk IDP kumpulan pengguna ini di kumpulan identitas.

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:1ac4a76d-1fef-48aa-83af-4224799c0b5c", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Jika valid, ia menemukan atau membuat dan mengembalikan penggunaIdentityID. Contoh respons terlihat seperti ini:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity()dengan yang dikembalikan identityPoolId dan a = Logins peta yang sama dengan. id_token Amazon Cognito memvalidasi ulang tanda tangan, penerbit, kedaluwarsa, dan audience (aud) token kumpulan pengguna cocok dengan salah satu klien aplikasi yang IDs Anda daftarkan untuk IDP kumpulan pengguna ini di kumpulan identitas.

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Jika valid, ia memilih peran IAM (roles-in-token, aturan, atau default), panggilan AWS STS atas nama Anda, dan mengembalikan kredensi sementara AWS . Contoh respons terlihat seperti ini:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "ASIAW7TIP7EJEXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" } }
User pool authentication with basic flow

Alur dasar menyediakan kontrol terperinci atas proses otentikasi dengan permintaan API terpisah untuk pengambilan identitas dan pembuatan kredenal.

Menggunakan autentikasi kumpulan pengguna Amazon Cognito dengan alur dasar kumpulan identitas
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses yang diautentikasi.

  3. Pilih tab Basic flow.

  4. Pilih Masuk dengan kumpulan pengguna Amazon Cognito

  5. Selesaikan proses masuk dengan nama pengguna dan kata sandi Anda di login terkelola.

  6. Kumpulan pengguna mengalihkan kembali ke URI pengalihan aplikasi Anda dengan kode otorisasi.

  7. Aplikasi menukar kode otorisasi dengan kumpulan pengguna Anda untuk token web JSON.

  8. Aplikasi menukar token ID dengan kumpulan identitas Anda untuk AWS kredensi sementara

  9. Aplikasi ini menampilkan panel Hasil di antarmuka web

    Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya:

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • Aplikasi masuk ke pengguna dengan kumpulan pengguna Amazon Cognito dan memperoleh ID token (JWT) sebagai artefak. Setelah autentikasi berhasil dengan kumpulan pengguna, aplikasi Anda menerima OAuth respons yang berisi token ID (JWT). Identity pool menggunakan token ini untuk otentikasi:

        { "id_token": "eyJraWQiOiJFWAMPLE......", "token_type": "Bearer", "expires_in": 3600 }
      • GetId()Permintaan API dengan ID kumpulan identitas Anda dan Logins peta yang menyertakan kunci penyedia kumpulan pengguna dan token ID sebagai nilainya. Amazon Cognito memverifikasi tanda tangan, kedaluwarsa, dan audiens (aud) token kumpulan pengguna cocok dengan salah satu klien aplikasi yang IDs Anda daftarkan untuk IDP kumpulan pengguna ini di kumpulan identitas.

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:1ac4a76d-1fef-48aa-83af-4224799c0b5c", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Jika valid, ia menemukan atau membuat dan mengembalikan penggunaIdentityID. Contoh respons terlihat seperti ini:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken()dengan Logins peta yang dikembalikan IdentityID dan sama

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE123": "eyJraWQiOiJFWAMPLE......" } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }

        Apa yang terjadi dalam langkah ini: Amazon Cognito mengeluarkan token identitas web OpenID Connect berumur pendek dari cognito-identity.amazonaws.com yang mewakili ini. IdentityId Token mencakup klaim OIDC yang AWS STS mengevaluasi, termasuk aud (ID kumpulan identitas Anda) dan amr (diautentikasi atau tidak diautentikasi). Kebijakan kepercayaan peran IAM Anda harus memerlukan klaim tersebut.

      • AssumeRoleWithWebIdentity()- Aplikasi Anda memanggil AWS STS langsung untuk menukar token OpenID Amazon Cognito dengan kredensi sementara AWS

        POST sts:AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......", "RoleSessionName": "CognitoIdentityCredentials" }

        Respons:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "FwoGZXIvYXdzEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" }, "AssumedRoleUser": { "AssumedRoleId": "AROAW7TIP7EJYEXAMPLE:CognitoIdentityCredentials", "Arn": "arn:aws:sts::111122223333:assumed-role/Cognito_IdentityPoolAuth_Role/CognitoIdentityCredentials" } }

        Apa yang dilakukan aplikasi demo Anda: Aplikasi Anda mengirim token OpenID dari GetOpenIdToken() ke AWS STS, meminta kredensi sementara. AWS STS melakukan pemeriksaan validasi dan kredensi yang dikeluarkan:

  • Pengguna kumpulan pengguna menerima AWS kredensil sementara melalui kumpulan identitas Amazon Cognito.

  • Kredensi ini ditautkan ke peran IAM yang ditentukan dalam konfigurasi kumpulan identitas Anda.

  • Token ID kumpulan pengguna ditukar dengan AWS kredensil melalui kumpulan identitas.

Langkah ini mengeksplorasi otentikasi SAM. Pengguna dapat masuk dengan penyedia identitas perusahaan yang mendukung SAMB untuk mengakses AWS layanan. Alur dasar dengan SAMP tidak didukung dalam aplikasi contoh.

SAML authentication with enhanced flow

Bagian ini menunjukkan bagaimana Anda dapat menggunakan penyedia identitas SAMP untuk masuk ke pengguna dan, menggunakan alur yang disempurnakan, bertukar pernyataan SAMP di kumpulan identitas Amazon Cognito untuk kredensyal sementara untuk memanggil layanan. AWS AWS

Gunakan otentikasi SAMP dengan aliran yang ditingkatkan kumpulan identitas
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses yang diautentikasi.

  3. Pilih tab Enhanced flow.

  4. Pilih Masuk dengan penyedia SAM

  5. Selesaikan proses masuk dengan kredensi perusahaan Anda.

  6. Kumpulan pengguna mengalihkan kembali ke URI pengalihan aplikasi Anda dengan pernyataan SAMB.

  7. Aplikasi menukar kode otorisasi dengan kumpulan pengguna Anda untuk token web JSON.

  8. Aplikasi menukar respons SAFL dengan kumpulan identitas Anda untuk kredensi sementara AWS

  9. Aplikasi ini menampilkan panel Hasil di antarmuka web

    Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya:

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • Aplikasi menandatangani pengguna dengan IDP SAMP dan mendapatkan respons SAMP. Identity pool menerima pernyataan SAMB dari penyedia perusahaan yang menggunakan penyedia SAMB ARN sebagai kuncinya:

        Penyedia identitas Kunci penyedia Cognito Tujuan
        Penyedia SALL arn:aws:iam::111122223333:saml-provider/EXAMPLE Pernyataan SAFL dari perusahaan IdPs

        Setelah autentikasi berhasil dengan penyedia SAMP, aplikasi Anda menerima respons SAMP melalui HTTP POST ke URL callback Anda:

        { "saml_response": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE...", "provider_arn": "arn:aws:iam::111122223333:saml-provider/EXAMPLE", "status": "Authentication successful" }
      • GetId()Permintaan API dengan ID kumpulan identitas Anda dan Logins peta yang berisi ARN dan pernyataan penyedia SAMP Anda

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..." } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity()dengan Logins peta yang dikembalikan IdentityID dan sama

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "arn:aws:iam::111122223333:saml-provider/EXAMPLE": "PD94bWwgdmVyc2lvbj0iMS4wIiBFWAMPLE..." } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......" } }

Apa yang terjadi: Amazon Cognito memvalidasi pernyataan SAMP terhadap penyedia yang dikonfigurasi, memilih peran IAM berdasarkan atribut atau aturan SAMP, dan memanggil atas nama Anda. AWS STS

Memahami akses SAFL

  • Pengguna perusahaan menerima AWS kredensil sementara dari kumpulan identitas Amazon Cognito setelah mengautentikasi dengan penyedia SAMP mereka.

  • Setiap pengguna yang diautentikasi mendapatkan ID identitas unik yang tetap ada di seluruh sesi.

  • Kredensi ini ditautkan ke peran IAM yang dirancang khusus untuk akses yang diautentikasi, memberikan izin yang lebih luas daripada akses tamu.

  • Pernyataan SAFL dipertukarkan dengan AWS kredensil, mempertahankan identitas pengguna dan atribut perusahaan.

Langkah ini mengeksplorasi otentikasi OIDC dengan penyedia identitas perusahaan. Pengguna dapat masuk melalui penyedia identitas perusahaan organisasi mereka (seperti Azure AD, Okta, atau Google Workspace) untuk mengakses layanan. AWS Lanjutkan membaca jika Anda mencari informasi tentang mengintegrasikan otentikasi berbasis standar dengan sumber daya Anda. AWS Setelah menerapkan otentikasi OIDC, Anda akan mempelajari cara memanfaatkan klaim OIDC untuk kontrol akses berbutir halus.

OIDC authentication with enhanced flow

Bagian ini menunjukkan bagaimana Anda dapat menggunakan penyedia identitas OIDC untuk masuk ke pengguna dan, menggunakan alur yang disempurnakan, menukar token OIDC di kumpulan identitas Amazon Cognito untuk kredensyal sementara untuk memanggil layanan. AWS AWS

Gunakan login OIDC dengan aliran yang ditingkatkan kumpulan identitas
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses yang diautentikasi.

  3. Pilih tab Enhanced flow.

  4. Pilih Masuk dengan penyedia OIDC

  5. Selesaikan proses masuk dengan kredensi perusahaan Anda.

  6. Penyedia OIDC mengalihkan kembali ke aplikasi dengan kode otorisasi

  7. Aplikasi menukar kode otorisasi dengan kumpulan pengguna Anda untuk token web JSON.

  8. Aplikasi mengirimkan token OIDC ke kumpulan identitas Anda dan mengambil kredensi sementara. AWS

  9. Aplikasi ini menampilkan panel Hasil di antarmuka web

    Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya:

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • Aplikasi menandatangani pengguna dengan IDP OIDC dan memperoleh token ID. Identity pool menerima token OIDC dari penyedia perusahaan:

        Penyedia identitas Kunci penyedia Cognito Tujuan
        Penyedia OIDC example-provider.com/oauth2/default Token ID OIDC dari perusahaan IdPs

        Setelah otentikasi berhasil dengan penyedia OIDC, aplikasi Anda menerima respons OAuth 2.0 yang berisi token:

        { "token_type": "Bearer", "expires_in": 3600, "access_token": "eyJraWQiOiJFWAMPLE......", "scope": "email openid profile", "id_token": "eyJraWQiOiJFWAMPLE......" }
      • GetId()Permintaan API dengan ID kumpulan identitas Anda dan Logins peta yang berisi token penyedia OIDC Anda

        POST GetId { "AccountId": "111122223333", "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetCredentialsForIdentity()dengan peta Login yang dikembalikan IdentityID dan sama

        POST GetCredentialsForIdentity { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......" } }

Apa yang terjadi: Amazon Cognito memvalidasi token OIDC terhadap penyedia yang dikonfigurasi, memilih peran IAM (default, berbasis klaim, atau dipetakan aturan) dan memanggil atas nama Anda. AWS STS

OIDC authentication with basic flow

Bagian ini menunjukkan bagaimana Anda dapat menggunakan penyedia identitas OIDC untuk masuk ke pengguna dan, menggunakan alur dasar, menukar token OIDC di kumpulan identitas Amazon Cognito untuk kredensyal sementara untuk memanggil layanan. AWS AWS

Menggunakan login OIDC dengan alur dasar kumpulan identitas
  1. Dalam aplikasi demo, navigasikan ke bagian demo Interaktif

  2. Pilih tab Akses yang diautentikasi.

  3. Pilih tab Basic flow.

  4. Pilih Masuk dengan penyedia OIDC

  5. Selesaikan proses masuk dengan kredensi perusahaan Anda.

  6. Penyedia OIDC mengalihkan kembali ke aplikasi dengan kode otorisasi

  7. Aplikasi menukar kode otorisasi dengan kumpulan pengguna Anda untuk token web JSON.

  8. Aplikasi mengirimkan token OIDC ke kumpulan identitas Anda dan mengambil kredensi sementara. AWS

  9. Aplikasi ini menampilkan panel Hasil di antarmuka web

    Setelah otentikasi berhasil, Anda akan melihat antarmuka web menampilkan panel Hasil, dan Anda memiliki dua opsi untuk menjelajahinya:

    1. Tombol View credentials only: Pilih tombol ini jika Anda ingin langsung melihat AWS kredensyal sementara yang dihasilkan tanpa detail alur API.

      { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "IQoJb3JpZ2luX2VjEEXAMPLE......", "Expiration": "2025-08-12T13:36:17-07:00" } }
    2. Lihat tombol aliran API terperinci: Pilih tombol ini jika Anda ingin melihat permintaan step-by-step API.

      • Aplikasi menandatangani pengguna dengan IDP OIDC dan memperoleh token ID. Identity pool menerima token OIDC dari penyedia perusahaan:

        Penyedia identitas Kunci penyedia Cognito Tujuan
        Penyedia OIDC example-provider.com/oauth2/default Token ID OIDC dari perusahaan IdPs

        Setelah otentikasi berhasil dengan penyedia OIDC, aplikasi Anda menerima respons OAuth 2.0 yang berisi token:

        { "token_type": "Bearer", "expires_in": 3600, "access_token": "eyJraWQiOiJFWAMPLE......", "scope": "openid email profile", "id_token": "eyJraWQiOiJFWAMPLE......" }
      • GetId()Permintaan API dengan ID kumpulan identitas Anda dan Logins peta yang berisi token penyedia OIDC Anda

        POST GetId { "IdentityPoolId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222" }
      • GetOpenIdToken()dengan IdentityId yang dikembalikan dan peta yang sama Logins

        POST GetOpenIdToken { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Logins": { "example-provider.com/oauth2/default": "eyJraWQiOiJFWAMPLE......" } }

        Respons:

        { "IdentityId": "us-east-1:a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "Token": "eyJraWQiOiJFWAMPLE......" }
      • AssumeRoleWithWebIdentity()dengan token OpenID

        POST AssumeRoleWithWebIdentity { "RoleArn": "arn:aws:iam::111122223333:role/Cognito_IdentityPoolAuth_Role", "WebIdentityToken": "eyJraWQiOiJFWAMPLE......" }

        Respons:

        { "Credentials": { "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "FwoGZXIvYXdzEEXAMPLE......", "Expiration": "2025-08-12T14:36:17-07:00" } }

Apa yang terjadi: Amazon Cognito memvalidasi token OIDC terhadap penyedia yang dikonfigurasi dan mengembalikan token OpenID. Aplikasi dipanggil AWS STS langsung untuk mengambil peran IAM yang sesuai dan menerima kredensil berumur pendek.

Memahami otentikasi OIDC

  • Berbasis standar: OIDC dibangun di atas OAuth 2.0 dan menyediakan informasi identitas standar.

  • Validasi Token: Token ID dapat divalidasi untuk keasliannya.

  • Akses berbasis klaim: Klaim OIDC dapat digunakan untuk pemetaan peran dan kontrol akses.

  • Integrasi perusahaan: Bekerja dengan penyedia identitas perusahaan populer.

Langkah berikutnya

Sekarang setelah Anda menyiapkan dan menjelajahi aplikasi demo, Anda dapat:

  • Konfigurasikan penyedia identitas tambahan yang belum Anda uji

  • Bereksperimenlah dengan otentikasi yang ditingkatkan dan dasar untuk memahami perbedaannya

  • Sesuaikan demo untuk kasus penggunaan Anda sendiri

  • Integrasikan Amazon Cognito Identity Pools ke dalam aplikasi Anda sendiri.