PHP LDAPサーバSchemaデータ取得

1392 ワード

最近の仕事ではLDAPと付き合っていますが、公式に推奨されているclient-apisでは、各言語に対応するAPIを簡単に見つけることができ、LDAPサーバと対話することができます.しかしApacheDirectoryStudioでは、このソフトがSchemaデータを展示し、公式ドキュメントを真剣に見ていました.まだSchemaデータの照会を説明する場所は見られませんでした(ドキュメントに関連する説明がある場合は、伝言を残してください).しかしphpで書かれたクライアントphpLDAPAdminが見つかり、その後、そのソースコードを通じて、Schemaデータの照会方法を発見しました.
公式文書では、Schemaデータには次の4つの部分が含まれていることがわかりました.
  • syntaxes
  • attributes
  • matching_rules
  • objectclasses

  • クエリーobjectclassesを例に挙げると(一度にクエリーすることもできます)、対応するクエリー方法は次のとおりです.
    第一のケース
    $read_ret = ldap_read($ds, 'cn=Subschema', '(objectClass=subschema)', ['objectclasses']);
    $read_ret = ldap_read($ds, 'cn=Subschema', '(objectClass=*)', ['objectclasses']);

    1つ目のクエリーが見つからない場合は、2つ目のクエリーを使用します.
    $read_ret = ldap_read($ds, 'cn=Aggregate,cn=Schema,cn=configuration,dc=example,dc=com', '(objectClass=*)';
    $read_ret = ldap_read($ds, 'cn=Schema,cn=configuration,dc=example,dc=com', '(objectClass=*)', ['objectclasses']);
    $read_ret = ldap_read($ds, 'cn=Schema,ou=Admin,dc=example,dc=com', '(objectClass=*)', ['objectclasses']);

    2番目のクエリーが見つからない場合は、3番目のクエリーを使用します.
    $read_ret = ldap_read($ds, 'cn=schema,cn=config', '(objectClass=*)', ['objectclasses']);