API GatewayでCognito認証を設定する方法
- POSTS
1. はじめに Amazon API Gateway + AWS Lambda を統合して、API の構築を行った際、Amazon Cognito を活用することによってAPI 認証の設定を行いました。
本記事では、Amazon API Gateway、AWS Lambda、Amazon Cognito で認証機能機能付きのAPI の設定方法について説明していきます。
2. 用語説明 本構築で使用する3つのAWSサービスについて、今回の構成における役割を中心に解説します。
2.1. Amazon Cognito ユーザーのサインアップやサインイン、認証管理を行うマネージドサービスです。 今回は、ユーザーがログインした際に発行される「IDトークン(JWT)」の検証をAPI Gatewayと連携して行います。
2.2. Amazon API Gateway あらゆる規模のAPIの作成や管理を簡単に行えるマネージドサービスです。 今回は、 Lambda の手前に配置し、Cognito Authorizer を利用して、有効なトークンを持っているリクエストを検証する。
2.3. AWS Lambda サーバーのプロビジョニングや管理をすることなくコードを実行できる環境を提供します。
3. 全体構成 4. 環境準備 本手順を進めるにあたり、ローカル環境に以下の準備・確認を行ってください。
1)Node.js
2)AWS CLI
3)AWS CDK CLI の準備
4)CDKプロジェクトの初期化
5)AWSアカウント
5. 設定 5.1. ディレクトリ構成 以下はMCDK 関連のディレクトリ構成です。その他設定ファイル等は、省略しております。
cdk ├── bin │ └── cognito_apigateway.ts └── lib │ ├── cognito_apigateway-stack.ts │ └── constructs │ ├── api │ │ └── api.ts │ └── cognito │ └── cognito.ts lambda └──index.py 5.2. Amazon Cognito ここでは、Amazon Cognito のユーザープールとアプリケーションクライアントの作成を行います。