#1. はじめに
とあるお客様のプロジェクトで、IBM DataPower Gateway(以降、IDG)でLDAPの設定をしました。導入実績が少ないこともあり、完了までかなり苦労したので、設定のポイントをまとめます。
#2. この記事の前提
以降の内容は以下を前提としています。
- バージョンはV7.5
- LDAPユーザーでIDGにログインし、LDAPグループ毎に異なる権限を付与する
#3. 設定のポイント
重要なポイントは以下の2点を設定です。
- 認証情報の設定: IDGからLDAPサーバーにバインドするための情報を入力する
- 資格情報マッピングの設定: あるグループを特定するための情報を入力する
具体的には、デフォルトのRBMInfo.xmlファイルには既にサンプル構成が記述されていますが、このファイルをカスタマイズしていきます。
-
"InputCredential"タグに、LDAP上に定義されているグループ名を指定する(大文字・小文字が区別されるので注意が必要)。
-
"OutputCredential"タグに、上で定義したグループに与えるアクセス権を指定する(例えば、フル権限を与える場合は、"//*?Access=r+w+a+d+x"と指定する)。
以下の例では、TestGruopグループからwrite権限を外しています。例えば、このグループに所属しているユーザーがWebGUI(またはBluePrint Console)にログインし、構成ファイルを変更しようとしても、"edit"のリンクが表示されないため、所望の振る舞いになっていることが確認できます。
<MapCredentials>
<InputCredential>TestGruop</InputCredential>
<OutputCredential>
*/*/*?Access=r+a+d+x
</OutputCredential>
</MapCredentials>
#4. 設定が上手くいかない場合の考慮点
設定が上手くいかない場合、Error Reportとネットワーク・トレースを取得して問題を切り分けていきますが、IDG独特の考慮点として、Referralメッセージの扱い方を知っておくと有用です。
参考: IBM WebSphere DataPower SOA Appliance: Searching LDAP server results in message "Unknown reply tag 115" or "failed: Referral"
http://www-01.ibm.com/support/docview.wss?uid=swg21404222
IDGはLDAPサーバーからのReferralメッセージを受け取ることができません。LDAPの検索フィルターの対象が広過ぎる場合(最初にリクエストを受け取ったLDAPサーバーに情報がない場合)、クライアントに"他のLDAPサーバーを参照して欲しい"というReferralメッセージをLDAPサーバーがクライアントに返します。ところが、IDGはこのメッセージを処理することができないのでエラーとなります。この場合、LDAP側で対応を取る必要がありますが、例えば、検索フィルターを絞り込むなどしてReferralメッセージを送信させないようにする必要があります。
#5. まとめ
IDGでLDAPを設定する際の考慮点をまとめました。ご紹介した内容を意識して作業に取り組むと、プロジェクトを円滑に進めることができると思います。