Amazon Cognito 向け aws-auth スキルでパスキー認証アプリを試してみた
はじめに
2026年8月7日、Agent Toolkit for AWS に Amazon Cognito 向けの aws-auth スキルが追加されました。
Amazon Cognito のパスキー認証は、2024年11月からサポートされています。設定手順は、Kitano が以下の記事で紹介しています。
本記事では aws-auth スキルの構成を確認したうえで、実際にパスキー認証のデモアプリを実装しました。
検証内容
aws-auth スキルの概要
aws-auth スキルは、スキル定義の SKILL.md と9つのリファレンスで構成されています。Cognito の機能・用途ごとにファイルが分かれており、エージェントはタスクに応じて必要なリファレンスを参照します。
| # | ファイル名 | 役割 |
|---|---|---|
| 1 | SKILL.md | スキル定義(メタデータ、対象範囲、概要、リファレンスへの案内) |
| 2 | references/user-pools.md | ユーザープールの作成・設定 |
| 3 | references/managed-login-oauth.md | Managed Login と OAuth 2.0 フロー |
| 4 | references/passkeys.md | パスキー/WebAuthn の設定・登録 |
| 5 | references/tokens-and-sessions.md | トークンとセッション管理 |
| 6 | references/api-authorization.md | API Gateway JWT Authorizer など |
| 7 | references/identity-pools.md | ID プール(Federated Identities) |
| 8 | references/lambda-triggers.md | Lambda トリガー |
| 9 | references/threat-protection.md | 脅威保護(Threat protection) |
| 10 | references/troubleshooting.md | トラブルシューティング |
SKILL.md が索引を兼ねており、エージェントはタスクに関係するリファレンスを必要に応じて参照します。
スキルのインストール
GitHub リポジトリから aws-auth ディレクトリをダウンロードし、プロジェクトの .kiro/skills/aws-auth へ展開します。
mkdir -p .kiro/skills
cd .kiro/skills
curl -sL https://github.com/aws/agent-toolkit-for-aws/archive/refs/heads/main.tar.gz \
| tar -xzf - --strip-components=3 agent-toolkit-for-aws-main/skills/core-skills/aws-auth
パスキー認証デモの実装
aws-auth スキルをプロジェクトの .kiro/skills/aws-auth に配置した状態で、Cognito のパスキーでサインインするデモアプリを実装しました。リージョンは ap-northeast-1、モデルは GPT-5.6 Luna です。
指示した内容は以下です。
- Essentials プランのユーザープールを作成し、パスキーを有効化
- パスワードサインイン後にパスキーを登録し、次回からパスキーでサインインできるデモ
- 依存パッケージなしの HTML + JavaScript で実装
- CloudFront で HTTPS 配信
生成されたコードには、aws-auth スキルの passkeys.md の記述が反映されていました。たとえば RP ID について、スキルには以下の記述があります。
**`WebAuthnConfiguration`** — lives on the pool's **MFA configuration**, NOT
on `SignInPolicy`. Set via `set-user-pool-mfa-config`:
aws cognito-idp set-user-pool-mfa-config \
--user-pool-id <pool-id> \
--web-authn-configuration RelyingPartyId=auth.example.com,UserVerification=preferred
- `RelyingPartyId` — the origin the passkey is bound to. Must match your
app's domain.
RP ID は、WebAuthn で利用するドメインです。ブラウザでアクセスするホスト名自身、またはその親ドメインとして有効な値を設定する必要があります。今回の構成では、CloudFront の配信ドメインを RP ID に指定しました。
window.APP_CONFIG = {
region: "ap-northeast-1",
userPoolId: "ap-northeast-1_XXXXXXXXX",
clientId: "xxxxxxxxxxxxxxxxxxxxxxxxxx",
relyingPartyId: "dxxxxxxxxxxxxx.cloudfront.net" // CloudFront ドメインと一致
};
生成されたコードは修正なしで動作し、パスキーの登録とサインインが成功しました。



InitiateAuth で WEB_AUTHN チャレンジを開始し、navigator.credentials.get() の実行後に RespondToAuthChallenge から AuthenticationResult を取得できたことで、パスキー認証の完了を確認しました。あわせて、AdminGetUserAuthFactors の ConfiguredUserAuthFactors に WEB_AUTHN が含まれることから、パスキーが登録済みであることも確認しました。
まとめ
aws-auth スキルを導入しておくと、エージェントは Cognito の認証機能に必要な設定や実装上の注意点を参照しながら、実装・改修を進められます。パスキーのように、ユーザープール側の設定とクライアント実装の両方が関わる機能では、関連する情報をまとめて参照できるメリットが大きいと感じました。
今回はクレジット倍率 0.1x で使える GPT-5.6 Luna でも、パスキーに必要な設定項目を漏らさず実装できました。Cognito の認証・認可を使うアプリケーションを開発する機会があれば、aws-auth スキルを試してみてください。







