- Google Developer Consoleにアクセスします。
- 新しいプロジェクトを作成するか、既存のプロジェクトを選択します。
- 「認証情報」に移動し、「認証情報を作成」をクリックして、「OAuth クライアントID」を選択します。
- プロンプトが表示された場合、同意画面を設定します。
- アプリケーションの種類で、「ウェブアプリケーション」を選択します。
- リダイレクトURIは現時点では空白のままにし、後で設定するために一時的に保存します。ステップ5を参照
- 作成後、クライアントIDとクライアントシークレットをメモしておきます。
詳細については、Googleの公式ドキュメントをご覧ください。
-
AWS マネジメントコンソールにアクセスします。
-
Secrets Manager に移動し、「新しいシークレットを保存」を選択します。
-
「その他のタイプのシークレット」を選択します。
-
Google OAuth の clientId と clientSecret をキーと値のペアとして入力します。
- キー: clientId、値: <YOUR_GOOGLE_CLIENT_ID>
- キー: clientSecret、値: <YOUR_GOOGLE_CLIENT_SECRET>
-
プロンプトに従ってシークレットに名前と説明を付けます。CDK コードで使用するため、シークレット名をメモしておきます。例えば、googleOAuthCredentials(ステップ 3 の変数名 <YOUR_SECRET_NAME> で使用)。
-
内容を確認し、シークレットを保存します。
キー名は、文字列 'clientId' と 'clientSecret' と完全に一致する必要があります。
cdk.json ファイルに ID プロバイダと SecretName を追加します。
次のようになります:
{
"context": {
// ...
"identityProviders": [
{
"service": "google",
"secretName": "<YOUR_SECRET_NAME>"
}
],
"userPoolDomainPrefix": "<UNIQUE_DOMAIN_PREFIX_FOR_YOUR_USER_POOL>"
}
}
ユーザープールドメインのプレフィックスは、すべての Amazon Cognito ユーザー間でグローバルにユニークである必要があります。すでに別の AWS アカウントで使用されているプレフィックスを選択すると、ユーザープールドメインの作成に失敗します。ユニーク性を確保するために、識別子、プロジェクト名、または環境名をプレフィックスに含めることをお勧めします。
AWS に CDK スタックをデプロイします:
npx cdk deploy --require-approval never --all
スタックをデプロイした後、CloudFormation のアウトプットに AuthApprovedRedirectURI が表示されます。Google デベロッパーコンソールに戻り、正しいリダイレクト URI で OAuth クライアントを更新します。