AWS/EC2で運用するWebサイトへ2要素認証(Multi-Factor Authentication)を導入
AWS上に CentOSで動作するワンタイムパスワード認証 / OTP対応のWebサーバーを構築します
サーバー構築の方針は、以下とする
- クライアント側も導入しやすい事(費用・汎用性)
- 多要素認証 / Multi-Factor Authenticationに対応すること
- CentOS で動作すること
- リバースプロキシ機能も有すること
- システムの導入 / 運用 / 保守が簡単な事
ワンタイムパスワードとしては、ハードウエア・トークンやソフトウエア・トークンなどの各種の方式があります。ハードウエアトークン(パスワード生成器)は、専用のハードの為に導入時に費用がかさみますがソフトウエア・トークンの場合には、OSSや無償のソフトなどもあり、導入時のコストを抑えることが出来ます。
ワンタイムパスワード認証を利用した各社のWebサービスとしては
- Amazon
- Microsoft
- Dropbox
- 仮想通貨のサイト
- インターネットバンキング
などがあります。これらのサービスは、時間ベースのワンタイムパスワード方式(TOTP)を採用しています。
RFC 6238で規定されたTOTP/時間ベースのワンタイムパスワードでは、サーバーとクライアントで共有する秘密鍵(共有鍵)と現在時刻から、認証コードを計算するアルゴリズムで一定時間毎(例 30秒毎)に、ワンタイムパスワードでの認証コードが変わります。
TOTPに対応した無償のクライアント・ソフト(ソフトウエアトークン)としては
Google Authenticator
- iOS/androidに対応
- バックアップ機能なし
Authy
- iOS/android 対応
- Windows/Mac/Linux 対応 (Chromeブラウザの拡張機能)
- Chrome OS 対応
- バックアップ機能あり
iiJ SmartKey
- iOS/android 対応(日本語対応)
WinAuth
- Windows 対応
などです。他にもRFC 6238に準拠したTOTPに対応の有償のハードウエアトークンやソフトウエアトークンなどもあります。
自分の環境に合ったソフトウエアトークンを、自分のスマフォやPCにインストールして利用してください。
サーバー側の機能としては
- AWSやクラウド上で運用出来るWebサーバー
- 多要素認証に対応(ワンタイムパスワード & ID / パスワード)
- CentOS で動作
- システムの導入・運用&保守が簡単な事
の条件を満たすサーバーとして、CentOS / RedHat で動作する
「Powered BLUE 870/OTP 」を利用します。
このサーバーは、GUIからの操作で全ての設定/運用/保守が行なえるオールインワンのアプライアンス・サーバーです。ひとり情シス環境でも簡単に運用が出来ます。またSSLクライアント認証との併用も可能です。
「Powered BLUE 870/OTP 」のワンタイムパスワードの方式としては、Google、Amazon、Microsoft、Facebook、仮想通貨のサイトなどでも、一般的に使われているGoogle Authenticator(*1) やFreeOTPのトークン(パスワード生成器)のフォーマットに対応しています。
(注意 *1 Google などのアカウントやサービスを利用しているわけではありません)
ユーザー側では、Google Authenticator / Authy / iiJ SmartKey / WinAuth などのトークンから「Powered BLUE 870/OTP 」のワンタイムパスワード認証機能を利用することが出来ます。
「Powered BLUE 870/OTP 」のベースとなるCentOS で動作する「Powered BLUE 870 」インターネットサーバーは、AMIとして登録しています。ウイザードに従って簡単にセットアップが出来ます。
AWS / AMI でのPowered BLUE サーバーのセットアップ方法
に沿って、「Powered BLUE 870」サーバーの設定します。
仮想サイトを作成
Webサイトを運用する仮想サイトを作成します
例 test-opt.mubit.com
Webページを作成
仮想サイトにWebページを作成。Webページは、手動でのWebページデータの設置の他に、フリープラグインのWordPressでのWebページの作成も出来ます
Powered BLUE へのWordPressのインストール&設定を参照
仮想サイトのWebページをLet’s Encrypt/自動更新対応で常時SSL化する場合には、
Powered BLUEの仮想サイトへLet’s Encryptを設定を参照
認証設定
仮想サイトのWebへアクセス時にワンタイム・パスワード認証を設定する
- 仮想サイト&ディレクトリを指定
- 例 サイトのトップdir / に 認証設定の場合
- SSL接続強制の有無
などを指定します
ワンタイムパスワード認証設定
- ユーザーを登録(ユーザーの一括登録も出来ます)
- ユーザー毎にへワンタイムパスワード認証を許可/不許可を設定します
- 例 鈴木 二郎 へワンタイムパスワード認証を有効に設定
共有鍵の表示
- ユーザ側のソフトウエアトークンを起動して、QRコードをスマフォで読み撮り共有鍵を登録します
- QRコード読み撮りのカメラの無いPCなどにもコード表示で共有鍵の登録が出来ます(文字列表示)
- 共有鍵はユーザー毎に異なります
利用端末の設定
ユーザーが利用する端末へのソフトウエアトークンのインストールは
を参照下さい
アクセス手順
1)ワンタイムパスワードの表示
2)Webサイトにアクセス ID/パスワード/ワンタイムパスワード入力
3)2要素認証の成功後 Webサイトの表示
リバースプロキシ連携
「Powered BLUE 870/OTP 」はワンタイムパスワード認証のサーバーにリバースプロキシも同居させての運用(オールインワン運用)にも対応しています。
ワンタイムパスワード認証後に、既存のWebサービスにリダイレクトさせることが出来ます。
連携例
既存のWebサービスとの連携の例
- NTTデータ イントラマートワークフロー
- エイトレッド X-point
- NIコラボスマート
- 楽々Workflow II
- eValue NS
- サイボウズ
- デスクネッツ
- Active! mail
- Powere egg
- RoundCube
- Aipo
- WaWaOffice
- Seagull Office
- OpenWebMail
- Zabbix
- Proself
- FileBlog
- MosP勤怠管理
ワンタイムパスワードでのWeb認証運用の例
1)学習塾のWebページを運用
特定のWeb ページは、ワンタイムパスワード認証で塾の生徒にのみに
アクセスさせる
小学1-2年の生徒でも、簡単にApps StoreやGoogle playなどからソフトウエアトークンのソフトを
入手して自分のスマフォに入れて使うことが出来ます
2)会社のWebページを運用
特定のページは、ワンタイムパスワード認証で社員やパート、会員のみに
アクセスさせる
パートの主婦の方でも、Apps StoreやGoogle playなどからソフトウエアトークンのソフトを
入手して自分のスマフォやPCに入れて使うことが出来ます
3)既存で運用のWebへの認証
ワンタイムパスワード認証のWebサーバーで認証後に
リバースプロキシで、既存のWebサイトへリダイレクト
Powered BLUE 870/OTP の運用先としては、AWS/EC2以外にも
- Fujitsu Cloud Service for OSS / 富士通
- Enterprise Cloud / NTT Communications
- VMware / Hyper-V
- Azure / Microsoft
- ALTUS (アルタス)/ GMOクラウド
- WebARENA / NTTPC コミュニケーションズ
- スマートコネクトVPS / NTTスマートコネクト
- VPS
などでも運用が可能です。
多要素認証
ワンタイムパスワード認証&SSLクライアント認証の併用時のWebサイトの構築・運用例です。多要素認証でさらに高い安全性を確保したい場合に有効です。
終わりに
ワンタイムパスワード認証やSSLクライアント認証でWebサイトの認証を強化したい方、既存で運用のWebサイトへのアクセスに認証機能を導入したい方。デモ環境で試してみたい方や詳しい話を聞いてみたい方などは、ムービットの お問い合わせフォーム からご連絡ください。