LDAP 認証により、有効な認証情報を持つユーザーのみが Kyuubi Server に接続し、Spark セッションを開始して SQL クエリを実行できます。このトピックでは、Kyuubi Gateway の LDAP 認証を構成する方法について説明します。
前提条件
開始する前に、以下が揃っていることを確認してください。
Kyuubi Gateway とトークン。詳細については、「Kyuubi Gateway の管理」をご参照ください。
以下のいずれかのエンジンバージョン。
esr-4.x: esr-4.3.0 以降
esr-3.x: esr-3.3.0 以降
esr-2.x: esr-2.7.0 以降
(オプション) EMR on ECS クラスターの OpenLDAP サービスを使用する場合は、OpenLDAP が有効化され、ユーザーが追加された EMR on ECS クラスターが必要です。詳細については、「クラスターの作成」および「OpenLDAP ユーザー管理」をご参照ください。
ステップ 1: ネットワーク接続の確認
Kyuubi Gateway は、ネットワーク経由で LDAP サービスに到達できる必要があります。続行する前に、EMR Serverless Spark とご利用の Virtual Private Cloud (VPC) 間のネットワーク接続を確認してください。詳細については、「EMR Serverless Spark と他の VPC 間のネットワーク接続」をご参照ください。
Kyuubi Gateway が LDAP サービスに到達できない場合、すべてのパラメーターが正しく構成されていても、接続時に認証が失敗します。ステップ 2 に進む前に、ネットワークの問題を解決してください。
ステップ 2: Kyuubi Gateway の構成
ご利用の Kyuubi Gateway でアクティブなセッションを停止します。
Kyuubi Gateway エディターを開き、[ネットワーク接続] ドロップダウンからネットワーク接続を選択します。
以下のパラメーターを [Kyuubi 設定] に追加します。
kyuubi.authentication LDAP kyuubi.authentication.ldap.url ldap://<ldap_url>:<ldap_port>/ kyuubi.authentication.ldap.baseDN <ldap_base_dn> kyuubi.authentication.ldap.userDNPattern <ldap_user_pattern> kyuubi.authentication.ldap.binddn <ldap_bind_dn> kyuubi.authentication.ldap.bindpw <ldap_bind_pwd>変更を有効にするために Kyuubi Gateway を再起動します。
パラメーターリファレンス
ご利用の LDAP サービスに基づいてプレースホルダー値を置き換えます。以下の例では、OpenLDAP セットアップを使用しています。
| パラメーター | 説明 | 例 (OpenLDAP) |
|---|---|---|
kyuubi.authentication | 認証タイプ。LDAP 認証を有効にするには、LDAP に設定します。 | LDAP |
kyuubi.authentication.ldap.url | LDAP サービスの接続アドレス。形式: ldap://<host>:<port>/。OpenLDAP のデフォルトポートは 10389 です。 | ldap://master-1-1.c-xxxxxxxxxx.cn-hangzhou.emr.aliyuncs.com:10389/ |
kyuubi.authentication.ldap.baseDN | LDAP 検索のベース DN。 | o=emr |
kyuubi.authentication.ldap.userDNPattern | ログインユーザー名を完全な DN に変換するために使用されるパターン。%s をユーザー名のプレースホルダーとして使用します。ユーザー test がログインすると、これは uid=test,ou=people,o=emr に解決されます。 | uid=%s,ou=people,o=emr |
kyuubi.authentication.ldap.binddn | ルックアップのために LDAP サービスにバインドするために使用される DN。 | uid=admin,o=emr |
kyuubi.authentication.ldap.bindpw | バインド DN のパスワード。EMR on ECS の OpenLDAP の場合、OpenLDAP サービス構成で admin_pwd 値を見つけます。 | — |
ステップ 3: LDAP 認証情報での接続
接続する前に、Kyuubi Gateway 管理ページから以下の値を収集します。
| プレースホルダー | 確認場所 | 備考 |
|---|---|---|
<endpoint> | 概要 タブ — エンドポイント (パブリック) または エンドポイント (内部) | 内部エンドポイントは、同一 VPC 内でのみ機能します。 |
<port> | — | 443(パブリックエンドポイント用)、80(内部エンドポイント用) |
<token> | トークン管理 タブ | — |
<username> および <password> | ご利用の LDAP サービスの認証情報 | ECS 上の EMR で OpenLDAP を使用する場合:ユーザー管理 ページから取得した認証情報 |
オプション 1: kyuubi-beeline
インライン認証情報 — ユーザー名とパスワードをコマンドに直接含めます。
kyuubi-beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' \
-n <username> -p <password>インタラクティブなプロンプト — パスワードを省略してインタラクティブに入力します (文字は表示されません)。
kyuubi-beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>' \
-n <username> -pシェル履歴やログにパスワードが公開されるのを避けるために、インタラクティブなプロンプト方式を使用してください。
オプション 2: JDBC URL
Java アプリケーション、または JDBC 接続文字列を受け入れる任意のクライアントの場合:
jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<username>;password=<password>トラブルシューティング
構成後すぐに接続が失敗する
以下を確認してください。
ネットワーク: Kyuubi Gateway が LDAP ホストとポートに到達できることを確認します。可能であれば、同じ VPC 内から接続テストを実行してください。
LDAP URL 形式: URL が正しい形式 (
ldap://<host>:<port>/) であることを確認します。バインド DN とパスワード:
kyuubi.authentication.ldap.binddnおよびkyuubi.authentication.ldap.bindpwが有効な LDAP アカウントと一致することを確認します。
正しい認証情報で認証が失敗する
userDNPattern の不一致: 解決された DN は、ご利用の LDAP ディレクトリで使用されている正確な形式と一致する必要があります。OpenLDAP の場合、LDAP ブラウザツールを使用して、実際のユーザーエントリに対してパターンを確認します。
baseDN の範囲: ユーザーエントリが構成された
baseDNの範囲外にある場合、ルックアップはユーザーを見つけません。必要に応じて、baseDNを上位レベルのエントリに調整してください。
トークンまたはエンドポイントのエラー
接続 URL が拒否された場合は、以下を確認してください。
トークンが期限切れになっておらず、取り消されていません(トークン管理 タブ)。
ポートがエンドポイントタイプと一致しているか: パブリックの場合は
443、内部の場合は80。