12.12. 構文の検証の使用
telephoneNumber
属性に、実際にその値に有効な電話番号が指定されていることを確認します。
12.12.1. 構文の検証の概要
12.12.2. 構文の検証およびその他の Directory Server 操作
データベース暗号化
通常の LDAP 操作では、値がデータベースに書き込まれる直前に属性は暗号化されます。これは、属性構文の検証 後に 暗号化が実行されることを意味します。
-E
フラグを使用して行うことが強く推奨されます。これにより、インポート操作で構文の検証が問題になる可能性もあります。ただし、-E
フラグを使用せずに暗号化されたデータベースをエクスポートする場合は (サポートされていない)、暗号化された値で LDIF が作成されます。この LDIF をインポートすると、暗号化された属性を検証できず、警告がログに記録され、インポートされたエントリーで属性検証はスキップされます。
同期
Windows Active Directory エントリーと Red Hat Directory Server エントリーでは、属性の許容構文または強制構文に違いがある場合があります。この場合、構文の検証により Directory Server エントリーの RFC 標準が強制されるため、Active Directory の値を適切に同期できませんでした。
レプリケーション
Directory Server 11 インスタンスがコンシューマーに変更を複製するサプライヤーである場合は、構文検証の使用に問題はありません。ただし、レプリケーションのサプライヤーが古いバージョンの Directory Server であったり、構文の検証が無効になっていたりする場合は、Directory Server 11 コンシューマーは、サプライヤーが許可する属性値を拒否する可能性があるため、構文の検証をコンシューマーで使用しないでください。
12.12.2.1. コマンドラインを使用した構文検証のオンおよびオフを切り替え
nsslapd-syntaxcheck
パラメーターの値を設定します。構文の検証を無効にするには、次のコマンドを実行します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-syntaxcheck=off Successfully replaced "nsslapd-syntaxcheck"
nsslapd-syntaxcheck
パラメーターの詳細は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス』 で、パラメーターの説明を参照してください。
12.12.2.2. Web コンソールを使用した構文検証のオンおよびオフの切り替え
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- Advanced Settings タブを開きます。
- 属性構文の確認を有効にするには、Enable Attribute Syntax Checking チェックボックスを選択します。この機能を無効にするには、チェックボックスの選択を解除します。
12.12.3. DN の厳格な構文検証の有効化または無効化
12.12.3.1. コマンドラインを使用した DN の厳格な構文の検証の有効化または無効化
nsslapd-dn-validate-strict
パラメーターの値を設定します。たとえば、DN の厳格な構文検証を無効にするには、次のコマンドを実行します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-dn-validate-strict=off Successfully replaced "nsslapd-dn-validate-strict"
nsslapd-syntaxcheck
パラメーターの詳細は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス』 で、パラメーターの説明を参照してください。
12.12.3.2. Web コンソールを使用した DN の厳格な構文検証の有効化または無効化
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- Advanced Settings タブを開きます。
- 機能を有効または無効にするかどうかに応じて、Strict DN Syntax Validation オプションを選択または選択解除します。
12.12.4. 構文検証ロギングの有効化
nsslapd-syntaxlogging
属性は、構文違反のエラーロギングを有効にします。
nsslapd-syntaxlogging
パラメーターおよび nsslapd-syntaxcheck
パラメーターの両方が有効な場合には、無効な属性の変更が拒否され、メッセージがログに書き込まれます。nsslapd-syntaxlogging
が有効、nsslapd-syntaxcheck
が無効の場合、操作は成功できますが、警告メッセージがエラーログに書き込まれます。
12.12.4.1. コマンドラインを使用した構文検証ロギングの有効化
nsslapd-syntaxlogging
パラメーターの値を on に設定します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-syntaxlogging=on Successfully replaced "nsslapd-syntaxlogging"
nsslapd-syntaxlogging
パラメーターの詳細は、『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス』 で、パラメーターの説明を参照してください。
12.12.4.2. Web コンソールを使用した構文検証ロギングの有効化
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- Advanced Settings タブを開きます。
- Enable Attribute Syntax Logging オプションを選択します。
12.12.5. 既存の属性値の構文の検証
nsslapd-syntaxcheck
パラメーターで構文の検証が無効になっている場合。詳細については、「構文の検証およびその他の Directory Server 操作」 を参照してください。重要Red Hat は、構文の検証を無効にしないことを推奨します。- 構文検証なしまたは無効化されたサーバーからデータを移行する場合。
/var/log/dirsrv/slapd-instance_name/errors
ファイルに記録します。以下に例を示します。
- 検証済みの値がすべて有効であれば、以下を実行します。
[28/Jun/2017:12:52:43.669867966 +0200] - ERR - syntax-plugin - syntax_validate_task_thread - Starting (base: "dc=example,dc=com", filter: "(objectclass=*)") ... [28/Jun/2017:12:52:43.696850129 +0200] - ERR - syntax-plugin - syntax_validate_task_thread - Complete. Found 0 invalid entries.
- 無効なエントリーが見つかった場合は、以下を行います。
[28/Jun/2017:12:54:05.736087520 +0200] - ERR - syntax-plugin - syntax_validate_task_thread - Starting (base: "dc=example,dc=com", filter: "(objectclass=*)") ... [28/Jun/2017:12:54:05.754195607 +0200] - ERR - syntax-plugin - syntax_validate_task_callback - Entry "cn=user,ou=People,dc=example,dc=com" violates syntax. description: value #0 invalid per syntax [28/Jun/2017:12:54:05.759905671 +0200] - ERR - syntax-plugin - syntax_validate_task_thread - Complete. Found 1 invalid entries.
注記構文検証タスクは、構文違反のみを識別します。誤った値を手動で修正する必要があります。
12.12.5.1. dsconf スキーマの validate-syntax コマンドを使用した構文検証タスクの作成
# dsconf -D "cn=Directory Manager" ldap://server.example.com schema validate-syntax -f '(objectclass=inetorgperson)' ou=People,dc=example,dc=com
12.12.5.2. cn=tasks エントリーを使用した構文検証タスクの作成
# ldapadd -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=example_syntax_validate,cn=syntax validate,cn=tasks,cn=config objectclass: extensibleObject cn: cn=example_syntax_validate basedn: ou=People,dc=example,dc=com filter: (objectclass=inetorgperson)