Foxpass の LDAP サーバーと連携するように Grafana を構成する
Grafana は、分析の視覚化と監視のためのオープン ソース プラットフォームです。インターフェイスへの認証メカニズムとして LDAP の使用をサポートします。LDAP を設定するための一般的な手順については、http://docs.grafana.org/installation/ldap/を参照してください。
Foxpass の LDAP を Grafana で使用する方法の詳細な手順を以下に示します。
ダッシュボード ページのベース DN を書き留めて、マークを付けます。
LDAP バインダー ページで、 「grafana」という名前 (または簡単に識別できる名前) の LDAP バインダー アカウントを作成します。生成されたパスワードをコピーして貼り付けます。一度だけ表示されます。
また、バインダーの CN をメモします (つまり、cn=grafana,dc=≪example≫,dc=≪com≫)。
今度は Grafana を構成します。デフォルトでは、LDAP 認証は無効になっています。有効にするには、次を「grafana.ini」に追加します。
...
[auth.ldap]
enabled = true
allow_sign_up = true
config_file = /etc/grafana/ldap.toml
...
上記の例では、'allow_sign_up' 変数が true に設定されており、LDAP 認証が成功した場合に Grafana が新しいユーザーを作成できるようになっています。「config_file」変数は、「ldap.toml」ファイルのパスに設定されます。これは、今すぐ作成できます。「ldap.tomi」ファイルを作成したら、これらの値を入力して、二重矢印でマークされた場所に独自の情報を挿入します。
...
verbose_logging = true
[[servers]]
host = "ldap.foxpass.com"
port = 636
use_ssl = true
start_tls = false
ssl_skip_verify = false
bind_dn = "cn=grafana,dc=≪example≫,dc=≪com≫"
bind_password = '≪binder password≫'
search_filter = "(uid=%s)"
search_base_dns = ["dc=≪example≫,dc=≪com≫"]
[servers.attributes]
name = "gn"
surname = "sn"
username = "cn"
member_of = "memberOf"
email = "mail"
[[servers.group_mappings]]
group_dn = "cn=≪grafana-admins≫,ou=groups,dc=≪example≫,dc=≪com≫"
org_role = "Admin"
[[servers.group_mappings]]
group_dn = "cn=≪grafana-editors≫,ou=groups,dc=≪example≫,dc=≪com≫"
org_role = "Editor"
[[servers.group_mappings]]
group_dn = "*"
org_role = "Viewer"
...
「bind_password」の値を、最初のステップのバインダー パスワードに置き換えます。さらに、Foxpass グループを使用して特定のGrafana 権限を付与できます。上記の例では、Foxpass の「grafana-admins」グループのユーザーは Grafana の管理者としてマークされ、「grafana-editors」グループのユーザーは編集者としてマークされます。どちらのグループにも属さない他のすべてのユーザーは、ビューアーとしてマークされます。
公式の Grafana ドキュメントには、完全に文書化された「ldap.toml」の例も含まれています:http://docs.grafana.org/installation/ldap/
「ldap.toml」ファイルを保存したら、Grafana を再起動し、Foxpass 資格情報でログインします。
Grafana を Kubernetes で実行して Foxpass と統合する場合は、Grafana Helm Chartを使用すると簡単に設定できます。
Grafana Helm チャートで必要とされるように、前の手順の「ldap.toml」ファイルの名前を「ldap-toml」に変更します。
次に、次のコマンドを実行して、「ldap-toml」ファイルを含む既存の Kubernetes シークレットを作成します。
LDAP 統合は、「grafana.ini」ファイルを介して有効になります。Grafana Helm チャートを使用する場合、「grafana.ini」の内容は「values.yaml」ファイルを介して管理されます。
LDAP 構成と、以前に作成した Kubernetes シークレットへの参照を含む「foxpass_values.yaml」ファイルを作成します。
grafana.ini:
auth.ldap:
enabled: true
allow_sign_up: true
config_file: /etc/grafana/ldap.toml
ldap:
existingSecret: "grafana-ldap"
Kubernetes シークレットと Grafana Helm Chart 値の両方が作成されたら、'helm' ユーティリティを使用して Grafana をインストールまたはアップグレードします。
Grafana Helm Chart の新規インストールを作成するには、次のコマンドを実行します。
Grafana Helm Chart の既存のインストールをアップグレードするには、次のコマンドを実行します。
適切なコマンドを実行した後、「kubectl」でログを確認します。
$ kubectl get pod -l app=grafana
NAME READY STATUS RESTARTS AGE
grafana-569876bf4d-wghc8 1/1 Running 0 42m
$ kubectl logs -f grafana-569876bf4d-wghc8
t=2018-08-06T13:02:43+0000 lvl=info msg="Initializing Stream Manager"
t=2018-08-06T13:02:43+0000 lvl=info msg="Initializing HTTP Server" logger=http.server
address=0.0.0.0:3000 protocol=http subUrl= socket=
Grafana が起動したら、「kubectl port-forward」コマンドを使用して、Foxpass 資格情報を使用してログインできるかどうかを検証します。
http://localhost:3000に移動し、Foxpass 資格情報でログインします。
「ldapsearch」CLI ツールを使用して、LDAP バインダーの資格情報を検証できます。
$ ldapsearch -x -H ldaps://ldap.foxpass.com -b dc=≪example≫,dc=≪com≫ -D cn=grafana,dc≪<example≫,dc=≪com≫ -W ≪binder password≫
さらに、ログインしようとしているときに問題が発生した場合は、Foxpass LDAP ログを確認できます。