4.2. マッチング規則の定義 (A-G)
以下のマッチング規則を評価する際、アサーション値および属性値内の指名された文字列は、LDAP 用の文字列準備アルゴリズム [RFC4518] に従って準備されます:
numericStringMatch,
numericStringSubstringsMatch,
caseExactMatch,
caseExactOrderingMatch,
caseExactSubstringsMatch,
caseExactIA5Match,
caseIgnoreIA5Match,
caseIgnoreIA5SubstringsMatch,
caseIgnoreListMatch,
caseIgnoreListSubstringsMatch,
caseIgnoreMatch,
caseIgnoreOrderingMatch,
caseIgnoreSubstringsMatch,
directoryStringFirstComponentMatch,
telephoneNumberMatch,
telephoneNumberSubstringsMatch and
wordMatch.
Transcode, Normalize, Prohibit, および Check bidi のステップは、各マッチング規則で同じです。ただし、Map および Insignificant Character Handling のステップは、後続のセクションでこれらのマッチング規則の記述に詳述されているように、特定の規則に依存します。
4.2.1. bitStringMatch
bitStringMatch 規則は、Bit String 構文のアサーション値を、対応する ASN.1 タイプが BIT STRING である構文 (例えば、Bit String 構文) の属性値と比較します。
属性構文の対応する ASN.1 タイプが名前付きビットリスト [ASN.1] を持たない場合 (これは Bit String 構文の場合です)、属性値がアサーション値と同じ数のビットを持ち、ビット単位で一致する場合にのみ、規則は TRUE と評価されます。
対応する ASN.1 タイプが名前付きビットリストを持っている場合、bitStringMatch は上記のように動作しますが、属性値およびアサーション値の末尾のゼロビットは不在として扱われる点が異なります。
bitStringMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.16 NAME 'bitStringMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.6 )
bitStringMatch 規則は等価性マッチング規則です。
4.2.2. booleanMatch
booleanMatch 規則は、Boolean 構文のアサーション値を、対応する ASN.1 タイプが BOOLEAN である構文 (例えば、Boolean 構文) の属性値と比較します。
属性値とアサーション値が両方とも TRUE であるか、両方とも FALSE である場合にのみ、規則は TRUE と評価されます。
booleanMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.13 NAME 'booleanMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
booleanMatch 規則は等価性マッチング規則です。
4.2.3. caseExactIA5Match
caseExactIA5Match 規則は、IA5 String 構文のアサーション値を、対応する ASN.1 タイプが IA5String である構文 (例えば、IA5 String 構文) の属性値と比較します。
準備された属性値文字列と準備されたアサーション値文字列が同じ文字数を持ち、対応する文字が同じコードポイントを持つ場合にのみ、規則は TRUE と評価されます。
比較のために属性値とアサーション値を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) は行われず、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
caseExactIA5Match 規則の LDAP 定義は以下の通りです:
( 1.3.6.1.4.1.1466.109.114.1 NAME 'caseExactIA5Match'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
caseExactIA5Match 規則は等価性マッチング規則です。
4.2.4. caseExactMatch
caseExactMatch 規則は、Directory String 構文のアサーション値を、対応する ASN.1 タイプが DirectoryString または DirectoryString の代替文字列タイプの1つ (PrintableString など) である構文 (例えば、Directory String, Printable String, Country String, または Telephone Number 構文) の属性値と比較します (他の代替タイプはこのドキュメントで定義されているどの構文にも対応していません)。
準備された属性値文字列と準備されたアサーション値文字列が同じ文字数を持ち、対応する文字が同じコードポイントを持つ場合にのみ、規則は TRUE と評価されます。
比較のために属性値とアサーション値を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) は行われず、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
caseExactMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.5 NAME 'caseExactMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
caseExactMatch 規則は等価性マッチング規則です。
4.2.5. caseExactOrderingMatch
caseExactOrderingMatch 規則は、Directory String 構文のアサーション値を、対応する ASN.1 タイプが DirectoryString またはその代替文字列タイプの1つである構文 (例えば、Directory String, Printable String, Country String, または Telephone Number 構文) の属性値と比較します。
コードポイントの照合順序において、準備された属性値文字列が準備されたアサーション値文字列よりも前に現れる場合、すなわち属性値がアサーション値よりも「小さい」場合にのみ、規則は TRUE と評価されます。
比較のために属性値とアサーション値を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) は行われず、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
caseExactOrderingMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.6 NAME 'caseExactOrderingMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
caseExactOrderingMatch 規則は順序付けマッチング規則です。
4.2.6. caseExactSubstringsMatch
caseExactSubstringsMatch 規則は、Substring Assertion 構文のアサーション値を、対応する ASN.1 タイプが DirectoryString またはその代替文字列タイプの1つである構文 (例えば、Directory String, Printable String, Country String, または Telephone Number 構文) の属性値と比較します。
(1) アサーション値の準備された部分文字列が、アサーション値内の部分文字列の順序で、準備された属性値文字列の互いに素な部分と一致し、(2) <initial> 部分文字列が存在する場合、それが準備された属性値文字列の先頭と一致し、(3) <final> 部分文字列が存在する場合、それが準備された属性値文字列の末尾と一致する場合にのみ、規則は TRUE と評価されます。対応する文字が同じコードポイントを持つ場合、準備された部分文字列は準備された属性値文字列の一部と一致します。
比較のために属性値とアサーション値の部分文字列を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) は行われず、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
caseExactSubstringsMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.7 NAME 'caseExactSubstringsMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
caseExactSubstringsMatch 規則は部分文字列マッチング規則です。
4.2.7. caseIgnoreIA5Match
caseIgnoreIA5Match 規則は、IA5 String 構文のアサーション値を、対応する ASN.1 タイプが IA5String である構文 (例えば、IA5 String 構文) の属性値と比較します。
準備された属性値文字列と準備されたアサーション値文字列が同じ文字数を持ち、対応する文字が同じコードポイントを持つ場合にのみ、規則は TRUE と評価されます。
比較のために属性値とアサーション値を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) が行われ、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
caseIgnoreIA5Match 規則の LDAP 定義は以下の通りです:
( 1.3.6.1.4.1.1466.109.114.2 NAME 'caseIgnoreIA5Match'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
caseIgnoreIA5Match 規則は等価性マッチング規則です。
4.2.8. caseIgnoreIA5SubstringsMatch
caseIgnoreIA5SubstringsMatch 規則は、Substring Assertion 構文のアサーション値を、対応する ASN.1 タイプが IA5String である構文 (例えば、IA5 String 構文) の属性値と比較します。
(1) アサーション値の準備された部分文字列が、アサーション値内の部分文字列の順序で、準備された属性値文字列の互いに素な部分と一致し、(2) <initial> 部分文字列が存在する場合、それが準備された属性値文字列の先頭と一致し、(3) <final> 部分文字列が存在する場合、それが準備された属性値文字列の末尾と一致する場合にのみ、規則は TRUE と評価されます。対応する文字が同じコードポイントを持つ場合、準備された部分文字列は準備された属性値文字列の一部と一致します。
比較のために属性値とアサーション値の部分文字列を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) が行われ、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
( 1.3.6.1.4.1.1466.109.114.3 NAME 'caseIgnoreIA5SubstringsMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
caseIgnoreIA5SubstringsMatch 規則は部分文字列マッチング規則です。
4.2.9. caseIgnoreListMatch
caseIgnoreListMatch 規則は、文字列のシーケンスであるアサーション値を、対応する ASN.1 タイプが DirectoryString ASN.1 タイプの SEQUENCE OF である構文 (例えば、Postal Address 構文) の属性値と比較します。
属性値とアサーション値が同じ数の文字列を持ち、対応する文字列 (位置による) が caseIgnoreMatch マッチング規則に従って一致する場合にのみ、規則は TRUE と評価されます。
[X.520] では、このマッチング規則のアサーション構文は次のように定義されています:
SEQUENCE OF DirectoryString {ub-match}
つまり、これは Postal Address 構文に対応するタイプとは異なります。LDAP における caseIgnoreListMatch のアサーション構文として Postal Address 構文を選択したことは、マッチング規則を Postal Address 構文を持つ属性のみに適用するように制限するものと見なされるべきではありません。
caseIgnoreListMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.11 NAME 'caseIgnoreListMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
caseIgnoreListMatch 規則は等価性マッチング規則です。
4.2.10. caseIgnoreListSubstringsMatch
caseIgnoreListSubstringsMatch 規則は、Substring Assertion 構文のアサーション値を、対応する ASN.1 タイプが DirectoryString ASN.1 タイプの SEQUENCE OF である構文 (例えば、Postal Address 構文) の属性値と比較します。
アサーション値が、caseIgnoreSubstringsMatch 規則に従って、属性値の文字列を連結して形成された文字列と一致する場合にのみ、規則は TRUE と評価されます。ただし、アサーション値の <initial>, <any>, または <final> 部分文字列のいずれも、属性値の元の文字列の複数をまたぐ連結文字列の部分文字列と一致するとは見なされません。
Postal Address 構文の LDAP 固有エンコーディングに関して、連結文字列では <DOLLAR> 行区切り文字と "" および "$" 文字のエスケープが省略されることに注意してください。
caseIgnoreListSubstringsMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.12 NAME 'caseIgnoreListSubstringsMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
caseIgnoreListSubstringsMatch 規則は部分文字列マッチング規則です。
4.2.11. caseIgnoreMatch
caseIgnoreMatch 規則は、Directory String 構文のアサーション値を、対応する ASN.1 タイプが DirectoryString またはその代替文字列タイプの1つである構文 (例えば、Directory String, Printable String, Country String, または Telephone Number 構文) の属性値と比較します。
準備された属性値文字列と準備されたアサーション値文字列が同じ文字数を持ち、対応する文字が同じコードポイントを持つ場合にのみ、規則は TRUE と評価されます。
比較のために属性値とアサーション値を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) が行われ、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
caseIgnoreMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.2 NAME 'caseIgnoreMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
caseIgnoreMatch 規則は等価性マッチング規則です。
4.2.12. caseIgnoreOrderingMatch
caseIgnoreOrderingMatch 規則は、Directory String 構文のアサーション値を、対応する ASN.1 タイプが DirectoryString またはその代替文字列タイプの1つである構文 (例えば、Directory String, Printable String, Country String, または Telephone Number 構文) の属性値と比較します。
コードポイントの照合順序において、準備された属性値文字列が準備されたアサーション値文字列よりも前に現れる場合、すなわち属性値がアサーション値よりも「小さい」場合にのみ、規則は TRUE と評価されます。
比較のために属性値とアサーション値を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) が行われ、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
caseIgnoreOrderingMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.3 NAME 'caseIgnoreOrderingMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
caseIgnoreOrderingMatch 規則は順序付けマッチング規則です。
4.2.13. caseIgnoreSubstringsMatch
caseIgnoreSubstringsMatch 規則は、Substring Assertion 構文のアサーション値を、対応する ASN.1 タイプが DirectoryString またはその代替文字列タイプの1つである構文 (例えば、Directory String, Printable String, Country String, または Telephone Number 構文) の属性値と比較します。
(1) アサーション値の準備された部分文字列が、アサーション値内の部分文字列の順序で、準備された属性値文字列の互いに素な部分と一致し、(2) <initial> 部分文字列が存在する場合、それが準備された属性値文字列の先頭と一致し、(3) <final> 部分文字列が存在する場合、それが準備された属性値文字列の末尾と一致する場合にのみ、規則は TRUE と評価されます。対応する文字が同じコードポイントを持つ場合、準備された部分文字列は準備された属性値文字列の一部と一致します。
比較のために属性値とアサーション値の部分文字列を準備する際、Map 準備ステップでは文字の大文字小文字の区別をなくす処理 (case fold) が行われ、Insignificant Character Handling ステップでは Insignificant Space Handling のみが適用されます。
caseIgnoreSubstringsMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.4 NAME 'caseIgnoreSubstringsMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.58 )
caseIgnoreSubstringsMatch 規則は部分文字列マッチング規則です。
4.2.14. directoryStringFirstComponentMatch
directoryStringFirstComponentMatch 規則は、Directory String 構文のアサーション値を、対応する ASN.1 タイプが DirectoryString ASN.1 タイプを必須の第1コンポーネントとして持つ SEQUENCE である構文の属性値と比較します。
このマッチング規則のアサーション構文は、これが等価性マッチング規則である属性の属性構文とは異なることに注意してください。
アサーション値が caseIgnoreMatch の規則を使用して属性値の第1コンポーネントと一致する場合にのみ、規則は TRUE と評価されます。
directoryStringFirstComponentMatch マッチング規則の LDAP 定義は以下の通りです:
( 2.5.13.31 NAME 'directoryStringFirstComponentMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
directoryStringFirstComponentMatch 規則は等価性マッチング規則です。directoryStringFirstComponentMatch を使用して (適用可能な構文の) 2つの属性値を比較する場合、まず一方の属性値からアサーション値を導出する必要があります。その属性値の第1コンポーネントを取得することで、アサーション値を属性値から導出できます。
4.2.15. distinguishedNameMatch
distinguishedNameMatch 規則は、DN 構文のアサーション値を、対応する ASN.1 タイプが DistinguishedName である構文 (例えば、DN 構文) の属性値と比較します。
属性値とアサーション値が同じ数の相対識別名を持ち、対応する相対識別名 (位置による) が同じである場合にのみ、規則は TRUE と評価されます。アサーション値の相対識別名 (RDN) が属性値の RDN と同じであるのは、それらが同じ数の属性値アサーションを持ち、最初の RDN の各属性値アサーション (AVA) が、同じ属性タイプを持つ2番目の RDN の AVA と同じである場合のみです。AVA の順序は重要ではありません。また、特定の属性タイプは RDN 内の AVA に最大1回しか出現しないことに注意してください。同じ属性タイプを持つ2つの AVA は、その属性タイプの等価性マッチング規則に従って値が等しい場合、同じです。1つ以上の AVA 比較が Undefined と評価され、残りの AVA 比較が TRUE を返す場合、distinguishedNameMatch 規則は Undefined と評価されます。
distinguishedNameMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.1 NAME 'distinguishedNameMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
distinguishedNameMatch 規則は等価性マッチング規則です。
4.2.16. generalizedTimeMatch
generalizedTimeMatch 規則は、Generalized Time 構文のアサーション値を、対応する ASN.1 タイプが GeneralizedTime である構文 (例えば、Generalized Time 構文) の属性値と比較します。
属性値がアサーション値と同じ協定世界時を表す場合にのみ、規則は TRUE と評価されます。分また秒を省略して時間が指定された場合、分または秒の数は (それぞれ) ゼロであると想定されます。
generalizedTimeMatch 規則の LDAP 定義は以下の通りです:
( 2.5.13.27 NAME 'generalizedTimeMatch'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
generalizedTimeMatch 規則は等価性マッチング規則です。