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で動作を確認しています。