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

外部で認証されたユーザー (ID フェデレーション) へのアクセスの許可

社内のディレクトリなど、AWS 以外の ID をユーザーがすでに持っているとします。それらのユーザーが AWS リソースを使用する (または、それらのリソースにアクセスするアプリケーションを使用する) 必要がある場合、それらのユーザーには AWS セキュリティ認証情報も必要です。IAM ロールを使用して、ID が組織または第三者のプロバイダー (IdP) からフェデレーションされたユーザーのアクセス権限を指定できます。

Amazon Cognito を使用したモバイルまたはウェブベースのアプリのユーザーのフェデレーション

AWS リソースにアクセスするモバイルまたはウェブベースのアプリを作成する場合、アプリが AWS にプログラムによるリクエストを送るには認証情報が必要になります。ほとんどのモバイルアプリケーションのシナリオでは、Amazon Cognito の使用をお勧めします。このサービスを iOS 向け AWS モバイル SDKAndroid および Fire OS 向け AWS モバイル SDK と一緒に使用してユーザーの一意の ID を作成し、認証することで、AWS リソースへのセキュアなアクセスを実現できます。Amazon Cognito では、次のセクションに示されているのと同じ ID プロバイダーがサポートされます。さらに、開発者が認証した ID と認証されていない (ゲスト) アクセスもサポートされます。加えて、Amazon Cognito には、ユーザーがデバイスを変えてもユーザーデータが保持されるように、ユーザーデータを同期するための API も用意されています。詳細については、「モバイルアプリへの Amazon Cognito の使用」を参照してください。

パブリック ID サービスプロバイダーまたは OpenID Connect を使用したユーザーのフェデレーション

モバイルおよびウェブベースのアプリケーションのシナリオでは、可能な限り Amazon Cognito を使用してください。Amazon Cognito は、パブリック ID プロバイダーサービスを使用する際の裏方作業をほとんど行います。同じサードパーティのサービスで機能し、また匿名サインインもサポートしています。ただし、より高度なシナリオでは、OpenID Connect (OIDC) と互換性がある Amazon、Facebook、Google、その他 IdP でのログインなど、サードパーティのサービスを直接使用できます。これらのサービスを使用したウェブ ID フェデレーションの使用についての詳細は、「ウェブ ID フェデレーションについて」を参照してください。

SAML 2.0 を使用したユーザーのフェデレーション

組織が既に SAML 2.0 (Security Assertion Markup Language 2.0) をサポートする ID プロバイダーソフトウェアパッケージを使用している場合、ID プロバイダー (IdP) としての組織と、サービスプロバイダーとしての AWS との間に信頼を作成できます。その後、SAML を使用して、AWS マネジメントコンソール へのフェデレーティッドシングルサインオン (SSO) または AWS API を呼び出すためのフェデレーションアクセスをユーザーに提供できます。たとえば、企業が Microsoft Active Directory および Active Directory Federation Services を使用している場合、SAML 2.0 を使用してフェデレーションできます。SAML 2.0 を使用したユーザーのフェデレーションについての詳細は、「SAML 2.0 ベースのフェデレーションについて」を参照してください。

カスタム ID ブローカーアプリケーションを作成するユーザーのフェデレーション

ID ストアに SAML 2.0 との互換性がない場合、カスタム ID ブローカーアプリケーションを作成して同じような機能を実行できます。ブローカーアプリケーションはユーザーを認証し、そのユーザー用に一時的な認証情報を AWS に要求して、それをユーザーに提供し AWS リソースにアクセスできるようにします。

たとえば、Example Corp. には、会社の AWS リソースにアクセスする社内アプリケーションを実行する必要のある従業員が多数います。従業員は、会社の ID および認証システムに既に ID があり、従業員ごとに別の IAM ユーザーを作成することは望ましくありません。

Bob は、Example Corp. の開発者です。Example Corp. の社内アプリケーションで会社の AWS リソースにアクセスできるようにするために、カスタム ID ブローカーアプリケーションを開発します。このアプリケーションは、従業員が Example Corp. の既存の ID および認証システムにサインインしていることを確認します。これには、LDAP や Active Directory などのシステムを使用している可能性があります。ID ブローカーアプリケーションは、従業員の一時的なセキュリティ認証情報を取得します。このシナリオは、前のシナリオ (カスタム認証システムを使用するモバイルアプリ) に似ています。ただし、AWS リソースにアクセスする必要のあるアプリケーションはすべて企業ネットワーク内で実行され、会社には既存の認証システムがあります。

一時的なセキュリティ認証情報を取得するために、ID ブローカーアプリケーションは、ユーザーのポリシーの管理方法と一時的な認証情報の有効期限に応じて、AssumeRole または GetFederationToken を呼び出して、一時的なセキュリティ認証情報を取得します (これらの API の相違点について詳しくは、「一時的セキュリティ認証情報」および「一時的なセキュリティ認証情報のアクセス権限を制御する」を参照してください)。この呼び出しは、AWS アクセスキー ID、シークレットアクセスキー、およびセッショントークンで構成される一時的なセキュリティ認証情報を返します。ID ブローカーアプリケーションは、これらの一時的なセキュリティ認証情報を社内アプリケーションで使用できるようにします。アプリは、一時的な認証情報を使用して AWS を直接呼び出すことができます。アプリは、認証情報をキャッシュし、有効期限が切れると、新しい一時的な認証情報をリクエストします。このシナリオを以下に図で示します。

カスタム ID ブローカーアプリケーションを使用したワークフローの例

このシナリオには次の属性があります。

  • ID ブローカーアプリケーションには、一時的なセキュリティ認証情報を作成するために IAM のトークンサービス (STS) API にアクセスする権限があります。

  • ID ブローカーアプリケーションが、従業員が既存の認証システム内で認証されていることを確認できます。

  • ユーザーは、AWS マネジメントコンソールへのアクセスを与える一時的な URL を入手できます (これはシングルサインオンと呼ばれています)。

このシナリオで説明した ID ブローカーアプリケーションに似たサンプルアプリケーションを確認するには、AWS サンプルコードとライブラリActive Directory ユースケースのための ID フェデレーションのサンプルアプリケーションを参照してください。一時的なセキュリティ認証情報の作成方法の詳細については、「一時的なセキュリティ認証情報のリクエスト」を参照してください。AWS マネジメントコンソールへのアクセスを取得するフェデレーティッドユーザーの詳細については、「SAML 2.0 フェデレーティッドユーザーが AWS マネジメントコンソールにアクセス可能にする」を参照してください。