2要素認証で必要なMFA Tokenをalfredで呼び出して入力する

前置き

AWSとかGsuiteとかGithubとか、ありとあらゆるサービスで2要素認証が使えるようになってきていて、且つセキュリティ上の視点から会社のルールとしてあるアプリケーションの利用には2要素認証が必須というのはよくある話だと思う。
会社でももちろん2要素認証の利用を必須としているものがいくつかある。
私としてもID/PWだけの認証には不安を感じるようになってきていて、アプリケーションが対応している限りは2要素認証を設定するように心がけている。

しかし2要素認証はめんどくさくもある。
Authyを使わず、リカバリーコードもバックアップせず、スマホを買い替えて無事死亡したことが過去にあるが、あれは本当に大変だった。
各サービスの管理者にアカウントのリセットをしてもらう必要があったりして、時間もかかるし気も使う。
それを解消したのがAuthyというアプリケーションで、PCとスマホで2要素認証を同期できるのでこれだけでも十分便利である。
ただ、便利になればなるほどちょっとしたことですら気になるもので、Authyだと作成したトークンをコピーするのに、マウスを使って「Copy」をクリックして、ペーストする必要がある。
これが日々地味に面倒に思っていた。(もしかしたらキーボードのショートカットとかでマウスを使わずにいけるのかもしれないが、私はわからなかった)

大分前置きが長くなってしまったが、このステップを無くすのに良いツールがあった。
oath-toolkitというmfa tokenを生成するCLIを、Alfredのworkflowとして作成された方がいて、これがまさに求めていたものだった。

MFA Token を Alfred Workflow で簡単生成する(暗号化あり)

利用の前提としてalfredのpowerpackユーザーでないと駄目なので、そこが一番ハードルが高い。
※単位がポンドなので絶妙に値段が高い。
私の場合はすでにpowerpackユーザーなので早速導入をしてみた。

導入手順

基本的には上記サイトの手順通りに進めれば良い。
まず、brewでoath-toolkitをインストールし、上記サイトからWorkflowをダウンロードしてalfredに導入する。
mfaがalfred上でworkflowを呼び出すprefixとなる。

alfredのworkflowで一番最初にやることは、mfaのsecret keyを保存し、アクセスするためのマスターパスワードを設定することである。
mfa initを実行することで設定できる。

次に、2要素認証を設定したいサービスを追加する。追加の際にsecret keyの入力が必要である。
作者の方が記事を投稿された際はAuthyの開発者ツールでsecret keyが確認できたようだが、2018/7/12時点では確認できないようになっていた。
私の場合は、2要素認証を設定する際に表示されるQRコードをバックアップしていたので、それを読み込むとkeyがわかるのでそれを入力するようにした。
QRコードのバックアップをしていない場合での確認方法は私はわからないので、その場合は素直に再設定していくしかなさそうに思っている。

サービスを追加したら実際に使ってみる。まずは2要素認証の画面。

alfredを呼び出して、mfaのあとに先程設定したサービス名を入力。

最初に登録したマスターパスワードを入力する。

そうするとmfaトークンが生成されて、通知される。

フォームにも先程通知されたmfaトークンが入力される。

まとめ

これでmfaトークン入力のためにマウスでポチポチすることすら無くなり、サクサクとログインできるようになった。
時間にしたら数秒程度のことなんだけど、この微妙な煩わしさのために2要素認証を設定しないのは勿体無いので、これからもバシバシ登録していきたい。