Google Workspaceとの同期

前提条件

  1. OAuth 2.0クライアントの承認済みリダイレクトURIに関するGoogleの要件に準拠するため、パブリックトップレベルドメインで終わるURI(例:.co.jp)を指定して、MailStoreサーバーにアクセスできる必要があります。ただ、これは必ずしもインターネットからアクセスできる必要があることを意味するわけではありません。Googleは、https://publicsuffix.orgのリストを検証に使用しています。
  2. 使い勝手の向上のため、MailStore Serverで使用する証明書は、すべてのクライアント上のWebブラウザによって信頼される必要があります。信頼できる認証局によって発行された証明書か、Let’s Encryptによって発行された証明書のご使用を強くお勧めいたします。
  3. ユーザーがVPNを使用せずに、MailStoreクライアント、MailStore Outlookアドイン、またはWebアクセスを使用して、組織のネットワークの外部からMailStoreサーバーにログインする場合、ここで記載されているURIは、インターネット上のDNSサーバで参照でき、使用するポートを使った通信が行える必要があります。必要に応じて、MailStoreサーバコンピュータへの接続をファイアウォールまたはルーターに設定して下さい。
  4. ログイン時にGoogleを使用したユーザー認証を行った際には、技術的な理由により、IMAPを使ってのアーカイブへのアクセスは行えません。

 

 

1)MailStoreサービスをGoogleに登録する

 

MailStore Serverなどの独自のアプリケーションや、サードパーティのアプリケーションがGoogle APIを介してGoogle Workspace(G Suite)アカウントとやり取りする場合、最初にプロジェクトとしてGoogleに登録する必要があります。これは、外部アプリケーションによるアクセスを必要最小限に制限し、各アプリケーション独自の認証情報セットを使用してGoogleで認証されるようにするためです。

 

  1. Google Developers Consoleへと移動します。

 

  1. プロンプトが表示されたら、Google Workspace(G Suite)組織の管理者権限を持つGoogleアカウントでログインします。
  2. プロジェクトが存在しない場合には、ダッシュボードの[プロジェクトの作成]をクリックします。それ以外の場合は、ヘッダーバーの[プロジェクト]ドロップダウンをクリックしてプロジェクトリストを開き、[新しいプロジェクト]をクリックします。
  3. [プロジェクト名]フィールドに分かりやすい名前を入力します(例:MailStore)。

  1. 場所が対象とする組織となっていることを確認し、[作成]をクリックします。

※プロジェクトが作成されましたら、以後の操作を行う前に、ドロップダウンリストで

プロジェクトが選択されていることを確認してください。

APIライブラリを追加する

 

ナビゲーションメニュー(☰)を開き、[ APIとサービス] > [ライブラリ]を選択し、

表示されるAPIライブラリ内より、次のAPIとサービスを有効にします。

-Admin SDK API

-Gmail API

 

3)同意画面のカスタマイズ

  1. ナビゲーションメニュー(☰)を開き、[ APIとサービス] > [ OAuth同意画面]を選択します。

 

  1. 開いたOAuth同意画面にて、Userのタイプを”内部”で選択します。
  2. [作成]をクリックします
  3. [アプリ名]フィールドに分かりやすい名前を入力します(例:MailStore)
  4. [保存]をクリックします。

 

4)認証用のサービスアカウントを設定する

MailStoreサーバーがGoogleで認証し、ユーザーの同期とメールボックスへアクセスするためにGoogle APIの使用する承認を要求する、サービスアカウントが必要です。

サービスアカウントを作成するには、次の手順で行ないます。

(例:MailStore Server Service)。

-このアカウントはMailStoreサーバーとGoogle Workspace(Gsuite)を同期する為のアカウントです。

 

注:JSONファイルは自動的にダウンロードされます。JSONファイルは、

組織のクラウドリソースにアクセスできるため、安全な場所に保存してください。

 

 

5)ユーザー認証用OAuth2.0クライアントを作成する

ユーザーがOpenID Connectメカニズムを使用してGoogleで認証することにより、MailStore Serverにログインできるようにするには、以下のようにOAuth2.0クライアントを作成する必要があります。

[OAuthクライアントID]を選択します。

書式の意味は次の通りです。

・https://

プロトコルの指定としてhttps://は必須です。後のログイン時に証明書の警告が表示されないようにするには、MailStoreサーバーで使用する証明書が、すべてのクライアント上のWebブラウザで信頼されている必要があります。

・FQDN

MailStore Serverコンピューターの完全修飾ドメイン名(例:mailstore.example.com)。これは、ユーザーがMailStoreサーバーにログインする、すべてのクライアントで名前解決ができる必要があります。

・ポート

MailStore Web AccessのTCPポート(デフォルト:8462)。これは、[ネットワーク設定] > [サービス] > [ MailStore Web Access / Outlookアドイン(HTTPS)]のMailStoreサーバーサービス構成で構成されているポートと一致する必要があります。TCPポートは、HTTPSプロトコルのデフォルトポート(443)と異なる場合にのみ必要です。

・/oidc/signin

MailStore ServerがWebブラウザを介してGoogleから認証応答を受信するパスです。

 

 

 

 

 

 

 

 

 

 

 

 

 

6)プロジェクトへGoogleアカウントでのアクセスを許可する

使用を許可するGoogle APIを定義して、新しいプロジェクトにGoogle Workspace(G Suite)アカウントへの細かいアクセスを許可します。

 

※カンマ区切りで入力します。

https://mail.google.com/,

https://www.googleapis.com/auth/admin.directory.group.readonly,

https://www.googleapis.com/auth/admin.directory.user.readonly 

 

 

ここまでで、Google側の設定は完了となります。

続いて、MailStore Server側の設定へと進みます。

 

 

 

7)MailStore ServerとGoogleを同期する

ここまで設定した情報を元に、Google側のユーザー情報をMailStoreへと取り込みます。

 

[管理ツール]> [ユーザーとアーカイブ]> [ディレクトリサービス]をクリックし、

ディレクトリサービス設定画面を表示します。

※ディレクトリサービス設定画面のイメージです。

 こちらの設定画面の中に、各情報をご入力して頂きます。

Google側と情報を同期する為、次の情報を加えます。

・キーID

※秘密キーをインポートするため、前述の[サービスアカウントの作成]の手順で、

サービスアカウント用にGoogleによって生成されたJSONファイルを選択します。

  ・サービスアカウント

サービスアカウントは、JSONファイルから自動的に決定されます。

・ユーザー名

Google Workspace(Gsuite)管理者のメールアドレス(例:admin@example.com

 

8)ユーザーデータベースの同期

上記のように接続設定を構成した後、このセクションでGoogle Workspace(G Suite)との

同期対象を指定できます。

 

予めGoogle WorkspaceとMailStoreの同期をかけたいユーザーをGoogle Workspace側にてグループ分けしておくことで、対象となるグループのみ、同期をかけることが可能となります。

 

 

 

 

 

 

9)認証

 

認証設定は、MailStoreServerがログイン時にGoogle Workspaceから同期されたユーザーを認証する方法を定義します。

 

はじめに述べたように、IMAPオプションは下位互換性のためにのみ使用できます。

 

[OAuth_2.0クライアントの作成…]で作成した、クライアントIDを入力します。

 

[OAuth_2.0クライアントの作成…]より、クライアントシークレットを入力します。

 

[OAuth2.0クライアントの作成…]で定義したものと同じリダイレクトURIを入力します。

 

 

 

 

 

 

 

 

 

 

 

10)オプション

 

Google Workspaceアカウントで削除されたユーザーをMailStoreサーバーから自動的に削除するかの選択ができます。

 

削除するユーザーの既にアーカイブフォルダに保存されているメールデータは削除されず、ユーザーエントリのみが削除されます。

 

認証方法がディレクトリサービスに設定されているMailStoreユーザーのみが削除されます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11)デフォルト権限の割り当て

 

デフォルトでは、Google WorkspaceアカウントからMailStoreServerに同期されたユーザーには、MailStore Serverにログオンする権限と、自分のユーザーアーカイブへの読み取りアクセス権があります。

 

ユーザー同期を行なう前にこれらのデフォルトの権限を設定する事で、グループや、全体ユーザーの権限を指定することができます。

 

これを行うには、[既定の権限... ]をクリックします。

 

 

 

 

 

 

12)同期の実行

 

実際の同期を実行する前に、[設定のテスト]をクリックする事で同期するユーザー情報のご確認を実施頂けます。

このテスト段階では、MailStoreサーバーのユーザーデータベースに変更を加えずにGoogle Workspaceアカウントから返された結果を確認できます。

 

実際の同期を実行するには、[今すぐ同期]をクリックします。

 

同期された内容につきましては、MailStore管理画面の[ユーザとアーカイブ]->[ユーザ]にてご確認頂けます。

 

以上でGoogle WorkspaceとMailStoreのアプリケーション同期設定及び、

アカウント同期完了までの一連の流れとなります。

 

 

 

 

 

  1. ナビゲーションメニュー(☰)を開き、[ APIとサービス] > [認証情報]を選択します。
  2. [ +認証情報を作成]をクリックし、ドロップダウンリストから[サービス アカウント]を選択します。
  3. [サービスアカウントの作成]ページで、サービスアカウントの名前を入力します
  4. 次のような説明を入力します。
  5. [作成]をクリックします。
  6. サービスアカウントにはプロジェクトレベルの権限は必要ないため、ロールは選択しないでください。
  7. [続行]をクリックします。
  8. ユーザーからこのサービスアカウントにアクセスする必要はないため、ユーザーロールや管理者ロールを指定しないで下さい。
  9. [完了]をクリックします
  10. [認証情報]ページに戻り、新しく作成したサービスアカウントをクリックして、その編集画面を開きます。
  11. ページ上部の”キー”を開き、[鍵を追加]を選択し、新しいキーを作成します。
  12. キータイプとして”JSON”を選択し、[作成]をクリックします。
  13. [閉じる]をクリックします。
  14. 上部タブより、”詳細”タブへ移動し、[ドメイン全体の委任を表示]をクリックします。
  15. [G Suiteドメイン全体の委任を有効にする]チェックボックスをオンにします。
  16. [保存]をクリックします。
  17. ナビゲーションメニュー(☰)を開き、[ APIとサービス] > [認証情報]を選択します。
  18. [ +認証情報を作成]をクリックし、ドロップダウンリストから
  19. アプリケーションの種類として“ウェブアプリケーション”を選択します。
  20. 名前を入力します(例:MailStore Server OpenID Connect)。
  21. [承認されたリダイレクトURI]の下の[ + URIを追加]をクリックします。
  22. 次の書式で、クライアントからアクセスできるURIを[ URI]フィールドに入力します。
  23. [作成]をクリックして終了します。
  24. [クライアントID]と[クライアントシークレット]欄の情報は、(パスワードのかかった)安全な場所にコピーし、[ OK ]をクリックします。
  25. Google管理コンソールを開き、Google Workspace(G Suite)ドメイン管理者でログインします。
  26. ナビゲーションメニュー(☰)を開き、[セキュリティ] > [ APIの制御]を選択します。
  27. 画面下の、”ドメイン全体の委任を管理”をクリックします。
  1. 開いた画面上部の”新しく追加”をクリックします。
  1. サービスアカウントにリンクされているOAuth2.0クライアントのクライアントIDを入力します。
  1. [ OAuthスコープ]で、次のスコープを追加します。
  1. [承認]をクリックします。
  1. MailStoreサーバー管理者としてMailStoreクライアントにログオンします。
  1. ログイン後、左側メニューより、
  1. [統合]セクションで、ディレクトリサービスの種類として”Gsuite”を選択します。
  1. これらのグループのみを同期
  1. 認証方法の選択より、"OpenIDConnect"が選択されていることを確認します。
  1. クライアントID
  1. クライアントシークレット
  1. リダイレクトURI