LoginSignup
1
3

More than 3 years have passed since last update.

G Suiteの2段階認証を自作Webアプリと連携させた話

Last updated at Posted at 2020-03-16

新型コロナウイルスの影響で、企業がテレワークに本腰を入れ始めた。
会社貸与のPCから安全にGmailが使えるよう、G Suite Basicで2段階認証を導入した話をする。

従業員アカウントごとの秘密鍵を情報システム部門で厳重に保管し、その秘密鍵からワンタイムパスワード(TOTP)を計算して社内イントラに表示する形にすれば、社外ネットワークからはGmailにログインできないというソリューションになる。

ワンタイムパスワード(TOTP)を計算してWebサイトに表示する方法は前回の記事を参照して欲しい。

Google Cloud Supportに聞いてみた

従業員アカウントごとの秘密鍵を、G Suite管理者が効率良く、できれば一括で、発行できるようにしたかった。

スマートフォン、SMS、音声通話、セキュリティキーを一度も使わずに、認証システムアプリのQRコードを取得できないかGoogleに問い合わせたが、無いとのこと。初期設定では、スマートフォン、SMS、音声通話、セキュリティキーいずれか必須となり、その予備として認証システムアプリが表示される仕様。その後、スマートフォン、SMS、音声通話、セキュリティキーを削除するのはOKで、認証システムアプリを唯一の2段階認証とすることはできる。

従業員数が多いので、G Suite管理者が一括で組織内アカウントのQRコード(シークレットキーでも良いが)を生成できないかも聞いてみたが、それも出来かねる仕様とのこと。G Suite Business や G Suite Enterprise なら出来るという話も出てこなかったので、多分すべてのエディションで同じ仕様だと思う。組織の一員であっても認証は本人が行うものというポリシーなのだろう。

また、初期設定時の確認コードを音声通話で受け取る方法として、会社貸与携帯やBYODも無いので、同じ電話番号(会社代表番号)を繰り返し使えるのかも聞いてみたが、同じ電話番号の使用回数には一定の制限があるとのこと(不正利用防止のため回数は非公開)。使用回数の上限に達した旨のメッセージが表示された場合は、別の電話番号にて認証を行う必要があるとのことだった。

ということで、セキュリティキーをひとつ購入し、組織内アカウントごとの初期設定時にこれを使いまわすことで、ワンタイムパスワード(TOTP)による2段階認証方式(Googleからみると認証システムアプリ)に移行することにした。

セキュリティキー

FIDO(ファイド)U2F の Security Key by Yubico を Amazon で購入。「2」の刻印がある。
image.png
Yubiという名前とその形状から指紋認証のように見えるが、実体はUSBキーボードであり頑丈な作り。指紋認証の YubiKey Bio とは別物。専用のソフトウェアやドライバをインストールせずに使うことができる。
ちなみに Yubikey の語源は、「あなたが常に身につけている鍵」、Your UBIquitous Key の略だそうだ。

移行手順

Google Chromeから行う。

セキュリティメニューから2段階認証プロセスをクリック

[Googleアカウントを管理] :arrow_forward: [セキュリティ] :arrow_forward: [2段階認証プロセス] の順にクリックする。
image.png

セキュリティキーをクリック

[使ってみる] :arrow_forward: [別の方法を選ぶ] :arrow_forward: [セキュリティキー] の順にクリックする。
image.png

セキュリティキーをUSBポートに挿入

表裏に注意すること。どちらの向きでも入ってしまう。
デスクトップPCでもノートPCでも、鍵マークが上になるよう挿入すれば、たいがいOK。
縦置きデスクトップなら、足の反対側に鍵マークが来る。
image.png

デバイスが準備できるまで待つ

Windowsがセキュリティキーを認識すると、右下にバナー通知される。
image.png

鍵マークをタッチする

セキュリティキーを認識すると、表示が「セキュリティキーにタッチしてください」に変わる。
image.png
青白く点滅するのでタッチする。

セキュリティキーのメーカーとモデルの読み取りを許可

Chromeからのメッセージに対し、[許可] をクリックする。セキュリティキーはあとで削除するため、名前は付けなくて良い。
image.png

バックアップコードの取得

必須では無いが、何かの間違いがあったときのために、ここで取得しておいた方が安心である。
image.png
ダウンロードし、システム管理者が保存する。
image.png

認証システムアプリを有効化

[設定] :arrow_forward: [次へ] の順にクリックする。
image.png

QRコードを印刷し、QRコードリーダで読む

画像ファイルにして、Web便利ツール@ツールタロウなどでデコードしても良い。
image.png

秘密鍵をシステムに登録

otpAuth URI の形式でデコードされるので、accountnamesecret自作Webアプリに登録する。

otpAuthURI
otpauth://totp/[issuer]:[accountname]?secret=[secret]

ワンタイムパスワードを入力

自作Webアプリにアクセスし、ワンタイムパスワード(TOTP)をコピペする。
image.png

セキュリティキーを削除する

セキュリティキーを削除し、認証システムアプリ(TOTP)を唯一の2段階認証の手段とする。
image.png

確認

いったんログアウトする。
シークレットモードで起動したChromeから、ワンタイムパスワードでログインできることを確認する。
image.png

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3