ページの先頭行へ戻る
Interstage Application Server ディレクトリサービス運用ガイド

5.3.2 ユーザ定義スキーマの定義

  テキストエディタを使って、ユーザ定義スキーマファイルを編集します。Interstage ディレクトリサービスでは、新しいスキーマ定義を記述するための、ユーザ定義スキーマファイルのサンプルを提供します。このファイルを、テキストエディタを使って編集します。

  次の位置にサンプルファイルがあります。

C:\Interstage\IREP\sample\schema\schema.txt

/opt/FJSVirep/sample/schema/schema.txt

5.3.2.1 ファイル形式

  ユーザ定義スキーマファイルの形式を以下に示します。ユーザ定義スキーマファイルは、属性型(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 )

5.3.2.2 属性型の定義

  新しい属性型を定義するには、以下の形式を使います。

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つ以上、「+」で区切って並べます。<属性値>の中に「,」、「=」、「+」、「<」、「>」、「#」、「;」、「\」、「""」を含む場合、次のどれかをしてください。

  • 「\」を前につけてエスケープする。

  • 「\34」のように「\」に続けて文字コードを16進表記する。

  • 属性値全体を「""」で括る(「""」、「\」はエスケープするか16進表記する)。

1.3.6.1.4.1.1466.115.121.1.22

Facsimile Telephone Number

番号は、Telephone Numberの形式で記述し、それに続けて次のオプションを記述できる。オプションは「$」を挟んでその後に記述する。(文字列型)

  • twoDimensional

  • fineResolution

  • unlimitedLength

  • b4Length

  • a3Width

  • b4Width

  • uncompressed

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 (任意)

  属性値を複数持つことができない(単一の値を持つ)属性として定義したい場合に指定します。
  本指定を省略すると、属性値を複数持つことができる属性として定義されます。

5.3.2.3 オブジェクトクラスの定義

  新しいオブジェクトクラスを定義するには、以下の形式を使います。

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)のオブジェクトクラスとして定義されます。

MUST 必須属性 (任意)

  そのオブジェクトクラスを使用する際、必ず登録しなければならない属性の名前を指定します。
  本指定を省略すると、基底オブジェクトクラスの必須属性のみが必須属性となります。

MAY オプション属性 (任意)

  そのオブジェクトクラスを使用する際、付加情報として使用する属性(必須ではない)の名前を指定します。
  本指定を省略すると、基底オブジェクトクラスのオプション属性のみがオプション属性となります。

  必須属性、およびオプション属性には、複数の属性を指定できます。複数の属性を指定するときは、ドル記号「$」で区切り、括弧で囲みます。