AD同期ツールの管理
AD同期ツールは、Windows、Linux、またはmacOSシステムで実行して、Active Directory(AD)またはLDAPサーバーとZoomアカウントの間でユーザーとグループを同期できるコマンドラインツールです。このツールを使用すると、LDAP / ADシステムでユーザーとグループの変更があった場合に、Zoomアカウントのユーザーとグループを自動的に管理できます。
ツールはコンソールで実行され、GUIまたはウェブインターフェースは含まれません。設定はプロパティファイルを使用して構成され、ログファイルを確認して詳細の変更を表示したり、エラーをトラブルシューティングしたりできます。
AD同期ツールを使用すると、LDAP / AD サーバーの変更に基づいてユーザーを作成、更新、無効化、削除し、Zoomユーザーのメールを更新(新しいメールドメインは関連ドメインである必要があります)し、パスワードが変更、削除、無効になった場合にユーザーをサインアウトできます。このツールを使用すると、Zoomグループの作成、更新、削除に加えて、グループメンバーの追加や削除も可能になります。
AD同期ツールは、以下の属性をサポートします。
ユーザー:
- 名
- 姓
- メール
- 部門
- 役職
- 電話番号
- 会社
- コストセンター
- 従業員ユニークID
グループ:
AD同期ツールを使用するための要件
AD同期ツール向けのサーバー間OAuthアプリを作成する方法
ユーザー編集権限を確認する
このアプリを作成するには、ユーザーは「User:Edit」権限が必要です。
- Zoomウェブポータルに、管理者またはロール管理の編集権限を持つユーザーとしてサインインします。
- ナビゲーションメニューで、[ユーザー管理]、[ロール] の順にクリックします。
- [すべて] タブで、確認するロールタイプの名前をクリックします(例: 管理者)。
- [ユーザーと権限の管理] で、このロールに [ユーザー] に対する [編集] 権限があることを確認します。
詳しくは、ロール管理をご覧ください。
アプリを作成する
Zoom App Marketplaceでツールのサーバー間OAuthアプリを作成する必要があります。User:Edit権限を持つユーザーのみがこのタスクを完了できます。
- Zoom App Marketplaceにサインインします。
- 右上隅の [開発] をクリックしてから、[サーバー間アプリを構築] をクリックします。
- アプリ名を入力して [作成] をクリックします。
- [アプリ認証情報] タブで、アカウントID、クライアントID、クライアントシークレットを表示します。これらの認証情報を使用して、Zoomで認証します。
- [情報] タブに、簡単な説明、会社名、開発者の連絡先情報(アクティベーションに必要な名前とメールアドレス)など、アプリに関する情報を追加します。
- [スコープ] タブで [スコープを追加] をクリックし、以下のスコープを追加します。
- [ユーザー]、[ユーザー情報の表示とユーザーの管理] の順にクリックし、[ユーザーのトークンを削除] のスコープを選択します。
- [SCIM2]、[Zoom SCIM2 APIを呼び出す] の順にクリックしてから、[Zoom SCIM2 APIを呼び出す] のスコープを選択します。
- [完了] をクリックします。
- [続行] をクリックします。
- [アクティベーション] タブでアプリを有効にします。
AD同期ツールのクイックスタート
- JDKバージョン17以降をインストールし、以下のコマンドを実行して Java が正しくインストールされていることを確認します。
java -version - 次のロケーションからzoomadsynctool.zipファイルを取得します。 https://cdn.zoom.us/prod/tools/zoomadsynctool.zip
- zoomadsynctool.zipファイルを解凍します。
- config.propertiesファイルをバックアップおよび更新します。これは構成セクションで説明されています。
- ツール構成ファイルの機密情報を保護する秘密コードを用意します。この秘密コードはツールを実行するたびに必要になります。
- 以下のコマンドを実行して、ツールの初期化設定を完了します。
bin/adtool.cmd setup - 次のコマンドを実行して、config.propertiesファイルの正確性と同期の結果を検証します。
bin/adtool.cmd preview - config.propertiesファイルとLDAP / ADのユーザー / グループを修正し、プレビューコマンドを再度実行して期待通りの結果になるかどうかを検証します。
- 構成が正しく、プレビューコマンドが期待する結果を出した場合、次のコマンドを実行して同期操作を開始します。
bin/adtool.cmd sync
注: ユーザーがActive Directoryに存在しない場合、同期を実行するか、コマンドを開始するとZoomアカウントから既存のユーザーが削除されるか非アクティブ化されます。Zoomアカウント構成を参照してください。
zoom.allow.delete.missing.user
注: 大量のデータを同期する場合、このコマンドの実行には時間がかかります。実行中に追加の操作を実行することは避けてください。 - (オプション) 次のコマンドを実行して、LDAP / ADシステムの変更を継続的に監視および同期します。
bin/adtool.cmd start
注: AD同期ツールをデーモンサービスとして起動します。40分ごこにインクリメンタル同期が継続して実行されます。パスワード変更イベントも監視されます。 - コマンド実行が失敗した場合は、ログファイルを確認してください。
AD同期ツールの設定方法
config.propertiesファイルには、ツールが同期を実行する方法を決定するパラメータのセットが含まれています。次の2種類の同期を実行できます。
- 完全同期: すべてのZoomユーザー / グループとADユーザー / グループを比較し、すべてのADユーザーとグループをZoomに同期します。
- インクリメンタル同期: 前回の同期で変更されたADユーザー / グループのみをZoomに同期します。
ファイルの以下のセクションの値を更新する必要があります。
注: このファイルに認証情報を追加しないでください。
Zoom設定(更新された値が必要)
- zoom.vanity.url: 自分のZoomバニティURLです。
同期オプション(更新された値が必要)
- zoom.default.user.type: 新規Zoomユーザーをプロビジョニングする際のデフォルトユーザータイプです。ユーザータイプは、1: ベーシック、2: ライセンスユーザー、3: オンプレミスです。デフォルト値は「2」です。
- zoom.allow.create.user: これらのユーザーがADに存在する場合、新規Zoomユーザーを作成するかどうかを決定します。値が「true」(真)の場合は新規ユーザーが作成され、「false」(偽)の場合は作成されません。
- zoom.allow.update.user: ユーザーがADとは異なる場合に、Zoomユーザーを更新するかどうかを決定します。値が「true」(真)の場合は更新され、「false」(偽)の場合は更新されません。
- zoom.allow.delete.user: ADからユーザーが削除された場合、該当するZoomユーザーを削除するかどうかを決定します。値が「true」(真)の場合は削除され、「false」(偽)の場合は削除されません。
- zoom.default.user.delete.behavior: 「削除」の操作を実行する際に、Zoomからユーザーを削除または非アクティブ化するかどうかを決定します。値が「1」の場合は非アクティブ化され、「2」の場合は削除されます。デフォルト値は「1」です。これはzoom.allow.delete.userまたはzoom.allow.delete.missing.userによって決定します。
- zoom.allow.delete.missing.user: 完全同期コマンド(このツールを初めて実行するとき)で、これらのユーザーがADに存在しない場合、Zoomからユーザーを削除するかどうかを決定します。値が「true」(真)の場合は存在しないユーザーが削除され、「false」(偽)の場合は削除されません。デフォルト値は「false」(偽)です。既存のZoomユーザーに影響を与えたくない場合は、「false」(偽)を選択します。
- zoom.allow.sync.group: ADとZoomの間でグループを同期するかどうかを決定します。ADとZoom間のグループ同期を許可する場合は、LDAP / AD設定の「ldap.servers[0].groups」を空白のままにします。値が「true」(真)の場合はADとZoom間のグループが同期され、「false」(偽)の場合グループは同期されません。
- zoom.allow.create.group: これらのグループがADに存在する場合、新規Zoomグループを作成するかどうかを決定します。値が「true」(真)の場合は新規グループを作成し、「false」(偽)の場合は削除しません。
- zoom.allow.update.group: Zoomグループ情報(名前やメールエイリアス)を更新するかどうか、またはグループメンバーを追加または削除するかどうかを決定します。値が「true」(真)の場合は更新され、「false」(偽)の場合は更新されません。
- zoom.allow.delete.group: ADからグループが削除された場合、該当するZoomグループを削除するかどうかを決定します。値が「true」(真)の場合は削除され、「false」(偽)の場合は削除されません。
- zoom.monitor.job.interval.minutes: モニタージョブの実行間隔です。デフォルトの間隔は15分です。
- zoom.incremental.sync.job.interval.minutes: インクリメンタル同期ジョブの実行間隔です。デフォルトの間隔は40分です。
LDAP / AD設定(更新された値が必要)
このツールは複数の LDAP / AD サーバー接続をサポートします。値「n」はLDAP サーバーのインデックスを特定します。nの値は「0」から始まります。
- ldap.servers[n].url: LDAPサーバーまたはActive DirectoryサーバーのLDAPサーバーURL。
- ldap.servers[n].base: ユーザーを見つけるための基本フォルダーの場所。
- (オプション)ldap.servers[n].groups[m]: ユーザーグループの完全なDNです。この値が空の場合、すべてのグループのユーザーがZoomに同期されます。ユーザーグループのDNを指定すると、指定されたグループのメンバーのみがZoomに同期されます。グループでユーザーを絞り込まない場合は、空に設定します。1つのサーバーに対して複数のグループを設定でき、「m」の値はグループのインデックスを識別します。この項目はデフォルトでは空です。
- (オプション)ldap.servers[n].deletedBase: 削除されたアイテムを検索するための基本フォルダーの場所。デフォルトは、CN=Deleted Objects,{LDAPベース名} です。実際の環境に合わせて値を更新できます。
- ldap.default.query.pageSize: LDAPサーバーは1ページ / クエリで最大数のユーザー / グループを返します。
属性マッピング(更新された値が必要)
- ldap.user.email: ADのメールフィールド名。デフォルト値はuserPrincipalNameです。
- ldap.user.firstname: ADの名フィールド名。デフォルト値はgivenNameです。
- ldap.user.lastname: ADの姓フィールド名。デフォルト値はsnです。
- ldap.user.department: ADの部門フィールド名。デフォルト値は department です。
- ldap.user.phoneNumber(デフォルトでは無効): ADの電話番号フィールド名。デフォルト値はtelephoneNumberです。
- ldap.user.jobTitle(デフォルトでは無効): ADの役職フィールド名。デフォルト値はtitleです。
- ldap.user.company(デフォルトでは無効): ADの会社フィールド名。デフォルト値はcompanyです。
- ldap.user.employeeId(デフォルトでは無効): ADの従業員ユニークID名。デフォルト値はemployeeIDです。
- ldap.user.costCenter(デフォルトでは無効): AD のコストセンターフィールド名。デフォルト値はありません。属性を選択する必要があります。
- ldap.group.name(デフォルトでは無効): ADのグループ名フィールド名。デフォルト値はcnです。
- ldap.group.email(デフォルトでは無効): ADのグループメールエイリアス名。デフォルト値はありません。属性を選択する必要があります。
注:
- マッピングにコメントを追加または削除する場合、それを反映させるためには完全同期を実行する必要があります。
- 次の3つのマッピングは必須です: ldap.user.email、ldap.user.firstname、ldap.user.lastname。これらを無効にしないでください。
- すべてのマッピング値では、大文字と小文字が区別されます。ADFSのマッピングで正しいフィールド名を取得するには、[サーバーマネージャー] > [ツール] > [Active Directoryユーザーとコンピュータ] > [対象ユーザーを選択] の順に移動し、[プロパティ] を右クリックしてから、[属性エディタ] > [属性列] の順に移動します。
ログ設定
- log.dir: ログファイルの基本ディレクトリを設定します。.または...のような相対パス、あるいはC:やD:のような絶対パスを使用できます。デフォルトは、.(current adtool- ${version} .jar file location)です。
同期コマンド
- 一般的なオプション:
- ツールのヘルプ情報を表示します。
-h、--help
- ツールのバージョン情報を表示します。
-v、--version
- コマンドオプション:
- このコマンドのヘルプ情報を表示します。
-h、--help
- サービスモードとして実行し、秘密コードの入力を義務付けない場合に指定します。
--service
setup
Zoom認証とLDAP認証の認証情報を設定します。一部の認証情報を変更する場合は、
セットアップコマンドを実行して更新できます。このコマンドを実行すると、ZoomアカウントID、
クライアントID、クライアントシークレット、ADユーザー名およびパスワードを入力するよう求められます。
セットアップフロー:
- シークレットコードを入力します。
- シークレットコードを確認します。
- ZoomアカウントID(サーバー間OAuthアプリからコピー)を入力します。
- ZoomクライアントID(サーバー間OAuthアプリからコピー)を入力します。
- Zoomクライアントシークレット(サーバー間OAuthアプリからコピー)を入力します。
- LDAPサーバーのユーザーDN(distinguishedName)を入力します。
- LDAPサーバーのユーザーパスワードを入力します。
注: シークレットコード、クライアントシークレット、パスワードは編集時には表示されません。
start
AD同期ツールをサービスとして起動します。最初に完全同期が実行され、ツールをシャットダウンするまで40分ごとにインクリメンタル同期を実行するジョブが開始します。さらに、ツールはパスワード変更イベントを監視します。このコマンドを使用すると、システムにタスクスケジューラやCRONを作成する必要がなくなります。
preview
Zoomアカウントを変更せずに同期結果をプレビューできます。ツールのオプションが期待どおりに機能することを確認するのに役立ちます。
reset
このツールの設定をリセットします。ローカル設定とツールのキャッシュデータをすべて消去します。何らかの理由でこのツールの実行に失敗した場合は、リセットコマンドを実行すると機能するようになります。
sync
LDAPからZoomに1回の完全同期またはインクリメンタル同期を実行します。完全同期を実行する前にプレビューを実行し、結果を事前確認することをおすすめします。完全同期が実行された後、インクリメンタル同期が実行されます。完全同期を実行するには、「--all」オプションを追加して同期コマンドを実行します。
monitor
ユーザーのパスワード変更イベントを監視し、LDAP / AD のパスワードが変更された場合には、該当するZoomユーザーをすべてのデバイスから強制的にサインアウトします。このツールは、LDAP / ADユーザーのパスワードが変更されたイベントを監視しますが、LDAP / ADユーザーのパスワード自体を取得することはできません。
test
設定が機能しているかどうかをテストします。認証情報を使用して、LDAP / ADサーバーとZoomの接続と認証をテストします。
AD同期ツールのコマンド実行例
コマンド実行スクリプトのパターンは、bin/{script file} {command}です。
- Windowsシステムの場合、{script file}はadtool.cmdです
- LinuxまたはmacOSシステムの場合、{script file}はadtool.shです
ツールのヘルプ / バージョン情報の例
ツールのヘルプ情報を表示する。
bin/{script file} -h
bin/{script file} --help
ツールのバージョン情報を表示する。
bin/{script file} -v
bin/{script file} --version
セットアップコマンドのヘルプ情報を表示する。
bin/{script file} setup -h
bin/{script file} setup --help
ツールの設定例
デフォルトモードでツールを設定する。
bin/{script file} setup
サービスモードでツールを設定する。
bin/{script file} setup --service
ツールをリセットする。
bin/{script file} reset
ツール実行の例
ツールをデフォルトモードで実行する。
bin/{script file} start
bin/{script file} sync
bin/{script file} preview
bin/{script file} monitor
bin/{script file} test
サービスモードでツールを実行する。
bin/{script file} {command} --service
サービスとしてのツールを実行する方法(Windows)
前提条件:
以下のコマンドを実行して、サービスモードを設定します(注:「bin/adtool.cmd setup」を実行するとサービスモードは削除されます)。
bin/adtool.cmd setup --service
- 開始: ツールを起動してバックグラウンドプロセスで実行するには、binディレクトリでstart.batファイルをダブルクリックします。ログファイルの実行ステータスを確認します。
- 停止: ツールを実行しているプロセスを停止するには、binディレクトリでstop.batファイルをダブルクリックします。
システム起動後に自動的に起動させる方法(Windows)
- [スタート] メニューで [Windows管理ツール] に移動してから、[タスクスケジューラ] をクリックします。
- [操作] メニューで [タスクを作成] をクリックします。
- [一般] タブで以下の手順に従います。
- 「ADSyncToolTask」のように、タスク名を入力します。
- [セキュリティオプション] で [ユーザーがログインしているかどうかにかかわらず実行] オプションと [最上位の特権で実行] チェックボックスを選択します。
- [トリガー] タブをクリックして以下の手順に従います。
- [新規] をクリックします。
- [タスクを開始] ドロップダウンで [スタートアップ時] を選択します。
- [OK] をクリックします。
- [操作] タブをクリックして以下の手順に従います。
- [新規] をクリックします。
- [操作] ドロップダウンメニューで、[プログラムを開始] を選択します。
- [参照] をクリックして、binディレクトリのstart.batファイルを選択し、[開く] をクリックします。
- [OK] をクリックします。
- [条件] タブをクリックして以下の手順に従います。
- [電源] で [コンピュータをAC電源で使用している場合のみタスクを開始] の横にあるチェックボックスのチェックを外します。
- [OK] をクリックします。
- [設定] タブをクリックして以下の手順に従います。
- [タスクのオンデマンド実行を許可] チェックボックスはオンにしたままで、他のすべてのチェックボックスのチェックを外します。
- [OK] をクリックします。
このツールは次回のシステム再起動で自動的に開始します。
AD同期ツールのログファイル
ログファイルを使用して同期されたレコードの詳細を確認し、失敗した同期のデバッグに役立てます。ログファイルは1種類につき1日最大1件生成できます。Zoom AD同期ツールを同じ日に複数回実行すると、その実行からの情報はその日の早期に生成されたファイルに追加されます。
- zoomadtool-sync.yyyy-MM--dd.{num}.log: これはツールがエラーを確認するための一般的なログです。
異常データファイル
異常データファイルを使用して、完全同期中の異常なユーザー / グループデータの詳細を表示します。
- abnormal-data-yyyMMdd-HHmmss.txt: これは異常データを記録するためのファイルです。
AD同期ツールのセキュリティ
ADFSのSSL / TLS接続を有効にする
ポート636経由でLDAPSを使用し、SSLを使用してActive Directoryサーバーに接続している場合、SSL証明書を取得してインストールする必要があります。でなければ次のエラーが発生する可能性があります。
「SSL / TLSがまだアクティブな接続でない場合、サーバーが整合性チェックをオンにするにはバインドが必要です...」
または
「sun.security.provider.certpath.SunCertPathBuilderException: リクエストされたターゲットへの有効な証明書パスが見つかりません。」
SSL証明書の取得とインストール
SSL証明書をインポートし、TLS経由でAD同期ツールを接続するには:
- Windows Management Server Managerを開きます。
- [ツール] で、[認証局] を開きます。
- [発行された証明書] で、目的の証明書を右クリックします。
- [プロパティ] をクリックします。
- [詳細] タブをクリックします。
- [ファイルにコピー] をクリックし、エクスポートに [Base-64 encoded x.509 (.cer)] を選択します。
- [次へ] をクリックして証明書をエクスポートします。
- エクスポートした証明書をローカルデバイスストレージにコピーします(例: D:\ca.cert)。
- コマンドコンソールを開き、次のディレクトリ変更コマンドを実行して、Java JDK binの場所にアクセスします。
cd C:\Program Files\Java\jdk-17\bin
注: このフォルダは上記と同じパスに含まれていない場合があり、実際のフォルダパスが異なる場合はコマンドを変更する必要があります。 - 以下のコマンドを実行して証明書を新しい保存場所にコピーします。
keytool.exe -importcert -keystore ..\jre\lib\security\cacerts -storepass changeit -file D:\ca.cer -alias myca
注: コマンドの構造は、次の内容に基づいています。
- **-keystore**: 新しい証明書が保存される場所。変更する必要はありません。
- **-storepass**: 証明書のパスワード。
- **-file**: エクスポートした証明書の場所。
- **-alias**: 新しい証明書のエイリアス。
- 完了すると、証明書はインポートされインストールされます。LDAP/AD URLをldaps://[address]:636に更新します。