オープンソース

一覧へ

5. LDAPサーバとの連携設定

Zulipでは、様々な認証サービスを使ってユーザー認証を行うことができます。 現在サポートされている認証サービスは次の通りです。

  • LDAP
  • SAML
  • Oauth
  • OpenID Connect(OIDC)

認証の設定は、管理画面からは行うことができないため、Zulipを導入しているサーバの設定ファイルに直接設定を行います。

本書では、LDAPサービスとの連携例を解説します。

5.1. LDAPと連携できる情報

ZulipとLDAPを連携した場合、次のようなことができるようになります。

  • LDAPを利用してユーザー認証を行う
  • LDAPの属性値をZulipユーザー属性(IDやメールアドレス等)と同期する
  • LDAPのグループとロールをマッピングする
  • LDAPのグループと所属するチャンネルをマッピングする

5.2. LDAP認証設定

LDAPのユーザーを利用して認証・情報の同期を行う方法を記載します。

管理者権限でZulipサーバにログインし、以下ファイルを編集します。

/etc/zulip/settings.py
AUTHENTICATION_BACKENDS: tuple[str, ...] = (
  "zproject.backends.ZulipLDAPAuthBackend",  # LDAP, setup below
)
AUTH_LDAP_SERVER_URI = "ldaps://ldap.example.com"
AUTH_LDAP_BIND_DN = "cn=manager"
AUTH_LDAP_USER_SEARCH = LDAPSearch(
    "ou=users,dc=example,dc=com", ldap.SCOPE_SUBTREE, "(|(uid=%(user)s)(mail=%(user)s))"
LDAP_EMAIL_ATTR = "mail"
AUTH_LDAP_REVERSE_EMAIL_SEARCH = LDAPSearch("ou=User,dc=example,dc=com",
ldap.SCOPE_SUBTREE, "(|(uid=%(email)s)(mail=%(email)s))")
AUTH_LDAP_USERNAME_ATTR = "uid"
AUTH_LDAP_USER_ATTR_MAP = {
  "full_name": "cn",
}

設定値の解説は以下の通りです。

  • AUTHENTICATION_BACKENDS
    • 認証バックエンドの登録を行います。LDAP用のバックエンドを指定することで、認証処理をLDAPとすることができます
  • AUTH_LDAP_SERVER_URI
    • LDAPサーバのURIを指定します
  • AUTH_LDAP_BIND_DN
    • LDAPのバインドDNを指定します
  • AUTH_LDAP_USER_SEARCH
    • ユーザーIDからユーザーを特定するための検索条件を指定します
  • AUTH_LDAP_USERNAME_ATTR
    • ユーザーIDが格納されている属性を指定します
  • AUTH_LDAP_REVERSE_EMAIL_SEARCH
    • メールアドレスからユーザを特定するための検索条件を指定します
  • LDAP_EMAIL_ATTR
    • メールアドレスが格納されている属性を指定します
  • AUTH_LDAP_USER_ATTR_MAP
    • LDAPのユーザー属性をZulipのユーザープロフィール項目にマッピングします

また、 zulip-secrets.conf に以下を設定します。

auth_ldap_bind_password = abcd1234

設定値の解説は以下の通りです。

  • auth_ldap_bind_password
    • LDAPのバインドパスワードを指定します

入力が完了したら、以下コマンドを実行し設定を反映します。

# su zulip -c '/home/zulip/deployments/current/scripts/restart-server'

最後に、ホーム画面から 歯車アイコン組織の設定認証方法 の順にクリックし、 LDAP にチェックを入れます。

_images/ldap1-1.png _images/ldap1-2.png

これにより、LDAP認証が有効化され、設定した条件に合致するLDAPユーザーでZulipにログインすることができるようになります。

一覧へ