ArrayにおけるGoogle AuthenticatorとOAuth(1/2)

Google Authenticator

ごっちゃになってませんか?Google AuthenticatorとOAuth

商談をしていると「グルーグル オース」という言葉がでることが頻繁にあります。
先日もお客様と会話をしていると話が通じていない感じがあり、先方は「オーセンティケーター」のことを言っていることで理解できました。
今回はGoogle AuthenticatorとOAuthのことに関して書かせていただきます。
先ずはそれぞれの説明です。

•Google Authenticator

Googleが開発した二段階認証(二要素認証)を行うトークンソフトウェア。RFC 6238で定義されたtime-based One-time Password Algorithmを使用しています。
iPhone, Androidにインストールされるアプリの名称で、サーバで稼働するOTPの作成、検査モジュールでもあります。

・OAuth

オープン認証、保護されたデータを公開して対話する簡単な方法で、SSOで使われているSAMLよりも新しい標準です。OAuth 2.0はIETF RFC 6749/6750に定義されています。
ユーザーアカウントをホストするサービスにユーザー認証を委任・機能し、ユーザーアカウントを、ユーザーの資格情報を共有せずにサードパーティのサービスで使用できるようにします。
OAuthはHTTPS上で動作し、デバイス、API、サーバー、アプリケーションを認証情報ではなくアクセストークンで認証します。

このようにGoogle Authenticatorはトークンソフト、OAuthは認証方式となります。
このGoogle AuthenticatorとOAuth、弊社製品で利用方がありますので解説させていただきます。

AGとGoogle Authenticator

Arrayには自社製OTPのMotionPro OTPがありますが、Google Authenticator を使うと、MotionPro OTPをつかわず、OTPによる認証システムをAG/vxAGで利用できます。

•必要な構成 
 •AG/vxAG
 •LINUXサーバ(そのうえで稼働するFreeRadiusとGoogle Authenticatorモジュール)
 ※現在Google Authenticatorを組み込めるRadiusFreeRadiusのみ。

以下のような流れです。

1.ユーザは利用するデバイスでArray AG/vxAGのログイン画面を開きます。
2.スマホでGoogle Authenticatorを開きます。
3.開くと6桁の数字(上記例では”562234″)が表示されます。
4.スマホのAG/vxAGのログイン画面で、ユーザIDを入力
5.次に自分のパスワード+Google Authenticator上の表示されている6桁の数字(上記例では”562234″)をパスワードボックスに入力しENTERします。
6.これを受け取ったAG/vxAGはRADIUSにユーザID,パスワードを送信します。
7.RADIUSはパスワードの最後の6桁をGoogle Authenticatorモジュールにおくります。
8.Google Authenticatorは受け取った6桁の値がが正しいOTPトークンかチェックします。
9.ただしければACCEPTをRADIUSに返信し、RADIUSはArrayAG/vxAGにACCEPTを返信します。
10.ArrayAG/vxAGはRADIUSからACCEPTを受信したら、ユーザの認証をOKとします。

メリット:ユーザ側も現在の仕組みをあまり変えないでOTPを追加できる。
デメリット:この方式を使うと、GoogleがiPhone, Android上で動かすアプリを提供しますが、外側に認証サーバを作る必要がある。

Arrayとして提案
Array AVXを利用すると、AVX上にArray vxAGインスタンスとLinux(CentOS)が共存できるため、1台の機器に集約ができます。 

以上です(OAuthに続きます)。
興味あるユーザはハードウエア・仮想ライセンスをご用意しますので、是非お試しください。
The network functions platform company「Array NETWORKS」