記事検索

検索ワードを入力してください。
Sky Tech Blog
【AWS】Amazon Cognitoで​パスキーを​使う

【AWS】Amazon Cognitoで​パスキーを​使う

2024年12月にパスキー対応したAmazon Cognitoで、実際にパスキーを登録・認証する手順と、その過程で嵌った注意点を共有します。Cognitoの各種設定から、Webアプリケーションでの具体的な実装フローまでを解説します。

2024年12月にAmazon Cognito(以下、"Cognito")がパスキーに対応しました。
で、遅ればせながらCognitoでパスキーを使おうと思ったところちょっと嵌ったので共有します。

まずはCognitoで以下の設定を行います。

  • Sign-in > Multi-factor authentication > MFA enforcement
    • Optional MFAを設定
  • Authentication methods > Passkey
    • ManagedLoginを使用しているならCognito prefix domainかCustom domainを選択
    • 独自のログイン画面を作っているならThird-party domainを選択
  • Sign-in > choice-based sign-in > Available choices
    • Passkeyを選択
  • App clients > App client > Authentication flows
    • ALLOW_USER_AUTHを選択

Webアプリケーションで各ユーザーのパスキーを登録する処理は以下のようになります。

  1. まずはCognitoへユーザー名とパスワードでログインしてアクセストークンを取得します。
  2. CognitoのStartWebAuthnRegistrationを呼び出してパスキーの登録プロセスを開始します。
  3. CognitoのStartWebAuthnRegistrationから提供された情報を基に、ブラウザのnavigator.credentials.create()を呼び出して認証デバイスで認証してもらいクレデンシャルを作成します。
  4. クレデンシャルをCompleteWebAuthnRegistrationに渡してCognitoにパスキーの登録を完了します。

続いて実際にパスキーを使用した認証です。
以下のようになります。

  1. CognitoのAdminInitiateAuthに以下のパラメーターを指定して認証フローを開始します。
    • AuthFlow: USER_AUTH
    • AuthParameters.PREFERRED_CHALLENGE: WEB_AUTHN
  2. CognitoのAdminInitiateAuthから提供された情報を基に、ブラウザのnavigator.credentials.get()を呼び出して認証デバイスで認証してもらいクレデンシャルを取得します。
  3. CognitoのAdminRespondToAuthChallengeに以下のパラメーターとクレデンシャルを渡してパスキーを検証します。
    • ChallengeName: WEB_AUTHN
    • 問題がなければこれでトークンが発行されるはずです!

\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム