cybozu.com と LDAP(Active Directory)とのユーザー連携サンプルツール

目次

1. はじめに

kintone や Garoon など cybozu.com を利用中でユーザーの二重管理に困っている方へ朗報です。
今回は LDAP サーバー(Active Directory や OpenLDAP など)のユーザー情報を cybozu.com と連携するサンプルツールを紹介します。

Microsoft Entra ID とユーザー情報を同期する方法は、 こちらの記事 を参照してください。

2. 概要

連携の構成は以下のとおりです。

サンプルツールは LDAP サーバーの情報を取得し、取得した内容を cybozu.com へ登録可能な CSV ファイルに出力します。
さらに、その CSV ファイルを「 ユーザー情報をインポートする」を利用して cybozu.com に登録します。

連携できるデータは以下のとおりです。

  • ユーザー
  • ユーザーの所属組織
  • ユーザーの利用サービス

「組織」、「役職」、「グループ(ロール)」、「ユーザーの所属グループ(ロール)」は連携できないのでご注意ください。
組織への所属と、役職の付与は可能ですが、事前に組織と役職を登録する必要があります。

サンプルツールのソースコードは GitHub (External link) に MIT ライセンスで公開していますので、組織などの連携にもぜひチャレンジしてください。
機能が足りない場合、ソースコードの改修も難しい場合は 連携ソリューション(有料) (External link) の利用をご検討ください。

3. 動作環境

動作環境は以下のとおりです。

  • cybozu.com
  • LDAP サーバー(Active Directory や OpenLDAP など)
  • サンプルツール実行用端末(Java 8 もしくは Java 10 が動作し、cybozu.com、LDAP サーバーにネットワーク接続できること)

4. 実行準備

サンプルツールをダウンロードしてください。
設定ファイルも必要ですのでダウンロードし、設定ファイル内のコメントに従い内容を修正してください。

  • LdapToCybozu.jar : サンプルツール
  • connection.cfg : cybozu.com と LDAP サーバーとの接続情報などを設定します。
  • user-map.cfg : LDAP サーバーと cybozu.com とのユーザー情報の紐づけを設定します。
  • org-map.cfg : LDAP サーバーと cybozu.com とのユーザーの所属組織情報の紐づけを設定します。

ダウンロードした設定ファイルは実行するのに必要な最低限の設定のみに絞っています。
さらに詳細な設定については GitHub の README (External link) を確認してください。

5. 実行方法

設定できたら、以下のコマンドで連携します。

  • CSV ファイルの作成のみを実行する場合

    1
    
    java -jar ./LdapToCybozu.jar ./connection.cfg ./user-map.cfg ./org-map.cfg -export
  • cybozu.com への登録のみを実行する場合(事前に CSV ファイルを作成する必要があります)

    1
    
    java -jar ./LdapToCybozu.jar ./connection.cfg ./user-map.cfg ./org-map.cfg -import
  • CSV ファイルの作成および cybozu.com への登録の両方を実行する場合

    1
    
    java -jar ./LdapToCybozu.jar ./connection.cfg ./user-map.cfg ./org-map.cfg -export -import

6. 便利機能

ここでは知っておくと便利な機能を紹介します。

連携の成功/失敗を判定する

連携の結果はメールなどで知りたいですよね。
連携の結果(成功/失敗)は以下のように判定できます。

  • Linux(ShellScript)の場合

  • Windows(PowerShell)の場合

組織には所属させない

org-map.cfg を指定しなければユーザーの所属組織読み込み用の CSV ファイルを作成しません。

1
java -jar ./LdapToCybozu.jar ./connection.cfg ./user-map.cfg -export

CSV ファイルが存在しなければ cybozu.com にも連携しません。
ただし、過去に org-map.cfg 指定ありで連携し、すでに CSV ファイルが存在する場合は cybozu.com に連携します。

利用サービスを設定しない

connection.cfg の設定項目「Default Service Code」をコメントアウトしてください。

ユーザープロフィールのカスタマイズ項目の連携

cybozu.com ではユーザーのプロフィールに項目を追加できます。
(追加の方法についてはこちら「 cybozu.com ヘルプ (External link) 」を確認してください)

追加したカスタマイズ項目を連携するには設定ファイル「user-map.cfg」の最下部を確認してください。

7. 運用時に気を付けること

パスワードの設定を間違えてしまうと利用者がログインできなくなるので注意してください。
設定例を紹介しますので参考にしてください。

cybozu.com をこれから利用する場合の設定例

cybozu.com 共通管理で「管理者が設定した仮パスワードの変更をユーザーに要求する」を設定し、「password=sAMAccountName」にして連携します。
すると、初回のログインはアカウント名=パスワードとなります。ログイン直後にパスワードの変更が要求されます。

このとき、2 回目以降の連携では「password=」に変更することを忘れないでください。
忘れてしまうと再度、アカウント名=パスワードに設定されます。

cybozu.com をすでに利用していて、後から連携する場合の設定例

「password=」にして連携することでパスワードは更新されません。

運用後に追加されたユーザーの対応

「password=」の設定で運用を開始した後、 LDAP サーバーに追加されたユーザーは、cybozu.com に登録はされますがログインできません。
その場合は cybozu.com 共通管理の設定で仮パスワードを発行する必要があります。

cybozu.com でパスワードを管理しない方法もあります。 Microsoft Entra ID を使って cybozu.com にシングルサインオン 連携ソリューション (External link) でシングルサインオンできます。
シングルサインオンに利用する SAML 認証の概要や注意事項は こちら(SAML認証を使用したSSOの仕組み) (External link) を確認してください。
アクセス方法によっては SAML 認証されずに cybozu.com 共通管理のパスワードで認証される場合があります。必ず注意事項を確認してください。

ユーザーの削除

LDAP サーバーのユーザーを削除しても cybozu.com 共通管理のユーザーは削除されません。 *1 削除するには手動での対応が必要です。

*1 正確には user-map.cfg の設定項目「To Be Deleted」を利用することでユーザーを削除できます。サンプルの user-map.cfg には「To Be Deleted」は記載していません。 ユーザーエントリーのプロパティを使って、ユーザーの使用を停止できます。 ^

8. 終わりに

すでに cybozu.com の運用が始まっている場合は利用を躊躇されるかもしれません。
もし良ければ以下のような始め方をご検討ください。

  • CSV の作成までを実行して、CSV の内容を確認する。
  • 連携対象となるユーザーをフィルターで絞り込む。
  • 本番環境とは異なる別のドメインで試してみる。

少しでも皆さんの運用負担が軽減されれば幸いです。

information

この Tips は、2018 年 8 月版 kintone で動作を確認しています。