テキストエディタを使って、ユーザ定義スキーマファイルを編集します。Interstage ディレクトリサービスでは、新しいスキーマ定義を記述するための、ユーザ定義スキーマファイルのサンプルを提供します。このファイルを、テキストエディタを使って編集します。
次の位置にサンプルファイルがあります。
C:\Interstage\IREP\sample\schema\schema.txt |
/opt/FJSVirep/sample/schema/schema.txt |
ユーザ定義スキーマファイルの形式を以下に示します。ユーザ定義スキーマファイルは、属性型(attributetype)とオブジェクトクラス(objectclass)から構成されています。
# attribute attributetype ( 1.1.2.1.1 NAME 'skill' DESC 'skill' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) # objectclass objectclass ( 1.1.2.2.2 NAME 'myPerson' DESC 'my person' SUP inetOrgPerson MUST ( employeeNumber ) MAY skill ) |
コメント行
行の先頭が「#」(シャープ)で始まる行は、コメント行として無視されます。
定義文
各項目は、空白で区切って並べます。また、行の先頭が空白で始まっている場合は、直前の行からの継続行とみなされます。1行目の先頭を空白文字で始めないでください。1行目はコメント行、または定義文にしてください。
空白行
定義情報を区分します(空白行の前後で、別々の定義とみなされます)。
マルチバイト文字
コメント行や定義文に、日本語などのマルチバイト文字を含めることはできません。
コメント行、および 定義文は、継続行かどうかを問わず、1行1,024バイト以内で指定します。
新しい属性型を定義するには、以下の形式を使います。
attributetype ( 属性型のOID NAME '属性型の名前' [DESC '説明'] [SUP 基底属性型] [EQUALITY 同値性の照合規則] [ORDERING 順序性の照合規則] [SUBSTR 部分文字列一致の照合規則] [SYNTAX 属性構文] [SINGLE-VALUE] ) |
各項目を、1バイトの空白文字で区切ります。
1つの定義を折り返して複数行で記述することができます。行の先頭を空白とし、定義の続きを記述することで、その行は直前の行からの継続行とみなされます。
空白行は、定義の区切りとみなされます。
ssoRoleName属性の定義です(本属性はすでに定義がありますので、追加はできません)。
attributetype ( 1.2.392.200001.65.1.8.4.0 NAME 'ssoRoleName' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32} ) |
属性型のOID (必須)
属性型のOIDです。必ず指定してください。
NAME '属性型の名前' (必須)
属性型の名前をシングル引用符で囲んで指定します。必ず指定してください。名前は英数字で32バイトまでで指定します。マルチバイト文字は使用できません。また、複数指定できます。複数の名前を指定するときは、空白文字で区切り、括弧で囲みます。リポジトリが結果を返すときには、定義に並べられている名前のうち最初のものを返します。
DESC '説明' (任意)
属性型の簡単な説明をシングル引用符で囲んで記述します。説明は、1,024バイト以内で指定してください。
SUP 基底属性型 (任意)
定義する属性の定義の基底となる(派生元である上位の)属性です。基底となる属性型から属性構文、照合規則を継承します。
本指定は、ある既存の属性の定義を拡張して、新しい属性型を定義したい場合に指定します。
本指定を省略すると、基底となる属性を持たない属性となります。なお、属性型には必ず属性構文が必要です。本指定を省略する場合は、必ず属性構文を指定してください。
EQUALITY 同値性の照合規則 (任意)
検索などで同値性(どのような場合に等しいとみなすか)の検査を行う場合に適用される照合規則です。以下の規則があります。
名前 | 説明 | 適用できる属性構文 |
---|---|---|
objectIdentifierMatch | 構文OIDを満たす属性値に対して同値性の照合をします。名前文字列の場合は、英大小文字の区別をしないで、識別する対象が等しい場合に同値とみなします。 | OID |
distinguishedNameMatch | 「,」、「+」、「=」の両側の空白を無視し、構文DNの規則に沿ってパースした後、属性型部分をobjectIdentifierMatch、属性値部分をその属性型に定義された同値性の照合規則で比較します。 | DN |
caseIgnoreMatch | 英大小文字の区別なし、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして比較します。 | Directory String |
caseExactMatch | 英大小文字の区別あり、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして比較します。 | Directory String |
numericStringMatch | 構文Numeric String(数字0~9と空白で構成)を、空白を無視して比較します。 | Numeric String |
octetStringMatch | 任意のオクテット文字列の、長さとすべてのオクテットが一致する場合に同値とみなします。 | Octet String |
telephoneNumberMatch | 構文Telephone Numberを満たす属性値に対して同値性の照合をします。すべての空白と「-」を無視するほかは、caseIgnoreMatchと同等。 | Telephone Number |
caseExactIA5Match | 英大小文字の区別あり、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして比較します。 | IA5 String |
caseIgnoreIA5Match | 英大小文字の区別なし、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして比較します。 | IA5 String |
caseIgnoreListMatch | 構文Postal Addressを満たす属性値に対して同値性の照合をします。「$」で区切られた要素文字列それぞれについて、caseIgnoreMatchで比較し、すべての要素が一致した場合に同値とみなします。 | Postal Address |
integerMatch | 構文INTEGERを満たす属性値に対して同値性の照合をします。 | INTEGER |
generalizedTimeMatch | 構文Generalized Timeを満たす属性値に対して同値性の照合をします。 | Generalized Time |
ORDERING 順序性の照合規則 (任意)
検索などで大小関係の検査を行う場合に適用される照合規則です。以下の規則があります。
名前 | 説明 | 適用できる属性構文 |
---|---|---|
caseIgnoreOrderingMatch | 英小文字は英大文字に変換し、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして辞書順で大小比較します。 | Directory String |
caseExactOrderingMatch | 英大小文字を区別して、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして辞書順で大小比較します。 | Directory String |
generalizedTimeOrderingMatch | 構文Generalized Timeを満たす属性値に対して順序性の照合をします。 | Generalized Time |
SUBSTR 部分文字列一致の照合規則 (任意)
検索などで部分文字列の一致(どのような場合に部分文字列を含むとみなすか)の検査を行う場合に適用される照合規則です。以下の規則があります。
名前 | 説明 | 適用できる属性構文 |
---|---|---|
caseIgnoreSubstringsMatch | 英大小文字を区別しないで、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして、提示された値が属性値に部分文字列として含まれるかどうかを比較します。 | Directory String |
caseExactSubstringsMatch | 英大小文字を区別して、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして、提示された値が属性値に部分文字列として含まれるかどうかを比較します。 | Directory String |
caseIgnoreIA5SubstringsMatch | 英大小文字を区別しないで、先頭、末尾の空白を無視し、連続する空白は、単一の空白とみなして、提示された値が属性値に部分文字列として含まれるかどうかを比較します。 | IA5 String |
numericStringSubstringsMatch | 空白をすべて無視するほかは、caseIgnoreSubstringsMatchと同等です。 | Numeric String |
caseIgnoreListSubstringsMatch | 構文Postal Addressを満たす属性値に対して部分文字列の照合をします。提示された値が、属性値の「$」で区切られた要素文字列をすべてつなげた文字列に部分文字列として含まれるかどうかを、caseIgnoreSubstringsMatchで比較します。 | Postal Address |
照合規則を省略すると、基底属性型の照合規則のみが適用されます。なお、検索などを行う場合は、照合規則が必要です。検索などを行う必要があるときに本指定を省略する場合は、必ず基底属性型を指定して、1つ以上の照合規則が定義されるようにしてください。
同一の属性に対して、同値性の照合規則、順序性の照合規則、部分文字列一致の照合規則は同時に指定できますが、英大文字小文字を区別するかどうかの規則は同じにする必要があります。caseIgnore...MatchとcaseExact...Matchを同時に指定することはできません(caseIgnoreMatchとcaseIgnoreSubstringsMatchは同時に指定できますが、caseIgnoreMatchとcaseExactSubstringsMatchを同時に指定することはできません)。
caseIgnore...Matchを定義した場合は、値を比較するときに、英字の大文字小文字を区別しません。たとえば、cn属性には、caseIgnoreMatchの規則が定義されています。以下の検索フィルタはすべて一致しているとみなされます。
cn: Fujitsu Taro のとき、以下の検索フィルタでは、すべて一致しているとみなされます。
(cn=Fujitsu Taro)
(cn=FUJITSU TARO)
(cn=fujitsu taro)
(cn=fuJItsU TARo)
caseIgnore...Matchを定義した場合は、英字の大文字と小文字が違うだけの値を複数持つことができません。たとえば、cn属性は、caseIgnoreMatchの規則が定義されています。以下のような値の組み合わせで同時に持つことはできません。
cn: Fujitsu Taro
cn: FUJITSU TARO
cn: fujitsu taro
SYNTAX 属性構文 (任意)
属性値の形式を示すOIDの数値を指定します。
本指定を省略すると、基底属性型の属性構文を継承します。なお、属性型には必ず属性構文が必要です。本指定を省略する場合は、必ず基底属性型を指定してください。
OID | 属性構文 | 説明 |
---|---|---|
1.3.6.1.4.1.1466.115.121.1.4 | Audio | サウンドデータが使用できます。(バイナリ型) |
1.3.6.1.4.1.1466.115.121.1.5 | Binary | バイナリデータが使用できます。(バイナリ型) |
1.3.6.1.4.1.1466.115.121.1.8 | Certificate | 証明書データが使用できます。(バイナリ型) |
1.3.6.1.4.1.1466.115.121.1.9 | Certificate List | 証明書リストデータが使用できます。(バイナリ型) |
1.3.6.1.4.1.1466.115.121.1.10 | Certificate Pair | 相互認証証明書データが使用できます。(バイナリ型) |
1.3.6.1.4.1.1466.115.121.1.15 | Directory String | UTF-8で扱える範囲が使用できます。文字としては、Unicodeの範囲(ISO10646)です。(文字列型) |
1.3.6.1.4.1.1466.115.121.1.12 | DN | DNが使用できます。(文字列型) (例) cn=User001,o=fujitsu,dc=com 「<RDN>,<RDN>,…<RDN>」の形式をとります。 <RDN>には、「<属性型>=<属性値>」を1つ以上、「+」で区切って並べます。<属性値>の中に「,」、「=」、「+」、「<」、「>」、「#」、「;」、「\」、「""」を含む場合、次のどれかをしてください。
|
1.3.6.1.4.1.1466.115.121.1.22 | Facsimile Telephone Number | 番号は、Telephone Numberの形式で記述し、それに続けて次のオプションを記述できる。オプションは「$」を挟んでその後に記述する。(文字列型)
|
1.3.6.1.4.1.1466.115.121.1.24 | Generalized Time | ローカル時刻(YYYYMMDDhhmmss.p形式、またはYYYYMMDDhhmmss.p(+|-HHMM)形式)、または国際標準時刻(YYYYMMDDhhmmss.pZ形式)が使用できます。(文字列型) |
1.3.6.1.4.1.1466.115.121.1.26 | IA5 String | CCITT国際アルファベット No.5(ASCII文字相当)が使用できます。(文字列型) |
1.3.6.1.4.1.1466.115.121.1.27 | INTEGER | 整数の10進表記。(数値型) (例) 1321 |
1.3.6.1.4.1.1466.115.121.1.28 | JPEG | JPEGデータが使用できます。(バイナリ型) |
1.3.6.1.4.1.1466.115.121.1.34 | Name And Optional UID | 「<DN>#<ビット列>」の形式の文字列。「#<ビット列>」の部分はオプション。(文字列型) |
1.3.6.1.4.1.1466.115.121.1.36 | Numeric String | 数字(0から9)およびスペースが使用できます。(文字列型) (例) 1997 |
1.3.6.1.4.1.1466.115.121.1.40 | Octet String | バイト列(各バイトは、0x00~0xFFの任意の値)が使用できます。(文字列型) |
1.3.6.1.4.1.1466.115.121.1.38 | OID | 「.」で区切った整数で表してOIDか、名前の文字列。後者の場合、英字で始まり、英字、数字、ハイフン、セミコロンで構成される文字列。(文字列型) (例) 1.2.3.4 |
1.3.6.1.4.1.1466.115.121.1.39 | Other Mailbox | X.400とRFC822以外の電子メールボックスデータが使用できます。 形式は以下のとおりです。(文字列型) mailbox-type "$" mailbox 上記では、mailbox-typeはメールの種類、mailboxはメールアドレス(例:user001@interstage.fujitsu.com)です。 |
1.3.6.1.4.1.1466.115.121.1.41 | Postal Address | Directory Stringで扱える範囲(Unicode)が使用できます。(文字列型) (注) 英数字のみ使用した場合、以下の形式となります。また、dstringは最大6個の組み合わせまでできます。 postal-address = dstring *( "$" dstring ) dstring = 英数字30文字 例) 1234 Main St.$Anytown, CA 12345$USA \241,000,000 Sweepstakes$PO Box 1000000$Anytwon, CA 12345$USA" |
1.3.6.1.4.1.1466.115.121.1.44 | Printable String | 英数字文字および以下の記号が使用できます。(文字列型)
|
1.3.6.1.4.1.1466.115.121.1.49 | Supported Algorithm | supportAlgorithm属性の構文。(バイナリ型) |
1.3.6.1.4.1.1466.115.121.1.50 | Telephone Number | Printable Stringと同様の文字が使用できます。(文字列型) (注) “-”(マイナス)およびスペースを使用した場合、検索時は以下の例のようになります。 検索時にtelephoneNumber=0123456789で検索した場合 012-345-6789 123456789 両者とも検索条件に一致します。 |
1.3.6.1.4.1.1466.115.121.1.52 | Telex Number | テレックス番号が使用できます。形式は以下のとおりです。(文字列型) actual-number "$" country "$" answerback 上記では、actual-numberは暗号化されるテレックス番号の番号部を構文的に表示したもので、countryはテレックスの国コード、answerbackはテレックスターミナルの返信コードです。 |
Directory Stringなどの文字列ベースの属性構文の値の文字数、または他の属性構文の値のバイト数の最大長を、OIDのあとに続けて、中括弧の中に指定できます。指定できる値の上限は、リポジトリデータ格納用テーブルの作成時に詳細設定を行うかどうかにより、以下のようになります。
テーブルの詳細設定については、“3.1.4.7 テーブルの詳細設定”を参照してください。
属性値の型 | テーブルの詳細設定 | |
---|---|---|
しない | する | |
文字列型 | 942 バイト | 詳細設定で指定した値 |
数値型 | 4 バイト(符号付き) | 詳細設定できません。 |
バイナリ型 | 32,768 バイト | 詳細設定で指定した値 (注) |
注) 最大長は、詳細設定時に指定できるK、Mを付加した値を使わず、バイト単位の値で指定してください。1Kバイトは1024バイト、1Mバイトは1024Kバイトです。
最大長に32バイトを指定する場合
1.3.6.1.4.1.1466.115.121.1.15{32}
SINGLE-VALUE (任意)
属性値を複数持つことができない(単一の値を持つ)属性として定義したい場合に指定します。
本指定を省略すると、属性値を複数持つことができる属性として定義されます。
新しいオブジェクトクラスを定義するには、以下の形式を使います。
objectclass ( オブジェクトクラスのOID NAME 'オブジェクトクラスの名前' [DESC '説明'] SUP 基底オブジェクトクラス [オブジェクトクラスの種別(ABSTRACT/STRUCTURAL/AUXILIARY)] [MUST 必須属性] [MAY オプション属性] ) |
各項目を、1バイトの空白文字で区切ります。
1つの定義を折り返して複数行で記述することができます。行の先頭を空白とし、定義の続きを記述することで、その行は直前の行からの継続行とみなされます。
空白行は、定義の区切りとみなされます。
ssoUserの定義例です(本オブジェクトクラスはすでに定義がありますので、追加はできません)。
objectclass ( 1.2.392.200001.65.1.8.6.0 NAME 'ssoUser' SUP top AUXILIARY MAY ( ssoRoleName $ ssoAuthType $ ssoCredentialTTL $ ssoUserStatus $ ssoNotBefore $ ssoNotAfter $ ssoFailureCount $ ssoLockTimeStamp $ dnQualifier ) ) |
オブジェクトクラスのOID (必須)
オブジェクトクラスのOIDです。必ず指定してください。
NAME 'オブジェクトクラスの名前' (必須)
オブジェクトクラスの名前をシングル引用符で囲んで指定します。必ず指定してください。名前は英数字で32バイトまでで指定します。マルチバイト文字は使用できません。
DESC '説明' (任意)
オブジェクトクラスの簡単な説明をシングル引用符で囲んで記述します。説明は、1,024バイト以内で指定してください。
SUP 基底オブジェクトクラス (必須)
定義するオブジェクトクラスの定義の基底となる(派生元である上位の)オブジェクトクラスです。基底となるオブジェクトクラスから必須属性、オプション属性を継承します。
オブジェクトクラスの種別 (任意)
オブジェクトクラスは、抽象型(ABSTRACT)/構造型(STRUCTURAL)/補助型(AUXILIARY)のどれか1つに分類されます。
本指定を省略すると、構造型(STRUCTURAL)のオブジェクトクラスとして定義されます。
抽象型(ABSTRACT)
他のオブジェクトクラスを定義するために用意されたオブジェクトクラスです。topがこの型の代表例となります。
抽象型オブジェクトクラスにのみ属するエントリは存在できません。
構造型(STRUCTURAL)
そのクラスを使用してエントリを作成することができるオブジェクトクラスです。エントリは、必ずどれかの構造型オブジェクトクラスに属さなければなりません。
補助型(AUXILIARY)
単独ではエントリを作成することはできず、ほかの構造型オブジェクトクラスと併用して、エントリを作成することができるオブジェクトクラスです。補助型オブジェクトクラスだけに属するエントリは存在できません。
MUST 必須属性 (任意)
そのオブジェクトクラスを使用する際、必ず登録しなければならない属性の名前を指定します。
本指定を省略すると、基底オブジェクトクラスの必須属性のみが必須属性となります。
MAY オプション属性 (任意)
そのオブジェクトクラスを使用する際、付加情報として使用する属性(必須ではない)の名前を指定します。
本指定を省略すると、基底オブジェクトクラスのオプション属性のみがオプション属性となります。
必須属性、およびオプション属性には、複数の属性を指定できます。複数の属性を指定するときは、ドル記号「$」で区切り、括弧で囲みます。