GCDS の一般的な問題のトラブルシューティング

Google Cloud Directory Sync(GCDS)の設定中に問題が発生した場合の解決方法を説明します。詳しくは、G Suite の報告されている問題についてのページもご覧ください。

セットアップと設定   |  エラー  |  ユーザーとグループ  |  連絡先とカレンダー  |  ルール

すべて開く   |   すべて閉じる

セットアップと設定

設定マネージャーを使用したトラブルシューティング

同期が正しく実行されない問題が発生した場合は、設定マネージャーで設定情報が正しいことを確認し、どのテストで失敗するかを確認します。

  1. 設定マネージャーで、同期の設定に使用している XML ファイルを開きます。
  2. [LDAP Connections] ページで [Test Connections] をクリックし、LDAP サーバーに接続できることを確認します。
  3. [Notifications] ページで [Test Notification] をクリックし、テスト通知を送信できることを確認します。
  4. [Sync] ページで [Simulate Sync] をクリックし、必須の欄すべてに情報を入力したことを確認してから、同期が実行されることを確認します。
ログファイルを使用したトラブルシューティング

ログファイルを使用して設定のトラブルシューティングを行うには、生成されたログを Log Analyzer に送信します。

ほとんどの場合、数分以内で問題を識別できます。

GCDS による証明書失効リストの確認

Google API(HTTPS 経由)に接続する際や SSL(Secure Sockets Layer)経由で LDAP に接続する際、GCDS は SSL 証明書を検証する必要があるため、HTTP 経由で証明書失効リスト(CRL)のプロバイダに接続します。この検証は失敗することがありますが、たいていはプロキシやファイアウォールで HTTP リクエストがブロックされることが原因です。

GCDS サーバーが HTTP(ポート 80)経由で次の URL にアクセスできることを確認してください。

  • http://crl.geotrust.com/crls/gtglobal.crl
  • http://g.symcb.com/crls/gtglobal.crl
  • http://pki.google.com/GIAG2.crl

SSL 経由の LDAP で独自の証明書を使用している場合は、追加の URL が必要になることがあります。

SSL のセキュリティが低下するため Google ではおすすめしていませんが、CRL へのアクセスを有効にできない場合、CRL チェックを無効にすることもできます。それには、GCDS のインストール ディレクトリにある sync-cmd.vmoptions ファイルと config-manager.vmoptions ファイルを編集し、次の行を追加します。

  • -Dcom.sun.net.ssl.checkRevocation=false
  • -Dcom.sun.security.enableCRLDP=false
通知サーバーを使用せずに同期のシミュレーションを行いたい

同期のシミュレーションを実行するには、メールの送信機能を備えたサーバーが必要です。メールサーバーのマシンで GCDS を実行している場合は、メールサーバーで IP アドレス 127.0.0.1 を使用できます。それ以外の場合は、正しいメール情報についてメール管理者にご確認ください。

API リクエスト用に完全な HTTP のロギングを有効にする方法

まれに、Google Cloud サポートが、GCDS でのトレースレベルのロギングの有効化に加え、完全な HTTP のロギングの有効化を依頼する場合があります。完全な HTTP のロギングは、GCDS によって行われた正確な API リクエストと、Google API からの応答を確認するために使用されます。

重要: 完全な HTTP ログには、非常に機密性の高い情報が含まれる場合があります。ログをサポートに送信する前に、機密情報(現在の refresh_token や access_token のフィールドなど)を削除してください。

完全な HTTP ログを有効にするには:

  1. sync-cmd または設定マネージャーを使用して、GCDS が実行されていないことを確認します。
  2. GCDS のインストール フォルダに移動します。
  3. jre/lib/logging.properties ファイルを編集します。
  4. 次の行をファイルの末尾に追加します。

    java.util.logging.FileHandler.pattern = %h/gcdshttp%u.%g.log
    java.util.logging.FileHandler.limit = 5000000
    java.util.logging.FileHandler.count = 100
    java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
    handlers = java.util.logging.FileHandler
    com.google.api.client.http.level = CONFIG

    com.google.gdata.client.http.HttpGDataRequest.level = ALL
    sun.net.www.protocol.http.HttpURLConnection.level = ALL

  5. ファイルを保存します。
  6. 別の GCDS 同期を実行します(ロギングを [Trace] に設定)。

    gcdshttp*.log というログファイルが、homedir(Linux®)またはプロファイル フォルダ(Microsoft® Windows®)に作成されます。これらのファイルはサイズが非常に大きくなる場合があるため、ファイルをまとめてアーカイブします。

  7. 今後大きいログファイルが作成されないようにするため、手順 4 で追加した行を削除します。

次に、次のファイルをサポートに提供します。

  • 使用した XML ファイル
  • 最新の同期のトレースレベルのログ
  • 同期で生成された gcdshttp*.log ファイル

このログを使用して、弊社のサポートチームが Directory API から GCDS に提供された情報と GCDS の応答の確認を行います。

: Fiddler™ などのデバッグ プロキシを GCDS で使用する場合は、Fiddler の証明書を書き出して GCDS に追加し、CRL のチェックを無効にします。次に、Fiddler を GCDS でプロキシ サーバーとして設定すると(通常はポート 8888 で 127.0.0.1)、接続が Fiddler によって記録されます。Fiddler のルート証明書を GCDS の Java® トラストストアに読み込む方法について詳しくは、証明書関連のエラーをご覧ください。

別のパソコンに保存されている XML ファイルを開く、または同じパソコンで別のユーザーとして XML ファイルを開く方法

別のパソコンに保存されている XML ファイルを開いたり、あるいは同じパソコンで別のユーザーとして XML ファイルを開く方法については、設定ファイルの使い方をご覧ください。

エラー

証明書関連のエラー 同期すると EntityDoesNotExist / EntityExists エラーまたは競合が発生する

XML 設定ファイルで useDynamicMaxCacheLifetime オプションを有効にします。このオプションを有効にすると、GCDS のデータ キャッシュ期間が最大 8 日に設定され、小中規模のデータセットで頻繁にキャッシュの消去が行われるようになり、キャッシュ データが古くなったり新しいデータと競合したりする回数を減らします。GCDS 3.2.1 以降で作成された構成では、useDynamicMaxCacheLifetime オプションが自動で有効になっています。

注: このようなエラーは通常、Google ドメインで直接変更を加えた場合に発生します。同期に GCDS を使用する場合は、Google ドメインに直接変更を加えることは避け、代わりに LDAP ディレクトリでユーザー、グループ、その他のエンティティに変更を加えるようにしてください。その後 GCDS を使用して、その変更を Google ドメインと同期します。

メモリ関連のエラー

メモリ関連のエラーが発生した場合は、Java 仮想マシンのヒープサイズを増やす必要があります。そのためには、GCDS のインストール ディレクトリにある sync-cmd.vmoptions ファイルと config-manager.vmoptions ファイルを編集します。関連するエントリは次のように記述されています。

  • -Xmx1000m(ヒープサイズの最大メモリ容量)
  • -Xms64m(ヒープサイズの最小メモリ容量)

sync-cmd.vmoptions ファイルと config-manager.vmoptions ファイルの両方を編集して、sync-cmd と設定マネージャーの両方のバージョンに変更を適用します。

-Xmxの数値(X の部分)を編集して、メモリ容量を増やします。数値の後の「m」は、メモリの単位がメガバイト(MB)であることを示します。適切なメモリ量は、GCDS サーバーにどれくらいのメモリ量があるか、同期にどれくらいのメモリ量が必要かによって異なります。正しいサイズを設定するまでに、何回か数値の変更が必要になる場合もあります。GCDS を実行するのに必要な空きメモリの詳細については、GCDS のシステム要件を参照してください。

キャッシュが無効でも GCDS からエラーが返される

これは、除外ルールの設定に誤りがあるなど、設定上の問題である可能性があります。このような設定の誤りは、GCDS のキャッシュに隠れていることがあります。

GCDS では、Google サービス(G Suite や Cloud Identity など)のデータが最長 8 日間キャッシュに保存されます。キャッシュされたデータのサイズによっては、これより短い期間でキャッシュがクリアされることがあります。ただし、キャッシュがクリアされない場合は、更新が最長 8 日間表示されない可能性があります。

次の方法でキャッシュを手動でクリアすることができます。

  • 設定マネージャーから同期を実行し、同期を実行する際にキャッシュをクリアするよう選択します。
  • コマンドライン flag -f を使用して、キャッシュを強制的にフラッシュします。
  • XML 設定ファイルを変更して maxCacheLifetime の値を 0 に設定します。

重要: キャッシュを強制的にフラッシュすると、同期にかかる時間が大幅に長くなります。

たとえば、LDAP データを同期して Google サービス(G Suite や Cloud Identity など)に新しいグループを作成します。その後、除外ルールを作成して、そのグループを以降の同期に含めないように設定します。この除外ルールの設定には誤りがあるため失敗しますが、以降の同期ではキャッシュされたデータが呼び出され、グループは Google サービスに残ります。キャッシュをクリアしてもう一度同期すると、設定に誤りがあるために Google サービスからグループが削除されます。

ユーザーとグループ

一部のユーザーがグループ メンバーとして同期されない

GCDS では、ユーザー検索ルールの結果とは別にグループ メンバーを同期できるように、デフォルトで INDEPENDENT_GROUP_SYNC オプションが有効になっています。グループの同期に member-reference 属性を使用している場合、GCDS はユーザー検索ルールにかかわらず、LDAP ディレクトリの各ユーザーのメールアドレスを解決しようとします。

INDEPENDENT_GROUP_SYNC オプションを無効にすると、GCDS はユーザー検索ルールの結果のみを使用してグループ メンバーを解決しようとします。一部のユーザーがユーザー同期の対象に含まれていない場合、こうしたユーザーはグループ メンバーとして同期されません。このことは、共有の連絡先を同期している場合に特に重要です。グループ メンバーに連絡先として登録されたユーザーが含まれる場合、これらのメンバーはグループ メンバーとして同期されません。

INDEPENDENT_GROUP_SYNC は有効にしておくことを強くおすすめします。これを無効にする機能は、旧バージョンとの互換性およびトラブルシューティング目的でのみ用意されています。

一部のユーザーやグループが同期のたびに再作成される

これが発生するのは、グループ名属性として設定されている LDAP 属性に完全なメールアドレスが含まれていない場合です。この問題を解決するには、グループ検索ルールで、GCDS がグループ名に完全なメールアドレスを使っていることを確認します。確認は次のいずれかの方法で行います。

  • グループ名属性を、メールなど各グループのメールアドレス全体を指定する別の LDAP 属性に設定します。
  • [Google Domain Settings] で [Replace domain names in LDAP email addresses] を有効にし、グループ名属性が Google 側のグループ名と一致するようにします。
  • グループ検索ルールでグループ名のサフィックスを指定して、ドメイン名をグループ名に追加します。
Active Directory のメンバーが 1,500 人を超えるグループが正しく同期されない

[LDAP Configuration] セクションの [Server Type] 欄で、[MS Active Directory] を選択していることを確認します。

[Replace domain names in LDAP email addresses] を使用する状況

このオプション(XML ファイル内で SUPPRESS_DOMAIN と表示されます)は、LDAP ディレクトリのメールアドレスが Google ドメインとは異なるドメインにある場合に使用します。このオプションを有効にすると、GCDS で読み込まれるすべてのメールアドレスからドメインの部分が削除されます。

すべての処理がドメイン名なしで実行されます。メールアドレスに基づいた除外ルールを使用する場合、除外ルールを作成する際にメールアドレスのローカル部分だけを考慮する必要があります。

たとえば、[Replace domain names in LDAP email addresses] を無効にして完全一致除外ルールを作成する場合は、一致するユーザーのメールアドレスとして「johndoe@company.com」を入力します。一方 [Replace domain names in LDAP email addresses] を有効にしている場合は「johndoe」だけを入力します。比較する前に @company.com が削除されるため、johndoe@company.com と一致させることはできません。

静的グループと動的グループをネストしたい

GCDS を使用してグループをプロビジョニングする場合、動的グループを静的グループの下に(または静的グループを動的グループの下に)ネストすることはできません。GCDS では、すべてのネストされたグループを同じクエリに含める必要があると同時に、静的グループと動的グループを分けてクエリを行う必要があります。

動的グループを静的グループとして実装する方法を探します(すべての動的グループに定期的にクエリを行ってディレクトリ内の静的グループにデータを入力する、というタスクを自動化する方法で実装できる可能性があります)。動的グループが静的グループとして実装されたら、動的グループから作成された静的グループを使って、GCDS がプロビジョニングを行います。この場合、動的グループのプロビジョニングは行われません。

連絡先とカレンダー

GCDS で同期後にドメイン ディレクトリに連絡先が重複して表示される

この問題は一般に、共有の連絡先を同期していて、かつ作成した検索ルールが適切でない場合に発生します。

GCDS で同期可能なオブジェクトのうち関連があるのは、次の 2 つです。

  • ユーザー プロフィール - 電話番号や住所などの追加のデータが登録されている Google ドメインのユーザー。同期できるのは、ドメインに存在するユーザーのプロフィールのみです。
  • 共有の連絡先 - ドメイン内のユーザーが連絡する必要のある外部の連絡先。

この問題を解決するには、ドメイン内のユーザーを除外するように共有の連絡先の検索ルールを修正します。すると、次回の同期時に重複する連絡先の削除が試みられます。場合によっては、その最初の同期のときだけ、共有の連絡先の削除制限設定の調整が必要になります。

Google カレンダーのメインの勤務地が一部のユーザーに表示されない

状況によっては、会議を設定したり調整したりするときに、ユーザーに Google カレンダーの主な勤務先が表示されないことがあります。

この問題が発生した場合は、[勤務地の種類] と [地域の属性] が「desk」に設定されていることを確認します。

ルール

検索ルールが機能しない

ルールの適用先を確認します。適用先を SUBTREE に設定する必要がある場合があります。

除外ルールの作成時に [OK] ボタンが表示されない

使用しているフォントが画面に対して大きすぎる可能性があります。このダイアログ ボックスは、大きなフォントや特大フォントに対応していません。フォントサイズを変更するか、XML ファイルを直接編集します。

この情報は役に立ちましたか?
改善できる点がありましたらお聞かせください。