もちろん、最初のステップは、 ガイドに従って、OpenLDAP ディレクトリの設定、初期化、エントリの追加を行うことです。 ここでは、一貫したセットアップ体験を提供するために、例示された認証情報を利用することにします。
LDAPサーバーの設定と同様に、LiferayサーバーとLDAPサーバーが通信できるようにし、OpenLDAPのポートを開いて2つのサーバーが互いに通信できるようにする必要があります。
Liferay Portal > Control Panel > Portal Settings > Authentication > LDAP で設定・確立する予定です。
OpenLDAPとLiferayを連携させるためには、このページでLDAP Enabledがチェックオフになっていることを確認してください。 今回のテスト目的では、LDAPを有効にし、Liferayのシングルユーザーインポートを可能にします。 つまり、LiferayはLDAPサーバーからすべてのユーザーをインポートするのではなく、ユーザーがポータルにサインオンしようとした場合に、そのユーザーの情報をインポートすることになります。
OpenLDAPサーバーをLiferayにマッピングする。
LDAPサーバー」の「追加」ボタンをクリックし、ディレクトリをインポートするLDAPサーバーを追加します。 このページでは、OpenLDAPの管理者アカウントを入力し、各ユーザーにインポートされる特定の属性を簡単にマッピングすることができるようになります。
OpenLDAP固有の値を使用しているため、OpenLDAPラジオバブルを選択し、「Reset Values」ボタンをクリックしてください。 これにより、設定可能なフィールドが入力され、共通のマッピングが確立されます。
接続
1. OpenLDAPサーバーを収容しているマシンのアドレスとポート番号を取得する。 私の例では、OpenLDAPサーバーのホスト名を "openldaptest "として割り当てています。 ここでは、以下のldap://openldaptest:389を使用することにします。 LDAPの追加ページで、このアドレスをBase ProviderのURLとして入力します。
2. Liferay にインポートを実行させたい Base DN の CN を取得する。 基本的に、Base DNはベース識別名で、Liferayが検索できるように許可している最上位のレベルです。 私の例のベースDNは、dc=maxcrc,dc=comとなります。
3. プリンシパルのCN(LDAPサーバーの管理者アカウントのマッピングなど)を入力します。 プリンシパルをcn=Manager,dc=maxcrc,dc=comに設定しました。
4. 認証情報]で、[校長]のパスワードを入力します。 私のパスワードは「Secret」です。
5. 接続が適切に行われ、LiferayがOpenLDAPディレクトリをプリンシパルとして通信できることを確認するために、「Test LDAP Connection」をクリックします。 サーバー、ポート、ベースDN、プリンシパルの認証情報が正しく入力されていれば、LiferayがLDAPサーバーに正常に接続されたことを示すポップアップが表示されます。 この場合は、残りの手順で進めてください。 LiferayがLDAPサーバーへの接続に失敗したことを示すメッセージが表示された場合、各フィールドが適切に設定されていることを確認してください。
ユーザー
Users "セクションのフィールドでは、ユーザーがどのようにマッピングされるかを決定することができます。 LDAPユーザーはそれぞれ固有の属性を持っているので、ユーザーをインポートする際にこの情報を引き出すようにLiferayに指示するだけです。
1. Authentication Search Filterは、指定したBase DNからユーザーを「見つける」ために使用する検索フィルターです。 この検索フィルターは非常に柔軟で、異なるトークンに基づいてユーザーを検索するように設定することができることに注意してください。 このデモでは、メールアドレスでユーザーを検索することにします。 フィールドには(mail=@email_address@)と表示されます。 これは、LiferayがOpenLDAPディレクトリをチェックし、"mail "という属性が割り当てられたすべての要素をチェックするように設定されていることを意味します。
2. Import Search Filterは、インポートするユーザーに特定の属性が割り当てられていることを指定します。 例えば、Base DNに含まれるオブジェクトクラス "inetOrgPerson "を持つすべての人を見つけたいとします。 検索フィルタは、(objectClass=inetOrgPerson)と読みます。
3. ユーザーマッピング
一般的に、ユーザーマッピングは非常にシンプルです。 LDAP設定のこの部分で行っているのは、ユーザーを設定する際にLiferayがLDAPサーバーからどの属性を拾うかを設定することです。
スクリーンネーム:このフィールドでは、どのLDAP属性がユーザーのLiferayスクリーン名を識別するかをマッピングすることができます。 ここでは、通称を示す "cn "を使用します。
パスワード:このフィールドでは、どのLDAP属性がユーザーのLiferayパスワードを特定するかをマッピングすることができます。 ここでは、"userPassword "を使用します。
メールです:このフィールドでは、どのLDAP属性がユーザーのLiferayメールを識別するかをマッピングすることができます。 メール」を利用することになります。
フルネームです:ユーザーのフルネームを含む属性をLiferayアカウントにマッピングすることができます。 このフィールドはオプションです。
First Name(ファーストネーム)です:これは、ユーザーの与えられた名前(つまりファーストネーム)を含む属性を、そのユーザーのLiferayアカウントにマッピングすることを可能にします。 私の例では、このフィールドは "givenName "にマッピングされています。
ミドルネームです:これは、ユーザーのミドルネームを含む属性をLiferayアカウントにマッピングすることができます。 このフィールドはオプションです。
Last Name(姓)です:これは、ユーザーの姓や姓を含む属性をLiferayのアカウントにマッピングすることができます。 この項目は必須項目です。 従来は、このフィールドは "sn "にマッピングされていた。
ジョブタイトルです:これにより、ユーザーの役職を含む属性をLiferayアカウントにマッピングすることができます。 私の場合は「タイトル」に設定しています。
Portrait(ポートレート):このフィールドでは、LDAPユーザーリストにマッピングされたユーザーのポートレートをインポートすることができます。
Groupを指定します:ユーザーのGroupを含む属性をLiferayのアカウントにマッピングすることができます。
UUID: ユーザーのUUIDを含む属性をLiferayアカウントにマッピングすることができます。
必要なフィールドをすべて設定したら、「LDAPユーザーのテスト」をクリックして、適切にマッピングされたユーザーが表示されているかどうかを確認します。 うまくいったら、次に進む! そうでない場合は、LDAPユーザーに関連する適切なマッピングに変更することを確認してください。
グループ
グループ」の下に続くフィールドでは、グループのマッピング方法を決定できます。
a. Import Search Filter(インポート検索フィルター):このフィールドは、インポート時にLiferayが定義された属性を検索し、それをグループとして識別することを指示します。 私の例では、(objectClass=groupOfUniqueNames)としています。
グループマッピング
グループ名です:インポートした場合、グループ名はどうなりますか? 私の場合は、cnで呼び出すように設定しています。 このフィールドは "cn "と表示されます。
説明します:Liferayにインポートする際、このグループはどのように記述されるのでしょうか? OpenLDAPのグループに、特定の属性に設定された記述がある場合、このフィールドにマッピングすることができます。 私のは "description "に設定されています。
ユーザー:このマッピングは、"どのユーザーがこのグループに属しているか?"という問題を扱います。 私の例では "uniqueMember "に設定されています。
エクスポート
Export 機能では、作成したユーザーが OpenLDAP ディレクトリのどこに追加されるか(Base DN の範囲内)、またこのユーザーに割り当てられるオブジェクトクラスを設定することができます。 また、グループでも同様のことが可能です。 なお、Exportsは有効にしておく必要があります。
テストケース
セットアップが終わった! それでは、その様子をご覧ください。
LDAPサーバーに作成したユーザー「John Doe」を使って、メールアドレス「john.doe@liferay.com」とuserPassword「test」でポータルにサインインしてみます。 LDAPの設定が適切に行われていれば、JohnはLiferayにログインできるようになります。
共通の課題
1. LiferayがOpenLDAPサーバーと通信できない。
解決方法 コントロールパネル > ポータル設定 > 認証 > LDAP > LDAPサーバーの設定を確認し、LiferayサーバーがLDAPサーバーと通信可能であることを確認します。 両方のサーバーからpingを実行し、相互に通信できることを確認する。 ファイアウォールの設定により、指定されたポートがブロックされていないか確認してください。
2. "LDAP必須 "を有効にするとOpenLDAPでログインできない
解決方法: LDAPサーバーの設定を確認し、マッピングが正しいことを確認します。 上記の問題と同じで、プリンシパルの認証情報が正しく設定されているか、またはOpenLDAPサーバーのアドレスとポートが変更されていないことを確認します。 また、OpenLDAPのslapdが動作し、正しく設定されていることを確認してください。