LDAP 認証
StarRocks は、ネイティブなパスワードベースの認証に加えて、LDAP 認証もサポートしています。
このトピックでは、StarRocks で LDAP を使用してユーザーを手動で作成し、認証する方法について説明します。セキュリティインテグレーションを使用して StarRocks を LDAP サービスと統合する方法については、Authenticate with Security Integration を参照してください。LDAP サービスでユーザーグループを認証する方法については、Authenticate User Groups を参照してください。
LDAP 認証を有効にする
LDAP 認証を使用するには、まず LDAP サービスを FE ノードの設定に追加する必要があります。
# LDAP サービスの IP アドレスを追加します。
authentication_ldap_simple_server_host =
# LDAP サービスのポートを追加します。デフォルト値は 389 です。
authentication_ldap_simple_server_port =
# LDAP サーバへの暗号化されていない接続を許可するかどうか。デフォルト値: `true`. この値を `false` に設定すると、LDAP へのアクセスに SSL 暗号化が必要であることを示します。
authentication_ldap_simple_ssl_conn_allow_insecure =
# LDAP サーバーの SSL CA 証明書を格納するローカルパス。pem および jks 形式をサポートします。証明書が信頼できる組織によって発行されている場合は、この項目を設定する必要はありません。
authentication_ldap_simple_ssl_conn_trust_store_path =
# LDAP サーバーのローカルに保存された SSL CA 証明書にアクセスするために使用されるパスワード。pem 形式の証明書にはパスワードは必要ありません。パスワードが必要なのは jsk 形式の証明書だけです。
authentication_ldap_simple_ssl_conn_trust_store_pwd =
StarRocks が LDAP システム内でユーザーを直接取得する方法でユーザーを認証したい場合(検索バインドモード)は、以下の追加設定項目を追加する必要があります。
# ユーザーのベース DN を追加し、ユーザーの取得範囲を指定します。
authentication_ldap_simple_bind_base_dn =
# LDAP オブジェクト内でユーザーを識別する属性の名前を追加します。デフォルトは uid です。
authentication_ldap_simple_user_search_attr =
# ユーザーを取得するための管理者 DN を追加します。
authentication_ldap_simple_bind_root_dn =
# ユーザーを取得するための管理者パスワードを追加します。
authentication_ldap_simple_bind_root_pwd =
ダイレクトバインドモード(検索ステップをスキップし、構築した DN で直接バインドする)を使用する場合は、DN パターンを設定できます。ユーザー DN の構造が予測可能な場合に便利です。
# ダイレクトバインド認証の DN パターン。
# ユーザー名のプレースホルダーとして ${USER} を使用します。
# 複数のパターンはセミコロン ';' で区切ります。
authentication_ldap_simple_bind_dn_pattern =
例: uid=${USER},ou=People,dc=example,dc=com
ユーザーが複数の OU に分散している場合は、セミコロンで区切って複数のパターンを指定できます:
uid=${USER},ou=Engineering,dc=example,dc=com;uid=${USER},ou=Marketing,dc=example,dc=com
システムは各パターンを順番に試行し、最初 にバインドに成功した結果を返します。
パターンは有効な LDAP Distinguished Name(DN)を生成する必要があります。${USER}@corp.example.com のような UPN 形式のパターンはサポートされていません。結果が DN ではないため、ダウンストリームのグループ検索が失敗します。DN の属性値に @ が含まれる場合(例: uid=${USER}@corp.example.com,ou=People,dc=example,dc=com)は有効です。
DN マッチングメカニズム
v3.5.0 以降、StarRocks は LDAP 認証時にユーザーの識別名 (DN) 情報を記録および渡す機能をサポートし、より正確なグループ解決を実現します。
動作原理
-
認証フェーズ: LDAPAuthProviderは、ユーザー認証成功後に以下の2つの情報を記録します:
- ログインユーザー名(従来のグループマッチング用)
- ユーザーの完全なDN(DNベースのグループマッチング用)
-
グループ解決フェーズ: LDAPGroupProvider は、
ldap_user_search_attrパラメータの設定に基づいてマッチング戦略を決定します:ldap_user_search_attrが設定されている場合、グループマッチングのキーとしてユーザー名を使用します。ldap_user_search_attrが設定されていない場合、グループマッチングのキーとして DN を使用します。
使用例
- 従来の LDAP 環境: グループメンバーは単純なユーザー名(
cn属性など)を使用します。管理者はldap_user_search_attrを設定する必要があります。 - Microsoft AD 環境: グループメンバーにユーザー名属性が存在しない場合があります。
ldap_user_search_attrは設定できません。システムは直接 DN を使用して照合を行います。 - 混合環境: 両方の照合方法を柔軟に切り替えることがサポートされています。