OneLoginのRADIUS機能をテスト

ゼロトラスト

OneLoginにはRADIUSの機能があります。つまりRADIUSプロトコルでOneLoginのユーザー情報を利用し認証をすることができます。(RADIUSに関しては下記が詳しいです)

OneLoginのRADIUS機能は次のように作成することができます。

  1. 上部の管理者メニュー「Authentication → RADIUS」を選択します。
  2. 右上にある「New Configration」ボタンでRADIUSの設定を作成します。

今回のRADIUSの設定は次のようにしています。

  • Secret: 適当な文字列
  • IP Address: NAS(Network Access Server)のIPアドレス(今回はテストクライアントのIPアドレス)

OneLogin側の設定が終わったら、テストクライアントの用意です。テスト方法は下記を参考にFreeRADIUSの「radtest」コマンドを利用しました。(というかそのままです)

まずはFreeRADIUSのインストールです。今回はAWSのEC2で下記のUbuntuを起動して作業しています。

Ubuntuなので、「apt-get」で次のようにインストールします。

$ sudo apt-get -y install freeradiusCode language: JavaScript (javascript)

「radtest」は次のように利用できます。

$ radtest -h
Usage: radtest [OPTIONS] user passwd radius-server[:port] nas-port-number secret [ppphint] [nasname]
-d RADIUS_DIR  Set radius directory
-t <type>  Set authentication method type can be pap, chap, mschap, or eap-md5
-P protocol  Select udp (default) or tcp
-x  Enable debug output
-4  Use IPv4 for the NAS address (default)
-6  Use IPv6 for the NAS addressCode language: JavaScript (javascript)

今回のコマンド引数は次の通りです。

  • user: OneLoginユーザーのEmail(デフォルト設定)
  • passwd: OneLoginユーザーのPassword(デフォルト設定)
  • radius-server: radius.us.onelogin.com(詳しくはこちら)
  • nas-port-number: 0
  • secret: OneLoginのRADIUS設定のSecret(ここでは「test」)

実際に実行してみると下記のように成功しました。

$ radtest xxx@xxx.xxx yyyyyyyy radius.us.onelogin.com 0 test
Sent Access-Request Id 61 from 0.0.0.0:49048 to 52.34.255.206:1812 length 92
	User-Name = "xxx@xxx.xxx"
	User-Password = "yyyyyyyy"
	NAS-IP-Address = 172.31.8.172
	NAS-Port = 0
	Message-Authenticator = 0x00
	Cleartext-Password = "yyyyyyyy"
Received Access-Accept Id 61 from 52.34.255.206:1812 to 172.31.8.172:49048 length 20Code language: JavaScript (javascript)

失敗(パスワード間違い)は次のようになりました。

$ radtest xxx@xxx.xxx zzzzzzzz radius.us.onelogin.com 0 test
Sent Access-Request Id 12 from 0.0.0.0:58247 to 52.34.255.206:1812 length 92
	User-Name = "xxx@xxx.xxx"
	User-Password = "zzzzzzzz"
	NAS-IP-Address = 172.31.19.247
	NAS-Port = 0
	Message-Authenticator = 0x00
	Cleartext-Password = "zzzzzzzz"
Received Access-Reject Id 12 from 52.34.255.206:1812 to 172.31.19.247:58247 length 20
(0) -: Expected Access-Accept got Access-RejectCode language: JavaScript (javascript)

OneLogin側でも上部の管理者メニュー「Activity → Events」からログを確認することができます。

下記のようにRADIUS(Test)に対する認証成功(authenticated) と認証失敗(rejected)が確認できます。

ログ(行)をクリックすると次のように詳細情報(認証成功時)も表示されます。

認証失敗時の詳細情報は下記となり、パスワード間違いで失敗していることも確認できます。

RADIUSとの接続がうまくいかない場合は、反射的にFreeRADIUSの「radtest」が使えると思います!