コンテンツにスキップ

LDAP_SERVER テーブル

概要

LDAP 認証サーバの一覧と global LDAP クライアント設定。hostcfgdCONFIG_DB を購読し、/etc/nslcd.conf を生成する1。最大 8 サーバまで登録可能。

データフロー (自動生成)

flowchart LR
  CDB[("CONFIG_DB<br/>LDAP_SERVER")]
  DM["hostcfgd"]
  CDB --> DM

凡例

CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。

key 構造

LDAP_SERVER|<hostname>      # サーバ別エントリ
LDAP|global                 # グローバル設定

LDAP_SERVER

フィールド 既定 説明
priority uint8 (1..8) 1 サーバ選択優先度 (大きいほど先)

key の <hostname>inet:host (FQDN または IPv4/IPv6 アドレス)。

LDAP|global

フィールド 既定 説明
bind_dn string (1..65) - バインド DN
bind_password string (1..65, ASCII printable except SPACE/#/,) - バインドパスワード
bind_timeout uint16 (1..120) 5 バインド timeout [秒]
version uint16 (1..3) 3 LDAP プロトコルバージョン
base_dn string (1..65) - ユーザ検索 base DN
port inet:port-number 389 LDAP サーバポート
timeout uint16 (1..60) - クエリ timeout [秒]

購読者

  • hostcfgd (docker-config-engine): CONFIG_DBnslcd / nss-pam-ldapd 設定

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: AAA (login source 順序), TACPLUS_SERVER, RADIUS_SERVER
  • 関連 CLI: config aaa authentication loginconfig ldap
  • 関連 YANG: sonic-system-ldapsonic-system-aaa

関連リファレンス

引用元

関連 Topics

運用ヒント

典型値

  • key 形式: LDAP_SERVER|<host> (例 LDAP_SERVER|ldap.example.com)、LDAP|global
  • port=389 (LDAP) / 636 (LDAPS)、version=3bind_timeout=5、最大 8 サーバ。

よくある誤設定

  • bind_password に SPACE / # / , を含めて YANG pattern で reject される。
  • base_dn 未設定で nslcd がユーザ検索できず認証失敗。
  • 複数 LDAP_SERVERpriority 重複でフェイルオーバ順序が不定。

確認コマンド

sonic-db-cli CONFIG_DB keys 'LDAP_SERVER|*'
sonic-db-cli CONFIG_DB hgetall 'LDAP|global'
show ldap-server
sudo cat /etc/nslcd.conf

値依存挙動マトリクス

このテーブルに strict な enum フィールドはない。数値・文字列フィールドの値で動作が決まる。

priority(LDAP_SERVER)

挙動
1〜8 サーバ選択優先度。大きいほど先に試行
重複値 CLI 上でチェックなし → nslcd 内部挿入順依存でフェイルオーバ順序が不定
9 件目以降のサーバ登録 YANG スキーマ最大数制約で exit_with_error 拒否

port(LDAP|global)

挙動
389 平文 LDAP
636 LDAPS(TLS)。nslcd.confssl on と組み合わせて使用

version(LDAP|global)

挙動
3(デフォルト) LDAPv3 を使用(推奨)
12 古い LDAP プロトコルバージョン

bind_password(文字列制約)

挙動
SPACE / # / , を含む YANG pattern 検証で exit_with_error → DB に書かれない
正常値 /etc/nslcd.confbindpw ディレクティブに反映

base_dn

挙動
設定あり nslcd.confbase ディレクティブを書き込み
未設定 base ディレクティブなし → nslcd がユーザ検索失敗 → 認証不可

例外条件・特殊挙動

条件 挙動
YANG スキーマ違反(bind_password に特殊文字等) exit_with_error(f"Error: {err}") → 処理中断。DB には書かれない
priority 重複 CLI 上でチェックなし。重複した場合は nslcd の内部挿入順依存でフェイルオーバ順序が不定になる
base_dn 未設定 nslcd.confbase ディレクティブが書かれずユーザ検索失敗 → 認証不可。DB には書ける
9 件目以降の LDAP_SERVER 追加 YANG スキーマの最大数制約により exit_with_error で拒否
hostname に不正 IP / FQDN 形式 YANG pattern 検証 → exit_with_error で拒否
bind_timeout 未設定 YANG default 5 秒が適用。nslcd.conf に bind_timelimit 5 として反映