tyoshikawa1106のブログ

- Force.com Developer Blog -

Heroku:Two-factor Authenticationを試してみました

Two-factor Authenticationを試してみました。Herokuにログインするときに2要素認証機能が有効化されセキュリティがより向上します。
f:id:tyoshikawa1106:20160324101158p:plain

Two-factor Authentication | Heroku Dev Center


左側のメニューからManage Accountのページに移動します。
f:id:tyoshikawa1106:20160324100730p:plain


Set up Two-factor Authentication...ボタンがあるのでクリックします。
f:id:tyoshikawa1106:20160324100922p:plain


設定手順が表示されます。赤枠のボタンをクリックします。
f:id:tyoshikawa1106:20160324101458p:plain


ボタンをクリックするとHerokuアカウントのパスワードを聞かれます。
f:id:tyoshikawa1106:20160324101618p:plain


パスワードを入力すると次の画面が表示されます。
f:id:tyoshikawa1106:20160324101922p:plain


あとは以下の手順で進めればいいみたいです。

Download an app

QRコードの読み取りが必要になるので、AuthyまたはGoogle Authenticatorのモバイルアプリをダウンロードします。
f:id:tyoshikawa1106:20160324102102p:plain

Google Authenticator on the App Store


Salesforceユーザの場合はSalesforce Authenticatorアプリでも対応できそうです。

Salesforce Authenticator

Scan the code

先ほどの認証アプリについているQRコード読み取り機能で画面に表示されているQRコードを読み取ります。
f:id:tyoshikawa1106:20160324102950p:plain


読み取り後、アプリに認証コードが表示されるようになります。
f:id:tyoshikawa1106:20160324214636j:plain:w200

Verify your app

最後にアプリに表示されている認証コードを入力してボタンをクリックします。
f:id:tyoshikawa1106:20160324103114p:plain


これで認証完了です。
f:id:tyoshikawa1106:20160324103243p:plain

リカバリコードの設定

最後にリカバリコードを設定する必要があります。何らかの理由でログインできなくなったときにこのコードで復旧できます。Set upボタンをクリックすると電話番号の入力を求められます。
f:id:tyoshikawa1106:20160324103420p:plain


試しに入力してみたところ次のエラーが発生しました。
f:id:tyoshikawa1106:20160324103553p:plain:w200


エラーの原因は国番号を入力し忘れていた為でした。日本の場合は『+81』と先頭につける必要があります。またハイフン区切りで入力する必要があるみたいです。
『+81 090-XXXX-XXXX』


このステップはスキップすることが可能です。次に進むとリカバリコードが表示されます。
f:id:tyoshikawa1106:20160324103658p:plain


ダウンロードボタンやコピーボタンが用意されているので、どこか確認できる場所に残しておくと安全です。

有効化後の設定

有効化後、Manage Accountのページに戻ると次のようになっています。Two-factor Authenticationを無効化したり、電話番号を追加したり、新しいリカバリコードを発行したい場合はここからできるみたいです。
f:id:tyoshikawa1106:20160324104112p:plain

Herokuにログイン

設定完了後、Herokuにログインするとログイン時に次の画面が表示されるようになります。
f:id:tyoshikawa1106:20160324104851p:plain


認証アプリに表示される認証コードを入力すると無事にログインできます。

ターミナルからHerokuにログイン

ターミナルからHerokuコマンドを利用する際に『heroku login』コマンドを利用します。今まではEmailとPasswordの2つの情報が必要でしたが、Two-factor Authentication機能を有効化後はTwo-factor codeも聞かれるようになります。

$ heroku login
Enter your Heroku credentials.
Email: <Herokuアカウント・ユーザ名>
Password (typing will be hidden): <Herokuアカウント・パスワード>
Two-factor code: <認証アプリの認証コード>

ログイン後は、今までと同じようにHerokuコマンドが実行できると思います。


自分のときは必要ありませんでしたが、事前にheroku updateコマンドを実行しておくといいみたいです。
f:id:tyoshikawa1106:20160324105850p:plain

無効化コマンド

試してはいないのですが、次のコマンドで無効化できるみたいです。

$ heroku 2fa:disable

電話番号を登録しておくと・・・

Two-factor Authenticationの認証用に電話番号を登録しておくと認証アプリとは別にSMSで認証コードを受け取ることができます。何らかの理由で認証アプリが利用できなくなった時に便利そうです。
f:id:tyoshikawa1106:20160324110659p:plain:w300


HerokuのTwo-factor Authentication機能はこんな感じでした。