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 (例: Facebook) とやり取りし、AssumeRoleWithWebIdentity API を呼び出して、これらの IdP から取得した認証トークンを一時的な AWS セキュリティ認証情報と交換する必要があります。既存のアプリで既にこのアプローチを使用している場合は、それを使い続けることができます。