Alibaba Cloud IDaaSを使ってVPN Gatewayに2要素認証を導入してみた
はじめに
本記事では、Alibaba Cloud国際サイトにある「IDaaS」というプロダクトをVPN Gatewayと組み合わせることで、SSL-VPN接続時にID+パスワード認証を追加導入検証結果をご紹介します。
IDaaSとは
IDaaS(Identity as a Service)とは、クラウド上の様々なサービスのID管理を一元的に行うクラウドサービスのこと。
クラウドサービス間でシングルサインオンが可能になったり
利用するユーザー側においてパスワード管理が減り、利便性向上にも貢献すると言われております。
代表サービス例:Okta、Onelogin、Azure Active Directoryなど
構成図
今回はこのような構成でVPN Gateway接続時に、従来の証明書認証に加えてADのユーザIDとパスワード情報も加えることで2要素認証を実現します。
Alibaba Cloud東京リージョンにVPN Gateway(SSL-VPN)を構築して
Windows ADサーバは別VPCの東京リージョンに配置しています。
IDaaSはPublic Previewなのでシンガポールリージョンのみの対応となりますが
IDaaSと各インスタンス間は接続時の認証通信のみですので、リージョンの場所で大きく不利になることは無いと思います。
IDaaSインスタンスを購入
Alibaba Cloudにログインし、コンソールは英語表示に切り替えておきましょう。
プロダクト検索バーで「IDaaS」と入力すればHITするはずです。
プロダクトのコンソール画面へ遷移すると、このようなエラーが表示されるかもしれません。
これはリージョン選択が「東京リージョン」になっており、IDaaSがリリースされていないリージョンのためです。
なので画面左上部よりシンガポールリージョンを選択して、Webブラウザのリロードをしましょう。
ちゃんとIDaaSのコンソール画面が開きましたね。右側にある[Buy IDaaS]ボタンを押してインスタンス作成を進めます。
Public Preview版なので選択可能な要素はなく、価格も$0です。 このインスタンスは1ヶ月間有効で、期限を越えると無効のインスタンスとなります。規約同意いただけたら、右下の[Buy Now]ボタンをクリックします。その後決済画面になりますが、こちらも購入処理を進めます。(繰り返しですが$0です)
IDaaSのコンソール画面に戻ると、インスタンスが正常に作成されていますね。
インスタンスIDをクリックして、早速設定していきましょう。
認証ソース選択
IDaaSの認証ソースとしてADサーバを追加します。
- 左カラムから「Authentication Sources」を選択
- Add Authentication SourceからLDAPを選択
続いてActive Directroyの情報を入力します。
ADは今回Alibaba Cloud上に作成していますが、オンプレや他社クラウド上でも問題ありません。
グローバルIPでアクセスできればOKです。
3.「Name」は任意
4.「LDAP URL」はldap://<ADのIP>
5.「LDAP Base」はDN形式でドメイン名を入力。
私のADドメインはMS界隈でお馴染みのcontoso.com
としています
6.「LDAP Account」はDomainAdmin権限のあるADユーザをDN形式で入力
7. 上記ユーザのパスワードを入力
8. ユーザ名の抽出フィルタを入力します
ADの場合はsAMAccountName = $ username $
オプションの設定です。
9.「Verify with userPassword」 LDAPに登録されたパスワードとIDaaSが管理するパスワードの比較を行うには有効化
10.「Update IDaaS Password」 LDAPを経由してIDaaSにログインした後、IDaaSで管理するLDAPユーザのパスワードを更新するには有効化
11.「Display」認証ソースロゴをログイン画面に表示するには有効化
※今回のVPN Gateway構成では特に不要です
設定が完了すると、Authentication Source Nameの一覧に「LDAP」が追加されます。
追加されたLDAPの「Status」トグルをオンにします。
Alibaba CloudプロダクトとAD連携させるための設定を行います。
12. 左カラムの「Security Settings」→中央タブ「Cloud Product AD Authentication」へ遷移する
13.「AD Authentication Source」から先ほど設定したLDAP設定を選択
14. Enableトグルをオンにして、Saveする。
LDAPユーザの同期
Alibaba Cloud IDaaSはActive Directoryと同じくディレクトリ機能も有しています。
IDaaSで認証するためには、ADのディレクトリ情報をIDaaSのディレクトリと事前に同期させる必要があります。
AD情報を再び入力していきます。
3.「AD/LDAP Name」は任意の名前
4.「Server Address」はADのIPアドレス
5.「PortNumber」はADなら389が標準ポート
6.「Base DN」は参照の認証を利用した際にユーザを検索するルートとなるエントリ地点を入力。
今回はdc=contoso,dc=com
7.「Administrator DN」はAdministrator権限ユーザをDNで指定する
今回はcn=administrator,cn=Users,dc=contoso,dc=com
8.「Password」は上記ユーザのパスワード
9.「Type」はWindowsAD
10.「From LDAP to IDaaS」はEnable
11.「Provision from IDaaS to LDAP」はEnable
続いて同期するにあたっての照合条件を設定します。
- タブを「Field Matching Rules」に切り替える
2.「Username]はcn
3.「External ID」はuid
4.「Password Attribute」はunicordPwd
5.「User Unique Identifier」はDistinguishedName
6.「Email」はmail
7.「Phone Number」はtelephoneNumber
8.「Default Password」は任意のパスワード
最後にSaveします
同期するための準備が完了しました。
IDaaSとADの同期
早速IDaaSとADのディレクトリを同期してみましょう。
- Import→LDAP-Accountを選択
2.先ほど追加した同期先ADサーバ名の右にある「Import」を押下し、表示された画面で「OK」をクリック
3.ユーザの追加が成功すれば、各ユーザのVerification Result列に「Success」と表示される。画面右上の「Confirm Import」ボタンをクリックしてインポートを完了させる
※1ユーザでもエラーがあると下記画像の様にインポートが失敗する。
エラーの原因を見直し再度試すか、インポートするユーザから除外(Remove)し
「Confirm Import」ボタンを押下する
(メールと電話番号フィールドは入力必須)
これでIDaaS側の設定は完了です
VPN Gateway側の設定
VPN GatewayとSSL Serverのインスタンスは既に作成済みです。
ユーザ認証を導入するためにSSL Serverに下記の編集を行います。
1.「Advanced Configuration」のトグルをオン
2.「Two-factor Authentication」のトグルをオン
3.「IDaaS Instance Region」からシンガポール リージョンであるap-northeast-1
を選択
4.初回IDaaS選択時は権限が無い為「You hace no permissions…」のリンクをクリックする
5.VPN GatewayにIDaaSへのアクセス許可を与える
6.「IDaaS Instance」から先ほど作成したIDaaSインスタンスを選択してOKをクリックして設定を完了する。
さっそく接続
クライアント端末にクライアント証明書をインポートし
OpenVPNクライアントソフトでVPN Gateway宛に通信を試行すると
ユーザとPWを求められる画面が表示されました
(本検証ではTunnelblick 3.8.4aを使用)
IDaaSにインポートしたADユーザのユーザ名とPWを正しく入力し
OKボタンをクリックすると接続が成功しました