魍魎

WordPress で二段階認証を可能にするプラグイン「魍魎」

魍魎WordPress で、メールまたは SMS でワンタイムパスワードを発行して二段階認証ができるようにするプラグイン「魍魎」を公開しました。
絡新婦」「狂骨」に続く、日本の妖怪シリーズ第三弾です。
現在、公式プラグインディレクトリに申請中ですので、気になる方は github のリポジトリから取得してください。
https://github.com/wokamoto/spirits-and-goblins

追記: 2013-06-24
WordPress 公式プラグインディレクトリでも公開しました。
Spirits and Goblins

インストールして有効化すると、通常のログイン後にユーザのメールアドレス宛に送信されたワンタイムパスワードを入力しないとダッシュボードに入れなくなります。
送信オプションとしてはメールと SMS (ショートメッセージ) が選択できます。
「ショートメッセージ」を使用するには Twilio への登録を行い、設定画面で「Twilio sid」「Twilio token」「Twilio phone number」を取得する必要があります。
KDDI 版 Twilio は、日本語化されててとても嬉しいのですが、残念ながらまだ SMS に対応していないので注意してください。早く対応してくれないかなー。
また、ユーザープロフィール画面に追加される「国」と「携帯電話番号」欄にも登録してください。

screenshot-1
通常ログイン後に上記のようなワンタイムパスワードを入力する画面が表示されますので、メールで送信されてきた6桁(デフォルト、変更可能)の数字を入力してください。

screenshot-2
設定画面では「ワンタイムパスワードの長さ」「有効期間」「送信オプション」を設定することができます。
送信オプションとして「ショートメッセージ」を使用する場合は、Twilio への登録を行い「Twilio sid」「Twilio token」「Twilio phone number」を設定する必要があります。
また、ユーザープロフィール画面に追加される「国」と「携帯電話番号」欄にも登録してください。

ワンタイムパスワードの生成には RFC 2289 に準拠した One-Time Password を生成できるライブラリ「php-otp」を使用しています。
ただし、このライブラリで生成されるパスワードは16桁の hex なので手打ちするには辛いため、以下の方法で6桁の数字にしています。

 $pass_dec = sprintf( '%06d', abs( hexdec($pass_hex) % pow(10, 6) ) );

ワンタイムパスワードを生成する際のパスフレーズには wp-config.php で設定されている定数 AUTH_SALT (設定されていなければ COOKIE_HASH)を、seed は各ユーザ毎に php-otp の提供してくれているメソッド generateSeed で生成しています。
設定画面で設定した「ワンタイムパスワードの有効期間」を過ぎると、このシードは破棄されます。

WordPress で二段階認証を可能にするプラグイン「魍魎」」への1件のフィードバック

  1. 坂田

    インストールしたら以下のエラーが出まして有効化で来ませんでした。

    Parse error: syntax error, unexpected T_STRING in /home/xxxxx/public_html/xxxxx/xxxxx/wp-content/plugins/spirits-and-goblins-master/includes/class-SpiritsAndGoblins.php on line 358

    どうしたらいいでしょうか?

    返信

コメントを残す

メールアドレスが公開されることはありません。