

# OIDC フェデレーション
<a name="id_roles_providers_oidc"></a>

ワークフローを使用して Amazon S3 や DynamoDB にアクセスする GitHub Actions などの AWS リソースにアクセスするアプリケーションを作成するとします。

このようなワークフローを作成する場合、AWS アクセスキーで署名される必要のある AWS サービスに対してリクエストを実行します。ただし、AWS 外部のアプリケーションには AWS 認証情報を長期間保存**しない**ことを**強く**お勧めします。代わりに、「OIDC フェデレーション」を使用して、必要に応じて一時的な AWS セキュリティ認証情報を動的に要求するようにアプリケーションを設定します。提供される一時的な認証情報は、アプリケーションで必要とされるタスクの実行に必要なアクセス許可のみを持つ AWS ロールにマッピングされます。

OIDC フェデレーションを使用すると、カスタムサインインコードを作成したり独自のユーザー ID を管理したりする必要はありません。代わりに、GitHub Actions などのアプリケーションやその他の [OpenID Connect (OIDC)](http://openid.net/connect/) 互換 IdP で OIDC を使用して AWS での認証を行うことができます。JSON Web トークン (JWT) として知られる認証トークンが受け取られたら、AWS アカウント の特定のリソースを使用するアクセス許可を持つ IAM ロールにマップされる AWS の一時的なセキュリティ認証情報に変換されます。IdP を使用すると、アプリケーションで長期的なセキュリティ認証情報を埋め込んで配布する必要がないため、AWS アカウント の安全性の維持に役立ちます。

OIDC フェデレーションは、マシン間認証認証 (CI/CD パイプライン、自動スクリプト、サーバーレスアプリケーションなど) とヒューマンユーザー認証の両方をサポートします。ユーザーサインアップ、サインイン、ユーザープロファイルを管理する必要があるヒューマンユーザー認証シナリオでは、[Amazon Cognito](https://aws.amazon.com/cognito/) を ID ブローカーとして使用することを検討してください。OIDC での Amazon Cognito の使用の詳細については、「[モバイルアプリのための Amazon Cognito](id_federation_common_scenarios.md#id_roles_providers_oidc_cognito)」を参照してください。

**注記**  
OpenID Connect (OIDC) ID プロバイダーによって発行された JSON ウェブトークン (JWT) では、トークンの有効期限を指定する有効期限が `exp` クレームに含まれています。IAM は、[OpenID Connect (OIDC) Core 1.0 標準](https://openid.net/specs/openid-connect-core-1_0.html)で許可されているように、クロックスキューを考慮し、JWT で指定された有効期限を 5 分間延長します。つまり、有効期限後 5 分以内に IAM が受信した OIDC JWT は受け入れられ、評価と処理が行われます。

**Topics**
+ [OIDC フェデレーションに関するその他のリソース](#id_roles_providers_oidc_resources)
+ [IAM で OpenID Connect (OIDC) ID プロバイダーを作成する](id_roles_providers_create_oidc.md)
+ [OpenID Connect ID プロバイダーのサムプリントを取得する](id_roles_providers_create_oidc_verify-thumbprint.md)
+ [共有 OIDC プロバイダーの ID プロバイダーコントロール](id_roles_providers_oidc_secure-by-default.md)

## OIDC フェデレーションに関するその他のリソース
<a name="id_roles_providers_oidc_resources"></a>

OIDC フェデレーションの詳細を理解するのに、次のリソースが役に立ちます。
+ [Amazon Web Services で OpenID Connect を設定](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services)することによって GitHub ワークフロー内で OpenID Connect を使用します。
+ 「Android ガイド」の「Amplify ライブラリ」にある [Amazon Cognito アイデンティティ](https://docs.amplify.aws/lib/auth/advanced/q/platform/android/) および「Swift ガイド」の「Amplify ライブラリ」にある [Amazon Cognito アイデンティティ](https://docs.amplify.aws/lib/auth/advanced/q/platform/ios/)
+ クロスアカウントアクセスと外部 ID フェデレーションを安全に設定するためのガイダンスについては、AWS セキュリティブログの「[How to use external ID when granting access to your AWS resources](https://aws.amazon.com/blogs/security/how-to-use-external-id-when-granting-access-to-your-aws-resources/)」を参照してください。