Hikaru's notes

A collection of notes and resources

View the Project on GitHub HikaruMizoe/notes

前提知識

OpenID Connect(OIDC)

OpenID Connect(OIDC)は、OAuth 2.0プロトコルの上に構築された認証レイヤーです。OIDCでは、認証プロバイダー(Identity Provider、IdP)がユーザーまたはアプリケーションの認証を行い、その結果としてJWT(JSON Web Token)形式のIDトークンを発行します。このトークンには、認証されたエンティティに関する情報(claims)が含まれており、他のサービスがこのトークンを検証することで認証状態を確認できます。

OIDCにおける重要な概念:

AWS IAM認証プロバイダー

AWS IAM認証プロバイダーは、外部の認証システム(OIDC、SAML等)をAWSが信頼できるエンティティとして登録するための仕組みです。OIDC認証プロバイダーを作成する際には、以下の情報が必要です:

IAM認証プロバイダーを作成することで、AWSはそのプロバイダーから発行されたトークンの署名を検証し、信頼できるトークンかどうかを判断できるようになります。

AssumeRoleWithWebIdentity API

AssumeRoleWithWebIdentity APIは、OIDC、OAuth、またはSAMLトークンを使用してAWSの一時的な認証情報を取得するためのSTS(Security Token Service)APIです。このAPIの動作フロー:

  1. WebアプリケーションがOIDC認証プロバイダーからIDトークンを取得

  2. AssumeRoleWithWebIdentity APIにIDトークンとロールARNを送信

  3. AWS STSがトークンを検証し、有効であれば一時的な認証情報を返却

  4. 一時的な認証情報(アクセスキー、シークレットキー、セッショントークン)を使用してAWS APIを呼び出し

この方法の利点: