Liferay DXPはLDAP接続をサポートし、Liferay Cloud はオンプレミスネットワークに接続するためのVPN機能を提供します。 この記事では、DXPCのLiferay DXPをVPN経由でオンプレミスのLDAPに接続させる手順を概説します。
- VPS UbuntuにVPNサービスをインストールする
- VPSのUbuntuでLDAPサービスを設定する
- DXPC内の環境をVPNサーバーに接続する
- VPNの後ろのLDAPサーバーに到達するようにLiferay DXPを設定する
1. VPS UbuntuにVPNサービスをインストールします。
テストのために、任意の場所にVPSを設置して、以下の手順でVPNを設定します。
- 任意のクラウドサービスでUbuntuのボックスを持つ場合、18.04 LTSなどがあげられます。
- VPNをインストールして構成するには、VPN設定例の指示に従ってください。 OpenVPNでもIPSecでもどちらでも動作します。
注意: このガイドの ステップ8では、FORWARD
ルールをLDAPサーバーのIPと一致するように調整する必要があります。 以下の手順で行います。 - そのために、Ubuntuの StrongSwan の助けを借りてIPSecを使用します正しくセットアップされたら、次のコマンドを実行してテストします。
sudo systemctl status strongswan
以下のように
active(running)
に表示されています。strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-04-21 04:48:10 UTC; 2 days ago Main PID: 878 (starter) Tasks: 18 (limit: 1152) CGroup: /system.slice/strongswan.service ├─878 /usr/lib/ipsec/starter --daemon charon --nofork └─946 /usr/lib/ipsec/charon --debug-ike 1 --debug-knl 1 --debug-cfg 0
StrongSwanはUDPポート500と4500を経由して動作するので、このコマンドでVPSでファイアウォール が開いているかどうかを確認します。
sudo ufw status numbered
許可されたポートについての情報が得られるはずで、UDPポートの2列を含む必要があります。
Status: active To Action From -- ------ ---- [ 1] 500,4500/udp ALLOW IN Anywhere [ 2] OpenSSH ALLOW IN Anywhere [ 3] 500,4500/udp (v6) ALLOW IN Anywhere (v6) [ 4] OpenSSH (v6) ALLOW IN Anywhere (v6)
-
この時点で、次の情報を利用できるようになります:VPN サーバー IP (VPS 公開 IP)、VPN ポート 500、
myuser
、mypassword
、ca-cert.pem
。セクション3の内容を使用して、DXPCからVPNに接続します。 - LDAPのIPアドレスに注意してください。VPNの背後にあるLDAPへの着信接続を転送するためのルールをファイアウォールで定義する必要があります。
この例では、LDAPサービスを同じVPS内で実行します。つまり、VPNプライベートネットワーク10.10.10.xからVPSのローカルIPアドレスに接続を転送する必要があります。 したがって、コマンドを使用してローカルプライベートIPを取得します。ip addr
- NIC カード eth0
10.0.15.5/16
のローカル IP をメモしておきます。1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 66:9b:11:0f:76:dd brd ff:ff:ff:ff:ff:ff inet 206.189.43.70/20 brd 206.189.47.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.15.0.5/16 brd 10.15.255.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::649b:11ff:fe0f:76dd/64 scope link valid_lft forever preferred_lft forever
- このコマンドで
Forward
ルールを編集します。sudo nano /etc/ufw/before.rules
-
最後から2番目の行までスクロールします。これには、
FORWARD
ルールについて記載されています。-s 10.10.10.10.0/24
を-s 10.15.0.0/16
に置き換えてください。 -
Ctrl O
で保存し、Ctrl X
でファイルを閉じます。 - コマンドでファイアウォールサービスを再起動します。
sudo service ufw restart
コマンドでファイアウォールサービスを再起動します。
2. VPSのUbuntuでLDAPサービスを設定する
LDAPサービスの役割を果たすApacheDSを使用します。 これらの手順でLDAPの設定を機能させることができます。
- ApacheDSを実行するには、JRE / JDKが必要です。 次の手順に進む前に、インストールしておく必要があります。
- zipファイルをダウンロードし、scpコマンドでVPSにアップロードします。: apacheds-2.0.0.AM25-preloaded.zip
- これは、サンプルデータがプリロードされているApacheDSです。それを解凍します。 bin フォルダに移動して 、このコマンドを実行して ApacheDS を起動します。
./apacheds の実行
- ApacheDSが正常に起動した後、ポート
10389
でサービスが待機していることを確認します。現在のターミナルを閉じるのではなく、別のターミナルを開く必要があります。netstat -ntpl
3. DXPクラウド内の環境をVPNサーバーに接続する
Connecting a VPN to Liferay Cloud で説明されている手順に従い、VPN接続情報を入力します。
-
Server Address:VPSのパブリックIPアドレス。 また、ポートが必要で、
500
がデフォルト値です。 -
Account Name: VPNサーバで設定したユーザ名
myuser
-
Password: VPNサーバに接続するためのパスワード
mypassword
-
Certificate: 証明書コードです。 テキストエディタで
ca-cert.pem
を開いて、テキスト全体をコピーし、このフィールドに貼り付けます。
同じページでポートフォワーディングも必要になります。 次のフィールドに入力されます。
-
Forwarding IP:LDAP サーバー IP アドレス
10.15.0.5
です。これはVPNの背後にあります(実際には、上記で計算したVPSのローカルIPです) -
Forwarding Port: VPNの背後にあるLDAPサーバーポートです。ApacheDS LDAP ポート
10389
を使用します。 -
Local Hostname:自動生成された
vpn
です。ここで言う“Local”は、実際にはDXPCでローカルに存在しています。 -
Local Port:VPNのローカルポート番号です。 このフィールドは、 を自動生成することもできますし、任意のポートを記入することもできます。 例えば、
33389
を使用することができます。 このポートを使用して、Liferay DXPのLDAP サーバーを設定します。
以下に、この例で入力された入力を示します。
接続に成功すると、このように表示されるはずです。
4. VPNの後ろにあるLDAPサーバーにLiferay DXPが到達するように設定する
Liferay DXP 7.2でLDAPサーバーを設定するには、以下の手順に従います。
- DXPC環境のWebサーバのアドレスに移動します。 管理者としてLiferayにサインインします。
- メニューの中にあるコントロールパネル > 設定 > インスタンス設定に移動します。
- セキュリティグループ内の LDAP を選択します。
- サーバセクションを選択し、追加ボタンをクリックします。
- サーバ名には
ApacheDS LDAP via VPN
と入力してください。 -
接続の見出しの下に次のように入力します:
- ベースプロバイダの URL:
ldap://vpn:33389
- ベース DN:
dc=training,dc=liferay,dc=com
- プリンシパル:
uid=admin,ou=system
- 認証情報:
secret
- ベースプロバイダの URL:
-
LDAP接続のテスト ボタンをクリックして、Liferay がLDAPサーバーに接続できることを確認します。
これで、LDAP接続が機能することを確認しました。Liferay DXPは、VPNサーバーの背後にあるLDAPサーバーに到達できます。
5. LDAPを使用した認証の設定
では、上記のLDAP設定でLiferay DXPが認証できるようになる設定をいくつか確認してみます。
- LDAPサーバーの編集と同じ画面で、下にスクロールして ユーザー の項目に移動します。
- 以下の項目が正しく記入されていることを確認してください。
- 認証検索絞り込み:
(mail=@email_address@)
- 検索フィルタのインポート:
(objectClass=inetOrgPerson)
- UUID:
uuid
- スクリーン名:
cn
- メールアドレス:
mail
- パスワード:
userPassword
- 名:
givenName
- 姓:
sn
- 職名:
title
- グループ:
groupMembership
-
LDAPユーザーのテスト をクリックして、フィールドが正しく入力されていることを確認します。 LDAPディレクトリからのユーザーのリストが表示されます。
- グループ セクションまでスクロールします。
- 以下の項目が正しく記入されていることを確認してください。
- 検索フィルタのインポート:
(objectClass=groupOfUniqueNames)
- グループ名:
cn
- 説明:
description
- ユーザー:
uniqueMember
-
LDAPグループのテスト ボタンをクリックして、フィールド が正しく入力されていることを確認します。以下の3つのグループが表示されます。
- 保存 をクリックして設定を保存し、 サーバーリストに戻ります。
- インスタンス設定 > LDAPで、一般 セクションを選択します。
-
LDAP認証をオンにするには、有効チェックボックスをオンにします。 次に、保存をクリックして保持します。
別のブラウザまたはシークレットウィンドウを開き、 cbuckley@royalnavy.mod.uk と パスワードでログインすると、LDAP認証を介してLiferayにログインできるようになります。