npm で Security Key による 2FA を有効にしてみた
はじめに
以下の記事の通り、npm の 2FA にて Security Key が利用できるようになったとのことで試してみました。
なお、ドキュメント[1]に記載の通り、現時点で WebAuthn によるフローはベータ版のようなので、その点を念頭に試した方が良いかと思います。Note: The security-key flow using WebAuthn is currently in beta.
手順
詳細な手順および画面のイメージについては以下のドキュメントに記載されており、こちらを参照するのが良いと思います。本記事ではあくまで参考程度にザックリと手順を記載します。
登録
自信の npm アカウントの "Two-Factor Authentication" の設定から有効にすることができます。以下の画像のように Security Key を選択することができます。
Security Key を選択した場合、Security Key に名前をつけるように誘導されるので適当な名前を付けます。
ここで以下のようなダイアログがブラウザ上に表示されます。今回は "USB Security key" を選択し、YubiKey を Security Key として利用してみましたが、問題なく処理が実行されました。
最後に、2FA が有効になった旨とリカバリーコードが表示されます。
認証
ユーザー名およびパスワードを入力すると "Use security key" というボタンが表示されます。
このボタンを押下するとダイアログが表示され、Security Key による認証が開始されます。
認証 (CLI)
CLI からのログインにおいても Security Key は利用できるようです。
例えば、以下のように Security Key による 2FA を有効にしたユーザーで "npm login" を実行すると、WebAuthn を実行するための URL が表示されます。この URL にアクセスすると、Security Key による認証が開始され、成功するとワンタイムパスワードが表示されます。最終的にこのワンタイムパスワードを CLI に入力するとログインが成功しました。
おわりに
色々なサービスが WebAuthn に対応することで、MFA のデバイスを特定の Security Key に集約できるため、個人的には便利ですね。
参考
- [1] npm Docs | About two-factor authentication
https://docs.npmjs.com/about-two-factor-authentication
Discussion