Interstage Application Server Smart Repository運用ガイド |
目次 索引 |
第1章 概要 | > 1.4 Smart Repositoryの主な機能 |
Smart Repositoryでは、以下を使用してデータベースへのエントリの追加、および登録済みのエントリの更新をします。
Smart Repositoryでは、エントリの更新時にスキーマのチェックを行いません。
このため、エントリ内の必須属性を削除する、オブジェクトクラスに本来追加してはならない属性を追加してしまうなどの、不適切なエントリの更新を行うと、リポジトリ内の情報が矛盾した状態になってしまいます。エントリの更新を行う場合は、十分に確認して行ってください。
リポジトリのエントリ情報は、コマンドを使用して操作します。
コマンドには、日本語(Shift JIS、EUC)を指定することができます。また、エントリのバイナリデータ(jpegPhotoなど)を操作することができます。
コマンドには、以下の4つがあります。
このうち、ldapmodify、ldapsearch、ldapdeleteコマンドは、SSL機能をサポートしており、SSL機能を使用する場合は、安全に通信することができます。
コマンドの使用方法については、“リファレンスマニュアル(コマンド編)”の“Smart Repository運用コマンド”を参照してください。
コマンドを使用して操作できる機能を以下に示します。
コマンドの機能 |
内容 |
---|---|
エントリ情報の追加 |
リポジトリにエントリ情報を追加します。 |
エントリ情報の更新 |
リポジトリのエントリ情報を更新します。 |
エントリ情報の削除 |
リポジトリのエントリを削除します。 |
エントリ情報の検索 |
リポジトリのエントリ情報を検索します。 |
コマンドの機能の詳細については、“コマンドを使用する”を参照してください。
エントリ管理ツールは、リポジトリに登録されているエントリを管理するためのGUIです。
エントリ管理ツールを使用することにより以下のようなエントリの操作をすることができます。
エントリの操作 |
内容 |
---|---|
エントリ追加 |
エントリを追加するためにエントリ追加画面を起動し、値を入力することにより接続しているリポジトリにエントリを登録することができます。 |
エントリ更新 |
エントリを更新するためにエントリ更新画面を起動し、値を入力することにより接続しているリポジトリにエントリを更新することができます。 |
エントリ削除 |
削除したいエントリを選択し、接続しているリポジトリからエントリを削除することができます。 |
検索 |
接続しているリポジトリに対してエントリを検索することができます。 |
名前の変更 |
接続しているリポジトリ内のエントリを選択し、エントリ名を変更することができます。 |
移動 |
接続しているリポジトリ内でエントリを移動することができます。 |
コピー |
接続しているリポジトリ内でエントリをコピーすることができます。 |
表示モード |
一覧表示域に表示される表示形式を変更することができます。 |
表示オプション |
管理ツールの表示に関するオプションを設定することができます。 |
Application Server上でSmart RepositoryサーバにアクセスするLDAPのアプリケーションを開発することができます。開発言語として、C言語とJava言語が利用できます。詳細については、“アプリケーションの作成(C API)”または“アプリケーションの作成(JNDI)”を参照してください。
エントリの検索操作は、以下のように行います。
検索範囲、およびフィルタについて以下に示します。
検索する指定範囲には、以下の3種類があります。
検索範囲 |
内容 |
---|---|
ベースオブジェクト検索 |
指定したエントリそのものを検索します。 |
ワンレベル検索 |
指定したエントリの1階層下を検索します。 |
サブツリー検索 |
指定したエントリとその階層配下すべてを検索します。 |
フィルタには、以下の5つを指定することができます。
フィルタ |
内容 |
---|---|
指定した値と同じ属性値がある場合に、取り出します。 |
|
指定した部分文字列を含む属性値がある場合に、取り出します。 |
|
指定した値より大きい値の属性値がある場合に、取り出します。 |
|
指定した値より小さい値の属性値がある場合に、取り出します。 |
|
属性値がある場合に、取り出します。 |
また、上記の各フィルタを組み合わせることで、より詳細に指定することができます。以下に組み合わせに使用する論理演算を示します。
論理演算 |
内容 |
---|---|
複数のフィルタを論理積(AND)条件で結びます。 |
|
複数のフィルタを論理和(OR)条件で結びます。 |
コマンド、SDKで、DNに特殊文字を指定するには、その特殊文字の前に“\”(エンマーク)を置いてエスケープするか、または“"”(ダブルクォーテーション)で囲む必要があります。
エスケープが必要な特殊文字を以下に示します。
エスケープが必要な特殊文字を含むDNを指定する場合の例を以下に示します。
cn=a\b,o=Fujitsu, Inc.,c=jp
コマンドの場合
コマンドの場合は、特殊文字をエスケープし、さらに、その特殊文字を含む属性値を“"”(ダブルクォーテーション)で囲む必要があります。
cn="a\\b",o="Fujitsu\, Inc.",c=jp
SDK(C API)の場合
LDAP、C言語それぞれで、“\”(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。
“\”を含むcn属性を指定するとします。
a\b
LDAPの規約により“\”をエスケープする必要があります。
cn=a\\b
C言語の仕様により、この名前を指定するために、それぞれの“\”をエスケープする必要があります。
char *name1 = "cn=a\\\\b";
同様に、“,”(カンマ)、“"”(ダブルクォーテーション)の場合はそれぞれ次のようになります。
char *name2 = "cn=a\\,b"; char *name3 = "cn=a\\\"b";
最初の例をC言語で使用する場合は、次のように記述します。
char *name = "cn=a\\\\b,o=Fujitsu\\, Inc.,c=jp";
SDK(JNDI)の場合
LDAP、JNDI、Java言語それぞれで、“\”(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。
“\”を含むcn属性を指定するとします。
a\b
LDAPの規約により“\”をエスケープする必要があります。
cn=a\\b
JNDIの仕様により、この名前を指定するために、それぞれの“\”をエスケープする必要があります。
cn=a\\\\b
Java言語の仕様により、この名前を文字列リテラルとして指定するために、それぞれの“\”をエスケープする必要があります。
String name1 = "cn=a\\\\\\\\b";
同様に、“,”(カンマ)、“"”(ダブルクォーテーション)の場合はそれぞれ次のようになります。
String name2 = "cn=a\\\\,b"; String name3 = "cn=a\\\\\"b";
最初の例をJNDIで使用する場合は、次のように記述します。
String name = "cn=a\\\\\\\\b,o=Fujitsu\\\\, Inc.,c=jp";
コマンド、エントリ管理ツール、およびSDKでは、DNおよび属性値に日本語を含む文字列を指定することができます。
コマンドの場合
オプションで文字コード系を指定します。
詳細については、“リファレンスマニュアル(コマンド編)”の“Smart Repository運用コマンド”を参照してください。
エントリ管理ツールの場合
エントリ管理ツールの[エントリ追加]および[エントリ更新]などの画面上では、入力フィールドに直接、日本語を入力します。
[移入]、[移出]では、画面上の文字コード系を選択するボタンがあります。
詳細については、エントリ管理ツールのヘルプを参照してください。
SDK(C API)の場合
UTF-8形式に変換するための関数を使用してUTF-8形式に変換する必要があります。
詳細については、“エンコード/デコード処理”を参照してください。
SDK(JNDI)の場合
特に意識する必要はありません。
目次 索引 |