オープンソース

一覧へ

3. 認証サービス連携について

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

  • CAS
  • LDAP
  • Oauth
  • SAML
  • WordPress

認証の設定は、設定画面の該当するメニューから設定が行えます。

_images/auth1.png

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

3.1. LDAPサービス連携

3.1.1. LDAPと連携できる情報

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

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

3.1.2. 基本的なLDAP認証設定

まず基本的な内容として、LDAPのユーザーを利用して認証・情報の同期を 行う設定についてです。

最初に、LDAPの設定画面の接続タブの設定項目を設定します。

_images/ldap1.png

設定する内容は次の通りです。

  • 有効にする
    • 有効にするとLDAP連携機能が有効化されます
  • サーバーの種類
    • LDAPサーバの種類を選択します
  • ホスト
    • LDAPサーバのドメインまたはIPアドレスを入力します
  • ポート
    • LDAPサーバのポートを入力します
  • 再接続
    • 有効化するとLDAPサーバと切断した場合に自動的に再接続を行います
  • ログインフォールバック
    • 有効にするとLDAP認証に失敗した場合に、ローカルユーザーで認証を試みます。なお次章の注意点も確認してください。

次に 認証 の項目を設定します。

_images/ldap2.png

認証の項目は、次の内容を設定します。

  • 有効
    • ユーザーDNとパスワードを使ってLDAPの認証を行う場合、有効を設定します
  • ユーザーDN
    • LDAPのBIND DNを指定します
  • パスワード
    • BINDパスーードを指定します

次に 暗号化 の項目を設定します。

_images/ldap2-2.png

暗号化の項目は、次の内容を設定します。

  • 暗号化
    • LDAPサーバとの通信の暗号化方式を指定します(StartTLS/SSL)
  • CA証明書
    • SSL証明書(CA)の内容を記載します
  • 認証できなければ拒否
    • 検証できない証明書の扱いを選択します。自己署名証明書の場合、無効にします

次に タイムアウト の項目を設定します。

_images/ldap2-3.png

タイムアウトの項目は、次の内容を設定します。

  • タイムアウト(ミリ秒)
    • LDAPの処理全体のタイムアウトをミリ秒で指定します
  • 接続タイムアウト(ミリ秒)
    • 接続のタイムアウトをミリ秒で指定します
  • アイドルタイムアウト(ミリ秒)
    • LDAP操作後に接続を閉じるまでのタイムアウトをミリ秒で指定します

ここまでの設定で、LDAPとの基本的な接続の設定は完了しました。

ここからLDAPの属性とRocket.Chatのユーザー属性のマッピング設定に入ります。

まず ユーザー検索 のタブで、ユーザーの検索フィールドを設定します。

_images/ldap3.png

設定する内容は次の通りです。

  • ログイン後にユーザーを検索
    • ActiveDirectoryや一部LDAPサーバ特有のパスワード無しの認証の問題を回避するためのオプションです。特に問題無い場合、有効にすることを推奨します。

次に 検索フィルター の項目を設定します。

_images/ldap3-2.png

検索フィルターの項目は、次の内容を設定します。

  • ベースDN
    • LDAPの検索ベースDNを指定します
    • この項目は、ユーザーを特定するためのフィールドとして使われます。Rocket.Chatでログインした場合には、この情報を使ってLDAPにセルフバインドが行われます。
  • フィルター
    • LDAPからユーザーを検索する際の検索フィルタを指定します
  • 範囲
    • LDAPの検索スコープを指定します
  • 検索フィールド
    • 認証を行うためのフィールドを指定します
  • 検索ページサイズ
    • LDAP検索時の結果取得数を指定します
  • 検索サイズ制限
    • LDAPが返すエントリの最大数を指定します

次に グループフィルター の項目を設定します。

_images/ldap3-3.png

グループフィルターの項目は、次の内容を設定します。

  • LDAPユーザーグループフィルターを有効にする
    • 有効化すると、LDAPアクセスをグループ内のユーザーに制限できます
  • グループObjectClass
    • LDAPグループのオブジェクトクラスを指定します
  • グループID属性
    • グループのID属性を指定します
  • グループメンバー属性
    • グループのメンバ属性を指定します
  • グループメンバー型式
    • LDAPのグループに登録されているメンバーデータの形式を指定します
    • 例: uid=#{username},ou=users,o=Company,c=com
  • グループ名
    • ユーザーが所属するグループ名を指定します

続いて データ同期 のタブから、データ同期の設定を行います。

_images/ldap4.png

設定する内容は次の通りです。

  • 一意の識別子フィールド
    • LDAPユーザーとRocket.Chatユーザーをリンクするためのフィールドです。複数の値をカンマ区切りで指定すると LDAP レコードからそれぞれ取得することを試みます。
  • 既存ユーザーのマージ
    • 有効化すると、LDAPと同じユーザーIDを持つRocket.chatの内部ユーザーの情報がマージされます。
  • ログオン時にユーザーデータを更新
    • 有効化するとログイン時にユーザーデータ(名前・メールアドレス等)を同期します
  • デフォルトドメイン
    • 指定されている場合、電子メール情報が取得できないユーザーの電子メールアドレスのドメインとして、この情報を利用します

次に アバター の項目を設定します。

_images/ldap4-2.png

アバターの項目は、次の内容を設定します。

  • ユーザーのアバターの同期
    • 有効化するとアバターの画像をLDAPから取得できます
  • ユーザーアバターフィールド
    • アバター画像が保存されているLDAPフィールドを指定します

次に マッピング の項目を設定します。

_images/ldap4-3.png

マッピングの項目は、次の内容を設定します。

  • ユーザー名フィールド
    • 新しいユーザーのユーザー名として使用されるフィールドを指定します
  • メールフィールド
    • 新しいユーザーのメールアドレスとして使用されるフィールドを指定します
  • 名前フィールド
    • 新しいユーザーの表示名として使用されるフィールドを指定します

以上の設定を行い、設定の保存すると次回ログインからLDAPに登録されたユーザーで ログインできるようになります。

3.2. LDAP連携の注意点

3.2.1. ログインフォールバックについて

ログインフォールバックを無効にする場合、管理者ユーザーがLDAPに存在する必要があります。ロールのマッピング等がうまくいっていることを確認した後に、無効にするようにしてください。

3.2.2. パスワードの同期について

基本的にLDAPとRocket.Chatのパスワードは、同期されません。 ただしLDAPを利用したログイン時に、パスワードがRocket.Chatの内部DBに保存されます。 上記のログインフォールバックの機能では、この内部DBに保存されたDBでログインができる状態が維持されます。

便利な機能ですが、問題も存在します。例えば次のような状況が発生します。

  1. LDAPでRocket.Chatに初回ログイン(内部DBに登録されるパスワード: original)
  2. LDAP上でパスワードを変更(変更後のパスワード: newpassword)
  3. Rocket.Chatに古いパスワード(original)を利用してログインする
  4. ログインができる

これは内部的には、LDAP認証が失敗した後フォールバックして、内部DBのパスワードを利用して認証するため発生する問題です。

現状この問題の根本的な回避策は存在しないため、LDAPでパスワードを変更した際には、 運用ルールとして、Rocket.Chatに再ログインさせるなどの措置が必要です。

一覧へ

OSS情報

Rocket.Chat〜オンプレ用のチャット〜
ここでは、オンプレミス環境にシンプルなチャットシステムを構築できるOSSのチャットソフトウェア「Rocket.Chat」導入のメリットを紹介します。
便利機能
ここでは、実運用時に役立つ便利な使い方を紹介します。
アプリの使い方
ここでは、アプリの使い方を紹介します。
会話ログ機能
ここでは、管理者が専用のWEBページから、チャット利用者の投稿を確認できる「会話ログ機能」について紹介します。
インストール方法
ここでは、チャット機能をCentOS7へインストールする方法について紹介します。
ユーザマニュアル
デージーネットで独自に作成した日本語のユーザマニュアルです。
管理者マニュアル
デージーネットで独自に作成した日本語の管理者マニュアルです。