Menggunakan federasi identitas web - Amazon DynamoDB

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

Menggunakan federasi identitas web

Jika Anda menulis aplikasi yang ditargetkan untuk sejumlah besar pengguna, Anda dapat menggunakan federasi identitas web untuk autentikasi dan otorisasi. Federasi identitas web menghilangkan kebutuhan untuk membuat pengguna individual. Sebagai gantinya, pengguna dapat masuk ke penyedia identitas dan kemudian mendapatkan kredensi keamanan sementara dari AWS Security Token Service ()AWS STS. Aplikasi kemudian dapat menggunakan kredensi ini untuk mengakses AWS layanan.

Federasi identitas web mendukung penyedia identitas berikut:

  • Login with Amazon

  • Facebook

  • Google

Sumber daya tambahan untuk federasi identitas web

Sumber daya berikut ini dapat membantu Anda mempelajari lebih jauh lagi tentang federasi identitas web:

  • Postingan Web Identity Federation using the AWS SDK for .NET pada blog AWS Developer memberi panduan tentang cara menggunakan federasi identitas web dengan Facebook. Ini termasuk cuplikan kode di C # yang menunjukkan bagaimana untuk mengambil IAM peran dengan identitas web dan bagaimana menggunakan kredenal keamanan sementara untuk mengakses sumber daya. AWS

  • AWS Mobile SDK for iOS dan AWS Mobile SDK for Android berisi aplikasi sampel. Aplikasi ini mencakup kode yang menunjukkan cara menginvokasi penyedia identitas, kemudian cara menggunakan informasi dari penyedia tersebut untuk mendapatkan dan menggunakan kredensial keamanan sementara.

  • Artikel Federasi Identitas Web dengan Aplikasi Seluler membahas federasi identitas web dan menunjukkan contoh bagaimana menggunakan federasi identitas web untuk mengakses AWS sumber daya.

Contoh kebijakan untuk federasi identitas web

Untuk menunjukkan bagaimana Anda dapat menggunakan federasi identitas web dengan DynamoDB, kunjungi kembali tabel GameScoresyang diperkenalkan di. Menggunakan kondisi IAM kebijakan untuk kontrol akses berbutir halus Berikut adalah kunci utama untuk GameScores.

Nama Tabel Jenis Kunci Primer Nama dan Jenis Kunci Partisi Nama dan Jenis Kunci Urutan
GameScores (UserId, GameTitle, ...) Komposit Nama Atribut: UserId

Tipe: String
Nama Atribut: GameTitle

Tipe: String

Sekarang anggaplah bahwa aplikasi game seluler menggunakan tabel ini, dan aplikasi perlu mendukung ribuan, atau bahkan jutaan, pengguna. Pada skala ini, menjadi sangat sulit untuk mengelola pengguna aplikasi individu, dan untuk menjamin bahwa setiap pengguna hanya dapat mengakses data mereka sendiri dalam GameScorestabel. Untungnya, banyak pengguna sudah memiliki akun dengan penyedia identitas pihak ketiga, seperti Facebook, Google, atau Login with Amazon. Jadi masuk akal untuk menggunakan salah satu penyedia ini untuk tugas autentikasi.

Untuk melakukannya menggunakan federasi identitas web, developer aplikasi harus mendaftarkan aplikasi dengan penyedia identitas (seperti Login with Amazon) dan memperoleh ID aplikasi unik. Selanjutnya, pengembang perlu membuat IAM peran. (Untuk contoh ini, peran ini diberi nama GameRole.) Peran harus memiliki dokumen IAM kebijakan yang dilampirkan padanya, yang menentukan kondisi di mana aplikasi dapat mengakses GameScorestabel.

Ketika ingin bermain game, pengguna masuk ke akun Login with Amazon mereka dari dalam aplikasi game. Aplikasi kemudian memanggil AWS Security Token Service (AWS STS), memberikan Login with Amazon app ID dan meminta keanggotaan GameRole. AWS STS mengembalikan AWS kredensi sementara ke aplikasi dan memungkinkannya mengakses GameScorestabel, tunduk pada dokumen GameRolekebijakan.

Diagram berikut menunjukkan bagaimana potongan-potongan ini cocok satu sama lain.

Alur kerja aplikasi game. Aplikasi ini menggunakan ID Amazon dan AWS STS untuk mendapatkan kredensi sementara untuk mengakses tabel DynamoDB.

Gambaran umum federasi identitas web

  1. Aplikasi memanggil penyedia identitas pihak ketiga untuk mengautentikasi pengguna dan aplikasi. Penyedia identitas mengembalikan token identitas web ke aplikasi.

  2. Aplikasi memanggil AWS STS dan meneruskan token identitas web sebagai input. AWS STS mengotorisasi aplikasi dan memberinya kredensi AWS akses sementara. Aplikasi diizinkan untuk mengambil IAM peran (GameRole) dan mengakses AWS sumber daya sesuai dengan kebijakan keamanan peran.

  3. Aplikasi memanggil DynamoDB untuk mengakses tabel. GameScores Karena telah diasumsikan GameRole, aplikasi tunduk pada kebijakan keamanan yang terkait dengan peran itu. Dokumen kebijakan mencegah aplikasi mengakses data yang bukan milik pengguna.

Sekali lagi, berikut adalah kebijakan keamanan untuk GameRoleitu ditunjukkan diMenggunakan kondisi IAM kebijakan untuk kontrol akses berbutir halus:

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowAccessToOnlyItemsMatchingUserID", "Effect":"Allow", "Action":[ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores" ], "Condition":{ "ForAllValues:StringEquals":{ "dynamodb:LeadingKeys":[ "${www.amazon.com:user_id}" ], "dynamodb:Attributes":[ "UserId", "GameTitle", "Wins", "Losses", "TopScore", "TopScoreDateTime" ] }, "StringEqualsIfExists":{ "dynamodb:Select":"SPECIFIC_ATTRIBUTES" } } } ] }

ConditionKlausa menentukan item mana GameScoresyang terlihat oleh aplikasi. Hal ini dilakukan dengan membandingkan ID Login with Amazon untuk nilai kunci partisi UserId dalam GameScores. Hanya item milik pengguna saat ini yang dapat diproses menggunakan salah satu tindakan DynamoDB yang tercantum dalam kebijakan ini. Item lain dalam tabel tidak dapat diakses. Selain itu, hanya atribut tertentu yang tercantum dalam kebijakan yang dapat diakses.