Db2-ldap
DB2-LDAP
前書き
LDAPはライトウェイトディレクトリアクセスプロトコルです。 LDAPは、クライアント/サーバーモデルに基づいており、TCP/IPスタックの上のレイヤーで実行される業界標準のプロトコルであるグローバルディレクトリサービスです。 LDAPは、インターネットディレクトリに接続、アクセス、変更、および検索する機能を提供します。
LDAPサーバーには、ディレクトリツリーの形式で編成された情報が含まれています。 クライアントはサーバーに情報を提供するか、特定の情報に対して何らかの操作を実行するように要求します。 サーバーは、必要な情報があればそれを提供することによってクライアントに応答します。または、必要な情報に対するアクションのためにクライアントを別のサーバーに参照します。 その後、クライアントは別のサーバーから必要な情報を取得します。
ディレクトリのツリー構造は、参加するすべてのサーバーで同じに維持されます。 これは、LDAPディレクトリサービスの顕著な機能です。 したがって、クライアントがどのサーバーを参照するかに関係なく、クライアントは常にエラーのない方法で必要な情報を取得します。 ここでは、LDAPを使用して、オペレーティングシステム認証の代わりとしてIBM DB2を認証します。
LDAPには2つのタイプがあります。
- トランスペアレント
- プラグイン
透過LDAPの構成方法を見てみましょう。
透過的LDAPの構成
透過的なLDAPの構成を開始するには、LDAPサーバーを構成する必要があります。
LDAPサーバーの構成
LDAP内のユーザーおよびグループオブジェクトに関するすべての情報を含むSLAPD.confファイルを作成します。 LDAPサーバーをインストールすると、デフォルトでマシン上の基本的なLDAPディレクトリツリーが設定されます。
以下の表は、変更後のファイル構成を示しています。
コードボックスが黄色で強調表示されているテキストは、次のことを意味します。
DBA user-id =“ db2my1”、group =“ db1my1adm”、password =“ db2my1” Admin user-id =“ my1adm”、group =“ dbmy1ctl”。
上記のファイルを「/var/lib/slapd.conf」という名前で保存し、コマンドに従ってこれらの値を実行して、これらの値をLDAPサーバーに追加します。 これはLinuxコマンドです。 db2コマンドではありません。
LDAPサーバーでDB2ユーザーとDB2グループを登録した後、インスタンスとデータベースをインストールした特定のユーザーにログオンします。 サーバーが配置されているクライアントがリモートであろうとローカルであろうと、クライアントに確認するようにLDAPクライアントを構成する必要があります。
LDAPクライアントの構成
LDAPクライアントの構成は、ファイル「ldap.conf」に保存されます。 構成パラメーターに使用できるファイルは2つあり、1つは一般的で、もう1つは特定です。 最初のものは「/etc/ldap.conf」にあり、後者は「/etc/openldap/ldap.conf」にあります。
以下のデータは、一般的なLDAPクライアント構成ファイルで利用可能です
DB2構成に応じて、サーバーおよびドメイン情報の場所を変更する必要があります。 同じシステムでサーバーを使用している場合は、「host」で「localhost」と記述し、「base」でLDAPサーバーの「SLAPD.conf」ファイルに記述されている構成を構成できます。
Pluggable Authentication Model(PAM)は、認証サービス用のAPIです。 これは、暗号化されたパスワードとposixAccount型の特別なLDAPオブジェクトを使用したLDAP認証の一般的なインターフェイスです。 このタイプのすべてのLDAPオブジェクトは、ポータブルオペレーティングシステムインターフェイス(POSIX)属性を持つアカウントの抽象化を表します。
Network Security Services(NSS)は、セキュリティ対応のクライアントおよびサーバーアプリケーションのクロスプラットフォーム開発をサポートするライブラリのセットです。 これには、SSL、TLS、PKCS S/MIME、その他のセキュリティ標準などのライブラリが含まれます。
このインターフェイスのベースDNと2つの追加のマッピング属性を指定する必要があります。 OpenLDAPクライアント構成ファイルには、以下のエントリが含まれます。
これまでは、LDAPサーバーのホストとベースDNを定義するだけです。
OpenLDAP環境の検証
LDAPサーバーとLDAPクライアントを構成したら、両方の通信を確認します。
- ステップ1 *:ローカルLDAPサーバーが実行されていることを確認します。 以下のコマンドを使用:
このコマンドは、LDAPサーバーを表すLDAPデーモンをリストする必要があります。
これは、LDAPサーバーが実行中であり、クライアントからの要求を待っていることを示しています。 前のコマンドにそのようなプロセスがない場合は、「rcldap」コマンドでLDAPサーバーを起動できます。
サーバーが起動したら、次のコマンドを発行して、ファイル「/var/log/messages/」でこれを監視できます。
ldapsearchを使用したLDAPサーバーへの接続のテスト
ldapsearchコマンドは、LDAPサーバーへの接続を開き、バインドし、特別なパラメーター「-x」を使用して指定できる検索クエリを実行します。 Simple Authentication and Security Layer(SASL)のようなより複雑なメカニズム
LDAPサーバーは、LDAPデータ交換形式(LDIF)のすべてのLDAPエントリを含む以下の応答で応答する必要があります。
DB2の構成
LDAPサーバーとクライアントを使用した後、LDAPで使用するためにDB2データベースを構成する必要があります。 DB2ユーザー認証プロセスにLDAP環境を使用するようにデータベースをインストールおよび構成する方法について説明します。
DB2およびLDAP対話プラグインの構成
IBMは、DB2用のLDAPプラグインを含む無料パッケージを提供しています。 DB2パッケージには、次のそれぞれに対応する3つのDB2セキュリティプラグインが含まれています。
- サーバー側認証
- クライアント側認証
- グループ検索
要件に応じて、3つのプラグインのいずれかまたはすべてを使用できます。 このプラグインは、一部のユーザーがLDAPで定義され、他のユーザーがオペレーティングシステムで定義されている環境をサポートしていません。 LDAPプラグインを使用することにした場合、LDAPサーバーのデータベースに関連付けられているすべてのユーザーを定義する必要があります。 同じ原則がグループプラグインに適用されます。
システムに必須のプラグインを決定する必要があります。 CONNECTまたはATTACHステートメントで指定されたユーザーIDとパスワード検証がクライアントシステムで発生するシナリオで使用されるクライアント認証プラグイン。 そのため、データベースマネージャーの構成パラメーターSRVCON_AUTHまたはAUTHENTICATIONを値CLIENTに設定する必要があります。 クライアント認証は保護するのが難しく、一般的に推奨されません。 クライアントがCONNECTまたはATTACHステートメントを実行し、これが安全な方法である場合、ユーザーIDとパスワードのサーバー側の検証を実行するため、サーバープラグインが一般的に推奨されます。 サーバープラグインは、LDAPユーザーIDとDB2認証IDをマップする方法も提供します。
これで、DB2セキュリティプラグインのインストールと構成を開始できるようになりました。DB2に必要なディレクトリ情報ツリーについて考える必要があります。 DB2は間接認証を使用します。これは、ユーザーがグループに属し、このグループがより少ない権限で付与されたことを意味します。 LDAPディレクトリですべてのDB2ユーザーとDB2グループを定義する必要があります。
画像
LDIFファイルopenldap.ldifには、次のコードが含まれている必要があります。
「db2.ldif」という名前のファイルを作成し、上記の例を貼り付けます。 このファイルを使用して、定義済みの構造をLDAPディレクトリに追加します。
DB2ユーザーとDB2グループをLDAPディレクトリに追加するには、ユーザーを「rootdn」としてLDAPサーバーにバインドして、正確な権限を取得する必要があります。
次の構文を実行して、LDAP情報ディレクトリに、LDIFファイル「db2.ldif」で定義されているすべてのオブジェクトを入力します。
より多くのパラメーターで検索結果を実行する
DB2を使用するためのファイルシステムの準備
LDAPユーザーdb2inst2のインスタンスを作成します。 このユーザーには、ホームディレクトリ内に2つの空のファイルがあるホームディレクトリが必要です。 新しいインスタンスを作成する前に、インスタンスの所有者になるユーザーを作成する必要があります。
インスタンスユーザーを作成したら、ユーザーのホームディレクトリに「.profile」と「.login」というファイルを作成する必要があります。これらはDB2によって変更されます。 このファイルをディレクトリに作成するには、次のコマンドを実行します。
LDAPディレクトリーにDB2に関連するすべてのユーザーとグループを登録しました。これで、インスタンス所有者ID「db2inst2」で「db2inst2」という名前のインスタンスを作成し、実行ユーザーに必要なfencedユーザーID「db2fenc1」を使用できます定義済み関数(UDF)またはストアドプロシージャ。
次に、インスタンスのホームディレクトリを確認します。 「sqllib」という新しいサブディレクトリと、DB2の使用に合わせてカスタマイズされた.profileおよび.loginファイルを確認できます。
DB2でのLDAPサポート用の認証パブリックインの構成
必要なLDAPプラグインを適切なDB2ディレクトリにコピーします。
プラグインが指定されたディレクトリにコピーされたら、DB2インスタンスの所有者にログインし、これらのプラグインを使用するようにデータベースマネージャーの構成を変更するように調整します。
この変更は、DB2インスタンスを起動した後に有効になります。 インスタンスを再起動した後、「IBMLDAPSecurity.ini」という名前のメインDB2 LDAP構成ファイルをインストールして構成し、DB2プラグインが現在のLDAP構成で動作するようにする必要があります。
IBMLDAPSecurity.iniファイルに含まれるもの
次に、現在のインスタンスディレクトリでIBMLDAPSecurity.iniファイルを見つけます。 上記のサンプルの内容を同じものにコピーします。
次に、以下に示す2つの構文を使用して、DB2インスタンスを再起動する必要があります。
この時点で、「db2start」コマンドを試行すると、セキュリティエラーメッセージが表示されます。 なぜなら、DB2セキュリティ構成は、LDAP環境に対してまだ正しく構成されていないからです。
両方の構成をカスタマイズする
slapd.confファイルで構成されているLDAP_HOST名を手元に置いてください。
次に、IMBLDAPSecurity.iniファイルを編集して、LDAP_HOST名を入力します。 上記の両方のファイルのLDAP_HOST名は同一でなければなりません。
ファイルの内容は次のとおりです。
これらの値を変更すると、LDAPがすぐに有効になり、LDAPを使用するDB2環境が完全に機能します。
「db2inst2」ユーザーにログアウトして再度ログインできます。
これで、インスタンスはLDAPディレクトリを操作しています。