2段階認証(MFA)のワンタイムパスワードを関するアプリが複数箇所にあると管理が面倒ですよね。
MFA使うタイミングはWebブラウザ上が多く、1passwordであればブラウザでワンタイムパスワードも自動fillしてくれるので1passwordに寄せたいと考えました。
しかし、こちらの記事でも紹介していますが、コマンドラインやAlfred Workflowでワンタイムパスワードを取得したい時もあります。それをAuthyでは簡単に実現できます。
1passwordには1passwordcliというものがあり、これを使えばAuthyでやっていたようなことができるかと思い試してみました。1passwordcliでどうやってワンタイムパスワード取得するかは後半に書いています。
結論、今のところはAuthy継続利用しています。理由は以下。
- 再サインインが面倒
- 1passwordcliを30分使用しなかったら再サインインが必要
- それには手動でマスターパスワードの入力が必要
- 1password8がベータではなくなればTouch IDで認証できそうだが、普段はクラムシェルなのでやはり厳しい
- なんとかパスワードの入力なしにサインインを実現したとしても、セキュリティ面で危険
- Authyは一度認証すれば長期間(または永続的?)にワンタイムパスワード取得が可能
- だけどAuthyはMFAだけ登録してあるのでまぁ許容
- 1passwordcliはMFAだけじゃなく、ユーザ名、パスワードも取得可能
- ログインに必要な情報すべて認証なしに取得できてしまうと万が一の際に一発アウト
- 1password自体にログインする際に(頻繁じゃないけど)MFAが必要
- それはAuthyに登録している
- なのでAuthyはどのみちなくせない
主にセキュリティ面の観点で1passwordに寄せるのはやめました。ただ、現状MFAを登録するときはAuthyにも1passwordにも登録する運用になっているので、どっちかに入れればもう片方にも同期される、みたいなことができないか今後検討します。それはまた別の記事で。
以下は1passwordcliでどうやってワンタイムパスワードを取るかの説明。
1passwordcliインストール
この記事ではMacを想定。homebrew入れているかとおもうので、それで。
brew install --cask 1password/tap/1password-cli
記事執筆時の最新版、v2.10がはいった。
~ » op --version
2.1.0
1passwordcli サインイン
1password 8のアプリを入れているとTouch IDを使ってかっこよくサインインできるみたいが、1password 8はまだベータだし、appなしでも動いて欲しいのでマニュアルでサインインする。
アカウント追加
最初に1回実施する。Sign-In AddressとEmail Address, Secret Keyが必要。1password appをインストールしている場合は、Account -> Set Up Another Device..から取得可能。appを入れていない場合はwebサイトから取得。
下記コマンドでアカウント追加。
op account add \
--address my.1password.com \
--email hogehoge@gmail.com \
--secret-key A3-...
プロンプトでマスターパスワードとワンタイムパスワードを聞かれる。
サインイン
1passwordからトークンやパスワードを取得するためにはまずサインインをします。動きとしてはこのコマンドの結果、セッショントークンが環境変数に格納され、それを使って認証を行います。
30分間トークンが使用されなかったらトークンが無効になり、またサインインが必要となります。サインインの際は毎回パスワードが必要となる。
1passwordcliでワンタイムパスワード取得
下記コマンドでワンタイムパスワードが取得可能
op item get --otp <名前 or UUID>
これでauthyと同じようなことができるようになりました。ただ、使っていないと30分でセッショントークンが無効なり、パスワードの入力が必要になってくるのがネックです。