treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

YahooワンタイムパスワードもWindows10Mobileで発行したい

今日はWindows PhoneもといWindows 10 MobileでYahoo!ログインIDのワンタイムパスワードを利用するために実施した方法についてご報告します。
Yahoo!IDは基本的に専用アプリである「Yahoo!JAPANワンタイムパスワード(以下Y!OTP)」アプリ以外ではワンタイムパスワードを生成できないようになっています。

Windows10Mobileでも例外ではなく、以前ご紹介した二段階認証アプリ「Authenticator」でワンタイムパスワード発行ができるようにしたいのですが、普通にやるとできません。
よくよくやってみるとGoogle認証アプリでも登録はできません。どうやらAndroid&iOS対応の専用アプリである「Y!OTP」アプリでしかワンタイムパスワードの登録発行ができない模様。で、当然ですがWindows10Mobileではこのアプリが提供されていません。

でも私はAndroidでやっていることを極力Windows10Mobileに移したいのです。そこで別の方法でちょっとやってみることにしました。

まずはご紹介

今回使うアプリも過去記事と同じくWindows10Mobile用の二段階認証アプリ「Authenticator」を利用します。

blog.treedown.net

アプリについての説明は過去記事からどうぞ。

やり方1:まずは正規の方法で

最初に、私の場合はAndroidアプリでワンタイムパスワードを発行するようにせっていしてあったので、登録してあったアカウントを削除しておきました。
ワンタイムパスワードアプリに登録済みのアカウントは再設定する際にはすべての登録を実行しなおす必要があるためです。

一旦PCでアクセスしたYahoo!のマイページでアカウント情報からワンタイムパスワードの設定を一旦停止し「設定を初期化する」リンクをクリックしてワンタイムパスワード設定ページを開きます。(※PCでアクセスするのは複数のスマートフォンでQRコードを読み取るためです。)

設定ページを開くと、例によってバーコードが表示されますので、まずはAndroidアプリ「Y!OTP」を起動して正規の方法(通常の登録方法)でバーコードを読み取り、Yahoo!IDのワンタイムパスワードを「Y!OTP」で発行できるようにします。
※まず「Y!OTP」アプリで登録することで他のAuthenticatorアプリで正しいワンタイムパスワードが発行されているかどうかを確認できるようにする目的です。
ここまでで「Y!OTP」では登録するワンタイムパスワードが発行できるようになります。

やり方2:Google認証(Google Authenticator)に登録しておく

次にAndroid端末にインストールしてあるGoogle認証アプリに登録してみます。
ちなみにGoogle認証でもバーコードの直接読み取りには対応していません。

そこでまずはなんでもいいのでQRコードリーダーアプリを起動します。QRコードリーダーアプリで画面上に表示されているバーコードを読み取ってみます。
バーコードを読み取ると、
 yjotp://totp/%YahooID%?secret=ABCDFEFG11HIJKLMN22OPQRSTU3VWXYZ
と言う感じでバーコードが文字列になってくれます。
このYahoo!ID部分とsecret=以降の32文字の文字列を使います。
Google認証システムトップページからメニュー「アカウントを設定」をタッチして「提供されたキーを入力」をタッチし、アカウントを手動で入力するようにします。
次の画面ではアカウント名とキーを入力するような画面になります。
この画面の

  •  アカウント名を入力の欄=上述でいう%YahooID%を入力
  •  キーをここに入力の欄=上述でいう「ABCDFEFG11HIJKLMN22OPQRSTU3VWXYZ」を入力

し、三番目の設定値には「時間ベース」と選択されている状態で「追加」ボタンをクリックします。
こうして追加するとYahoo!ID用のワンタイムパスワードはGoogle認証システム画面に表示されるようになります。このタイミングで「Y!OTP」アプリとGoogle認証システムアプリで表示されているワンタイムパスワードの6桁の数字が合致しているかどうかみることで、正常に登録ができていることを確認します。

やり方3:Windows10Mobile側でも同様の操作を実行

Windows10Mobile用の二段階認証アプリAuthenticatorでもGoogle認証システムのように手動追加を実行します。
画面の追加(+ボタン)をタッチして「アカウントの追加」画面を起動します。
図:アカウントの追加画面を起動

f:id:treedown:20160516005434p:plain
この画面で

  • アカウント名欄=前出の%YahooID%を入力
  • 秘密鍵=前述でいうところの「ABCDFEFG11HIJKLMN22OPQRSTU3VWXYZ」を入力

QRコードリーダーで読み取れるのなら、コピペでOKです。
登録後、保存ボタンをタッチしてワンタイムパスワードの発行ができているかどうかを確認します。
図:ワンタイムパスワード発行の図

f:id:treedown:20160516005455p:plain
ちょっとわかりにくいのですが、この図では上から二番目のユーザIDの表記に@以降のドメイン名が表記されていないIDがYahoo!IDです。
無事登録できました。

確認してみます。

確認は簡単です。
わざわざ公式アプリに登録をしたのはこの確認のためです。
Android側のY!OTPアプリで表記されているワンタイムパスワードの数字6桁がWindows10MobileのAuthenticatorで表示されている6桁の数字と合致することを確認します。
合致していれば正常にワンタイムパスワードが発行されていることが確認できるのですが、更新のタイムラグが出るので更新間隔を二周ほど待って合致を確認したほうがよさそうです。
Windows10MobileのAuthenticatorで表示が一致している確認が取れたら、Android側のアプリをGoogle認証システムに切り替えてWindows10MobileのAuthenticatorの表示している数字6桁とGoogle認証システムに表示されている数字6桁の合致を確認しておくと完璧です。

ここまでやると

Windows10MobileとAndroidの両方でYahoo!IDのワンタイムパスワードの発行ができるようになります。
前回と同様の〆になってしまいますが二段階認証にとって要となるワンタイムパスワードが発行できなくなると、サービス利用時には確実に不便になりますので、二台の機器二種類のアプリで冗長化しておくことで、故障やアプリの動作不調に備える、という意味合いで、二種類のAuthenticatorアプリで冗長化を実施されておくのはありじゃないでしょうか。