メニュー
AWS Identity and Access Management
ユーザーガイド

ウェブ ID フェデレーションについて

モバイルデバイスで実行され、Amazon S3 および DynamoDB を使用してプレイヤーとスコアの情報を保存するゲームのような、AWS リソースにアクセスするモバイルアプリを作成しているとします。

このようなアプリを記述する場合、AWS アクセスキーで署名する必要がある AWS サービスに対してリクエストを実行します。ただし、ユーザーがデバイスにダウンロードするアプリでは、暗号化されたストアであっても、長期的な AWS 認証情報を埋め込んだり配布したりしないことを強くお勧めします。代わりに、ウェブ ID フェデレーションを使用して、一時的な AWS セキュリティ認証情報を必要に応じて動的にリクエストするようにアプリを構築します。提供される一時的な認証情報は、モバイルアプリケーションで必要とされるタスクの実行に必要なアクセス権限のみを持つ AWS ロールにマッピングされます。

ウェブ ID フェデレーションを使用すると、カスタムサインインコードを作成したり独自のユーザー ID を管理したりする必要はありません。代わりに、アプリのユーザーはよく知られている ID プロバイダー(IdP)(Login with Amazon、Facebook、Google、またはその他の任意の OpenID Connect(OIDC)互換 IdP)を使用してサインインし、認証トークンを受け取って、そのトークンを AWS アカウントのリソースを使用するためのアクセス権限を持つ IAM ロールにマッピングし、AWS の一時的なセキュリティ認証情報に変換することができます。IdP を使用すると、アプリケーションで長期的なセキュリティ認証情報を埋め込んで配布する必要がないため、AWS アカウントの安全性の維持に役立ちます。

ほとんどのシナリオでは、Amazon Cognito を使用することをお勧めします。Amazon Cognito は ID ブローカーとして機能し、ユーザーの代わりに多くのフェデレーション作業を行うからです。詳細については、以下のセクション「モバイルアプリへの Amazon Cognito の使用」を参照してください。

Amazon Cognito を使用しない場合は、コードを記述して、ウェブ IdP(Login with Amazon、Facebook、Google、または他の任意の OIDC 互換 IdP)とやり取りし、AssumeRoleWithWebIdentity API を呼び出して、これらの IdP から取得した認証トークンを一時的な AWS セキュリティ認証情報と交換する必要があります。既存のアプリで既にこのアプローチを使用している場合は、それを使い続けることができます。