RFC 2251 LDAP結果コード

この記事には、以下のトピックが含まれています。
casm173
この記事には、以下のトピックが含まれています。
LDAP のリターン コード
LDAPには、各種LDAPリクエストを受けてLDAPサーバで生成される一連の操作結果コードがあります。 これらのコードは、プロトコル操作のステータスを示し、サーバまたはクライアントの戻り値カテゴリにより分類されます。
LDAPサーバの戻り値
以下の表に、さまざまな戻り値を示します。
16 進数
10進数
説明
0x00
0
LDAP_SUCCESS
リクエストされたクライアントの操作が正常に完了したことを示します。
0x01
1
LDAP_OPERATIONS_ERROR
内部エラーが発生したことを示します。 サーバは、さらに具体的なエラーに対応できず、リクエストに適切に応答することもできません。 クライアントが誤りのあるメッセージを送信したことを示すわけではありません。
0x02
2
LDAP_PROTOCOL_ERROR
サーバがクライアントから受信したリクエストが無効またはフォーマットが不正であることを示します。
0x03
3
LDAP_TIMELIMIT_EXCEEDED
クライアントまたはサーバにより指定された操作制限時間を超えたことを示します。 検索操作では、不完全な結果が返されます。
0x04
4
LDAP_SIZELIMIT_EXCEEDED
検索操作中、クライアントまたはサーバにより指定されたサイズ制限を超えたことを示します。 不完全な結果が返されます。
0x05
5
LDAP_COMPARE_FALSE
エラー状態ではありません。 比較操作の結果がfalseであることを示します。
0x06
6
LDAP_COMPARE_TRUE
エラー状態ではありません。 比較操作の結果がtrueであることを示します。
0x07
7
LDAP_AUTH_METHOD_NOT_SUPPORTED
バインド操作中、クライアントがリクエストした認証方法がLDAPでサポートされていないことを示します。
0x08
8
LDAP_STRONG_AUTH_REQUIRED
以下のいずれかを示します。
バインド リクエストで、LDAPサーバが強力な認証のみを受け入れます。
クライアント リクエストで、クライアントがリクエストした削除などの操作に強力な認証が必要です。
切断に関する一方的な通知で、LDAPサーバが、クライアントとサーバの間の通信がセキュリティで保護されているが予期せず失敗するか、セキュリティで保護されていないことを検出します。
0x09
9
予約済み。
0x0A
10
LDAP_REFERRAL
エラー状態ではありません。 LDAPv3で、サーバはリクエストのターゲット エントリを保持しませんが、参照フィールド内のサーバは保持する可能性があります。
0x0B
11
LDAP_ADMINLIMIT_EXCEEDED
管理権限により設定されたLDAPサーバの制限を超えたことを示します。
0x0C
12
LDAP_UNAVAILABLE_CRITICAL_EXTENSION
1つ以上の重要な拡張機能が使用できないため、LDAPサーバでリクエストを満たすことができなかったことを示します。 サーバがコントロールをサポートしないか、コントロールが操作タイプに適していません。
0x0D
13
LDAP_CONFIDENTIALITY_REQUIRED
セッションが、機密性を確保するトランスポート レイヤ セキュリティ(TLS)などのプロトコルで保護されていないことを示します。
0x0E
14
LDAP_SASL_BIND_IN_PROGRESS
エラー状態ではありません。サーバでプロセスの次の手順の準備が完了したことを示します。 クライアントは、サーバに同じSASLメカニズムを送信して、プロセスを続行する必要があります。
0x0F
15
使用されません。
0x10
16
LDAP_NO_SUCH_ATTRIBUTE
変更操作または比較操作で指定した属性がエントリに存在しないことを示します。
0x11
17
LDAP_UNDEFINED_TYPE
変更操作または追加操作で指定した属性がLDAPサーバのスキーマに存在しないことを示します。
0x12
18
LDAP_INAPPROPRIATE_MATCHING
検索フィルタで指定した一致ルールが、属性の構文に定義したルールと一致しないことを示します。
0x13
19
LDAP_CONSTRAINT_VIOLATION
変更操作、追加操作、またはDNの変更操作で指定した属性値が、属性の制約に違反していることを示します。 サイズまたは内容のどちらかについて制約されます(バイナリではない文字列のみ)。
0x14
20
LDAP_TYPE_OR_VALUE_EXISTS
変更操作または追加操作で指定した属性値が、その属性の既存値であることを示します。
0x15
21
LDAP_INVALID_SYNTAX
追加操作、比較操作、または変更操作で指定した属性値が、属性で認識できないか無効な構文であることを示します。
22-31
使用されません。
0x20
32
LDAP_NO_SUCH_OBJECT
ターゲット オブジェクトが見つからないことを示します。 このコードは、以下の操作では返されません。
検索操作で、検索ベースは見つかったが、検索フィルタに一致するエントリは見つからない場合
バインド操作
0x21
33
LDAP_ALIAS_PROBLEM
別名が修飾参照されたときにエラーが発生したことを示します。
0x22
34
LDAP_INVALID_DN_SYNTAX
DNの構文が間違っていることを示します。 ただし、DN構文が正しく、LDAPサーバの構造ルールにより操作が許可されない場合、サーバからは以下のコードが返されます。
LDAP_UNWILLING_TO_PERFORM
0x23
35
LDAP_IS_LEAF
指定した操作をリーフ エントリで実行できないことを示します (このコードは現在LDAP仕様に含まれていませんが、この定数用に予約されています)。
0x24
36
LDAP_ALIAS_DEREF_PROBLEM
検索操作中、別名が付いたオブジェクト名を読み取る権限がクライアントにないこと、または修飾参照が許可されていないことを示します。
37-47
使用されません。
0x30
48
LDAP_INAPPROPRIATE_AUTH
バインド操作中、クライアントでは正しく使用できない認証方法を、クライアントが使用しようとしたことを示します。 たとえば、以下のような場合にこのエラーが発生します。
強力な認証が必要なのに、クライアントが簡単な認証を返した場合
エントリにパスワードが定義されていないのに、クライアントが簡単なバインドのDNおよびパスワードを返した場合
0x31
49
LDAP_INVALID_CREDENTIALS
バインド操作中、以下のいずれかが発生したことを示します。
クライアントから、間違ったDNまたはパスワードが渡されました。
パスワードが期限切れのため無効になり、侵入者探知などの理由によってアカウントがロックされました。
0x32
50
LDAP_INSUFFICIENT_ACCESS
リクエストされた操作を実行する充分な権限がコール元に割り当てられていないことを示します。
0x33
51
LDAP_BUSY
LDAPサーバがビジー状態にあり、この時点でクライアント リクエストを処理できないことを示します。クライアントが待機してリクエストを再サブミットすると、サーバでクライアント リクエストを処理できる場合もあります。
0x34
52
LDAP_UNAVAILABLE
一般にシャットダウンが理由で、LDAPサーバでクライアントのバインド リクエストを処理できないことを示します。
0x35
53
LDAP_UNWILLING_TO_PERFORM
サーバ定義の制限が理由で、LDAPサーバでリクエストを処理できないことを示します。 このエラーは、以下の場合に返されます。
エントリの追加リクエストが、サーバの構造ルールに違反している場合
属性の変更リクエストで、ユーザが変更できない属性が指定されている場合
パスワード制限によりアクションが禁止されている場合
接続制限によりアクションが抑制されている場合
0x36
54
LDAP_LOOP_DETECT
クライアントで別名または参照ループが検出されたため、このリクエストを完了できないことを示します。
55-63
使用されません。
0x40
64
LDAP_NAMING_VIOLATION
追加操作またはDNの変更操作がスキーマの構造ルールに違反することを示します。 以下に例を示します。
リクエストにより、別名の下位エントリが配置されている場合
リクエストにより、格納ルールで禁止されているコンテナの下位エントリが配置されている場合
エントリのRDNで、禁止された属性タイプが使用される場合
0x41
65
LDAP_OBJECT_CLASS_VIOLATION
追加操作、変更操作、またはDNの変更操作が、エントリのオブジェクト クラス ルールに違反することを示します。 たとえば、以下のような場合にこのエラーが返されます。
追加操作または変更操作で、必須属性の値を指定しないでエントリを追加しようとした場合
追加操作または変更操作で、クラス定義が含まれない属性の値を使用してエントリを追加しようとした場合
変更操作で、必要に応じて属性を定義する補助クラスを削除せずに必須属性を削除しようとした場合
0x42
66
LDAP_NOT_ALLOWED_ON_NONLEAF
リクエストされた操作がリーフ エントリでのみ許可されることを示します。 たとえば、以下のような場合にこのエラーが返されます。
クライアントが親エントリで削除操作をリクエストした場合
クライアントが親エントリでDNの変更操作をリクエストした場合
0x43
67
LDAP_NOT_ALLOWED_ON_RDN
変更操作で、エントリの相対識別名を形成する属性値を削除しようとしたことを示します。
0x44
68
LDAP_ALREADY_EXISTS
追加操作で既存のエントリを追加しようとしたこと、または変更操作でエントリの名前を既存のエントリ名に変更しようとしたことを示します。
0x45
69
LDAP_NO_OBJECT_CLASS_MODS
変更操作で、オブジェクト クラスの構造ルールを変更しようとしたことを示します。
0x46
70
LDAP_RESULTS_TOO_LARGE
CLDAP用に予約されています。
0x47
71
LDAP_AFFECTS_MULTIPLE_DSAS
DNの変更操作で、1つのLDAPサーバから別のLDAPサーバにエントリを移動させるために、複数のLDAPサーバが必要であることを示しています。
72-79
使用されません。
0x50
80
LDAP_OTHER
不明なエラー状態を示します。 これはNDSエラー コードの初期設定値で、その他のLDAPエラー コードにマップされません。
LDAPクライアントの戻り値
以下の表に、さまざまな戻り値を示します。
16 進数
10進数
説明
0x51
81
LDAP_SERVER_DOWN
LDAPライブラリで、LDAPサーバへの初期接続を確立できないことを示します。 LDAPサーバがダウンしているか、指定したホスト名またはポート番号が間違っています。
0x52
82
LDAP_LOCAL_ERROR
LDAPクライアントにエラーが発生したことを示します。 これは通常、動的メモリの割り当て失敗エラーです。
0x53
83
LDAP_ENCODING_ERROR
LDAPサーバを対象としたLDAPリクエストをエンコードするときに、LDAPクライアントでエラーが発生したことを示します。
0x54
84
LDAP_DECODING_ERROR
LDAPサーバからのLDAPの応答をデコードするときに、LDAPクライアントでエラーが発生したことを示します。
0x55
85
LDAP_TIMEOUT
LDAPクライアントで待機中に、制限時間が超えたことを示します。
0x56
86
LDAP_AUTH_UNKNOWN
不明な認証方法により、ldap_bindまたはldap_bind_s関数が呼び出されたことを示します。
0x57
87
LDAP_FILTER_ERROR
無効な検索フィルタにより、ldap_search関数が呼び出されたことを示します。
0x58
88
LDAP_USER_CANCELLED
ユーザがLDAP操作をキャンセルしたことを示します。
0x59
89
LDAP_PARAM_ERROR
無効なパラメータ値(IDパラメータがNullなど)により、LDAP関数が呼び出されたことを示します。
0x5A
90
LDAP_NO_MEMORY:
LDAP関数を呼び出すときに、動的メモリ割り当て関数が失敗したことを示します。
0B
91
LDAP_CONNECT_ERROR
LDAPクライアントとLDAPサーバの接続を確立できない、または接続が切断されたことを示します。
0x5C
92
LDAP_NOT_SUPPORTED
クライアントで、リクエストされた機能をサポートしていないことを示します。 たとえば、LDAPクライアントがLDAPv2クライアントとして構築されている場合、クライアントでLDAPv3の機能が要求されると、ライブラリによりこのエラー コードが設定されます。
0x5D
93
LDAP_CONTROL_NOT_FOUND
クライアントがリクエストしたコントロールを、LDAPサーバから送信されたサポート コントロール リストでライブラリが見つけられないことを示します。
0x5E
94
LDAP_NO_RESULTS_RETURNED
LDAPサーバから結果が送信されなかったことを示します。 ldap_parse_result関数が呼び出されたときに、サーバの応答に結果コードが含まれていません。
0x5F
95
LDAP_MORE_RESULTS_TO_RETURN
結果メッセージに余分な結果が含まれていることを示します。 ldap_parse_result関数への呼び出しにより、追加の結果コードが使用可能であることが明らかになった場合、ライブラリによりこのコードが設定されます。
0x60
96
LDAP_CLIENT_LOOP
LDAPライブラリでループが検出されたことを示します。 通常、後続の参照のときに発生します。
0x61
97
LDAP_REFERRAL_LIMIT_EXCEEDED
参照がホップ制限を超えたことを示します。 ホップ制限により、クライアントがデータを取得するためにホップできるサーバの数が決まります。 たとえば、以下のような状況を仮定してみます。
ホップ制限が2に設定されています。
参照はサーバDに対して行われます。サーバB(1ホップ)を介してサーバC(2ホップ)に接続し、そこからサーバD(3ホップ)に接続します。
この状況では、ホップ制限を超えてしまい、LDAPライブラリによりこのコードが設定されます。
LDAP 関連の RFC 標準
以下の表は、LDAP関連のRFC標準に関する説明です。
RFC
説明
1274
The COSINE and Internet X.500 Schema
1275
Replication Requirements to provide an Internet Directory using X.500
1276
Replication and Distributed Operations extensions to provide an Internet Directory using X.500
1308
Executive Introduction to Directory Services Using the X.500 Protocol
1309
Technical Overview of Directory Services Using the X.500 Protocol
1430
A Strategic Plan for Deploying an Internet X.500 Directory Service
1488
The X.500 String Representation of Standard Attribute Syntaxes
1558
A String Representation of LDAP Search Filters
1617
Naming and Structuring Guidelines for X.500 Directory Pilots
1777
Lightweight Directory Access Protocol v2
1778
The String Representation of Standard Attribute Syntaxes
1779
A String Representation of Distinguished Names
1804
Schema Publishing in X.500 Directory
1823
The LDAP Application Program Interface
1959
An LDAP URL Format
1960
A String Representation of LDAP Search Filters
2044
UTF -8, a transformation format of Unicode and ISO 10646
2164
Use of an X.500/LDAP Directory to support MIXER address mapping
2218
A Common Schema for the Internet White Pages Service
2247
Using Domains in LDAP/X.500 Distinguished Names
2251
Lightweight Directory Access Protocol (v3)
2252
Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions
2253
Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names
2254
The String Representation of LDAP Search Filters
2255
The LDAP URL Format
2256
A Summary of the X.500(96) User Schema for use with LDAPv3
2279
UTF-8, a transformation format of ISO 10646
2293
Representing Tables and Subtrees in the X.500 Directory
2294
Representing the O/R Address hierarchy in the X.500 Directory Information Tree
2307
An Approach for Using LDAP as a Network Information Service
2377
Naming Plan for Internet Directory-Enabled Applications
2531
Content Feature Schema for Internet Fax
2559
Internet X.509 Public Key Infrastructure Operational Protocols - LDAPv2
2587
Internet X.509 Public Key Infrastructure LDAPv2 Schema
2589
Lightweight Directory Access Protocol (v3): Extensions for Dynamic Directory Services
2596
Use of Language Codes in LDAP
2649
An LDAP Control and Schema for Holding Operation Signatures
2657
RFC 2657 - LDAPv2 Client vs. the Index Mesh
2696
LDAP Control Extension for Simple Paged Results Manipulation
2713
Schema for Representing Java(tm) Objects in an LDAP Directory
2714
Schema for Representing CORBA Object References in an LDAP Directory
2739
Calendar Attributes for vCard and LDAP
2798
Definition of the inetOrgPerson LDAP Object Class
2820
Access Control Requirements for LDAP
2829
Authentication Methods for LDAP
2830
Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security
2849
The LDAP Data Interchange Format (LDIF) - Technical Specification
2879
Content Feature Schema for Internet Fax (V2)
2891
LDAP Control Extension for Server Side Sorting of Search Results
3045
Storing Vendor Information in the LDAP root DSE
3062
LDAP Password Modify Extended Operation
3112
LDAP Authentication Password Schema
3296
Named Subordinate References in Lightweight Directory Access Protocol Directories
3377
Lightweight Directory Access Protocol (v3): Technical Specification
3384
Lightweight Directory Access Protocol (version 3) Replication Requirements