MetabaseでのLDAP認証設定
この記事の目的
たいしてLDAPの知識もないのにMetabaseを社内のADと連携させてLDAP認証させようと思ったら、なかなか説明している記事が見つからず、適当に設定したらひどい目にあったので、設定方法、内容を残します。
前提条件
- OS
Ubuntu 18.04.3 LTS - Metabase
0.33.5
設定方法、内容
LDAP認証設定の場所
管理者のユーザーでログインし、右上の歯車のマークから「管理者」を選択することで管理者用画面に飛びます。
「設定」のメニューから「認証」を選択し、「LDAP」の「設定」を押します。
設定画面
サーバー設定
① LDAP認証
まずこれを「有効」にしないと以下の項目を設定してもログイン時LDAP認証してくれません。
② LDAPホスト
ADサーバーのホスト名、またはIPアドレス。「ldap://」は不要です。
③ LDAPポート
LDAPの場合は389、LDAPSの場合は636。
④ LDAPセキュリティ
SSL、STARTTLSを使用している場合はそちらを、使用してない場合はNone。
⑤ ユーザーネームまたはDN
MetabaseがADを検索する際に使用するユーザー。
自分が設定したのはAdministrator@ドメイン名。
⑥ パスワード
⑤のユーザーのパスワード
ユーザースキーマ
⑦ ユーザー検索ベース
絞り込むユーザーのDN。
自分が設定した際はOUに部署のGroupを設定。
⑧ ユーザーフィルター
LDAPの検索フィルター。
ここを適当に「&(ObjectClass=User)」と設定した結果、Metabaseの再インストールまで実施する羽目になった。
動きとしては、Metabaseのログイン時まずこの検索フィルターを用いてADを検索し、ヒットすればADのユーザーで認証し、ヒットしなければMetabaseのローカルユーザーで認証しているようです。
|(uid={login})(mail={login})
の{login}はログイン画面でユーザーが入力したユーザー名(メールアドレス)を指すので、「ログイン画面で入力したユーザー名がADのuidまたはmailに該当する」という条件です。
これが抜けていたのでログイン画面で何を入力しようがヒットするのは必ずADの全ユーザー中の先頭1ユーザーで、結果ローカルの管理者ユーザーもログインできなくなり、LDAPの設定も戻せなくなって詰んでしまいました。
ちなみに初期設定時は記入例がうっすら表示されているけど途中で切れています。
⑨ メール属性
「▶属性」を押さないと表示されません。
AD情報のメール属性を指定。デフォルト値の「mail」でよければ何も入力しなくてよいです。
⑩ 名の属性
「▶属性」を押さないと表示されません。
AD情報の名の属性を指定。デフォルト値の「givenName」でよければ何も入力しなくてよいです。
⑪姓の属性
「▶属性」を押さないと表示されません。
AD情報の姓の属性を指定。デフォルト値の「sn」でよければ何も入力しなくてよいです。
グループスキーマ
ADのグループとMetabaseのグループを同期する場合はこちらを設定します。
今回は割愛。
変更を保存
「変更を保存」を押して完了です。
設定に誤りがある場合は画面に赤字で表示されます。
自分が引っ掛かったのは「⑤ ユーザーネームまたはDN」あたりのフォーマットです。
これは環境によって書き方が異なるかもしれないのでAD管理者に相談した方がよいかもしれません。
正常に保存できたらADのユーザーのメールアドレスとパスワードでログインを試してみてください。
参照
https://www.metabase.com/docs/latest/administration-guide/10-single-sign-on
Metabaseの公式説明。ただユーザースキーマの設定内容等はだいぶ割愛されていてあまり役に立たなかった。