接続パラメータのLDAP検索

PostgreSQL 9.0.0文書
前のページ | 巻戻し | 第 31章libpq - C ライブラリ | 早送り | 次のページ

# 31.16. 接続パラメータのLDAP検索

libpqがLDAPサポート（`configure`時の``--with-ldap``オプション）付きでコンパイルされている場合、中央サーバからLDAPを通して`host`や`dbname`などの接続オプションを取り出すことができます。 この利点は、データベースの接続パラメータが変わった場合に、すべてのクライアントマシンで接続情報を更新しなくても済む点です。

LDAP接続パラメータ検索は、`pg_service.conf`という接続サービスファイル（項31.15を参照）を使用します。 `pg_service.conf`内の`ldap://`から始まる行は、LDAP URLとして認識され、LDAP問い合わせが実行されることを示します。 その結果は、`keyword = value`という組み合わせのリストでなければなりません。 これらが接続用オプションの設定に使用されます。 このURLはRFC 1959に従ったもので、以下のような形式でなければなりません。

    ldap://[hostname[:port]]/search_base?attribute?search_scope?filter

ここで、`hostname`のデフォルトは`localhost`、`port`のデフォルトは389です。

`pg_service.conf`の処理はLDAP検索が成功した時に終わります。 しかし、もしLDAPサーバへのアクセスができなかった場合は継続します。 これはアクセスに失敗した時に、異なるLDAPサーバを指し示す他のLDAP行や以前からの`keyword = value`の組み合わせ、デフォルトの接続オプションを参照する予備機能を提供します。 この場合にエラーメッセージを受け取りたい場合は、LDAP URL行の後に文法的に不正な行を記載してください。

LDIFファイルとして作成されたLDAP項目の例を以下に示します。

    version:1
    dn:cn=mydatabase,dc=mycompany,dc=com
    changetype:add
    objectclass:top
    objectclass:groupOfUniqueNames
    cn:mydatabase
    uniqueMember:host=dbserver.mycompany.com
    uniqueMember:port=5439
    uniqueMember:dbname=mydb
    uniqueMember:user=mydb_user
    uniqueMember:sslmode=require

これは、以下のようなLDAP URLから得られます。

    ldap://ldap.mycompany.com/dc=mycompany,dc=com?uniqueMember?one?(cn=mydatabase)

また、LDAP検索と通常のサービスファイル項目とを混在させることもできます。 `pg_service.conf`の一節について完全な例を以下に示します。

    # only host and port are stored in LDAP, specify dbname and user explicitly
    [customerdb]
    dbname=customer
    user=appuser
    ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=*)

前のページ | ホーム | 次のページ
接続サービスファイル | 上に戻る | SSLサポート