こちらの記事で、AWS Cognitoがパスキーによる認証に対応したと言うことを知り、早速試してみました。速報ベースで、ドキュメントも読んでいないので、間違っているところがあったらごめんなさい。
ユーザプールの作成
まずはAWSにログインし、Cognitoから新しいアプリを作成します。
とりあえずTraditional web applicationを作ります。
アプリ名も適当につけました。
ユーザ識別子はEメールにします。
今回はCognitoだけで完結しますので、Return URLも空欄のままにしておきます。
ユーザプールが完成しました!
せっかくなのでユーザプール名も分かりやすいものに変更しておきます。
ここからサインイン方法を選べるようです。
パスキーは、パスワードに追加のオプションとして設定できるようです。
パスワードを廃止し、パスキーだけのログインにはできないようです。
実際に使ってみる。
新規登録
元の画面から「Set up your app」の横のアプリ名をクリックして、
右上の「View login page」をクリックしてログインページを開きます。
とてもシンプルで可愛いログイン画面が表示されます。初めての利用なので、Create an accountをクリックし、新規登録画面に進みます。
ユーザプール作成時に見たとおり、新規登録時はパスワードが必須のようです。
デフォルトだと記号も必須になっており、Googleパスワードマネージャのサジェストしてきたパスワードだと先に進めませんでした。
Eメールで確認コードが飛んでくるので、それを入力します。
アカウント作成完了とともに、パスキー登録画面に遷移します。
パスキーを作成します。
ログインが完了しました。Return URLを設定していないので、ここで終わりです。
ログイン
ログインするには、再度コンソールからログイン画面を開きます。
ログイン済のセッションが残っているので、Sign in with different userをクリックします。
もう一度Eメールを入力して
(オートフィルによるパスキーログインにも対応していなさそう・・・)
パスキーでのログインを行います。
ログインが完了しました。
多要素認証はどうなる?
さて、パスキーを設定したとして、パスワードが残っているのであれば、多要素認証を設定してパスワードによるログインの安全性を改善したいところですが・・
なんと、多要素認証は、パスワードのみが認証手段の場合でしか使えないとのエラーになってしまいました。
作られたユーザの確認
コンソールでユーザを確認しましたが、パスキーを削除したり、パスキーの有無を確認できる画面も見つかりませんでした。
新規作成時にパスキーを作成していないユーザが、パスワードでログインした際、ログイン後にパスキーの登録を誘導されることもありませんでした。
まとめ
とりあえずドキュメントも読まずにCognitoでパスキーを使ってみました。
最低限の設定は即使えるようになったので、とりあえず簡易的なサービスの認証としては非常に便利だと思います。
ですが、オートフィルによるパスキーログインをしたいだったり、パスワードを廃止したいだったり、パスワードの場合には二要素認証をいれたいといった、ちょっとした設定はできないようでした。今後の改善に期待です。