Google Workspaceとのユーザー連携
ユーザーは手動での追加に加え、Google Workspaceの内部ユーザーデータベースと連携する事ができます。
同期を行うと、ユーザー名やメールアドレスの情報が、Google WorkspaceからMailStore Serverへコピーされ、メールアドレス毎に、アーカイブが自動で振り分けられます。MailStore Server側からGoogle Workspaceへ変更を行う事はありません。同期の範囲はフィルタで制限する事もできます。
2019年12月に、Google Workspaceは一部のアプリケーションからのアクセスを制限すると発表しました。このアプリケーションには、MailStore Serverのバージョン13以前のものも含まれています。
MailStore Server 13は、Googleの推奨する OAuth 2.0 & OpenID Connectを使った認証方式にも対応しています。MailStore Serverでは他にもIMAPベースの認証にも対応していますが、この記事ではGoogleが将来的に必須とする認証方式を使うための設定のみを解説しています。
必須条件、推奨要件、制限
- Googleが必須としているOAuth 2.0 クライアントの認証リダイレクトURI用に、MailStore Serverは公開されているトップレベルドメインへURIでアクセスできる必要があります。これは特に必要ありません、というのも、通常トップレベルドメインへはインターネットからアクセスできるためです。Googleは https://publicsuffix.org のリストを認証に使用しています。
- ユーザーの操作性のため、MailStore Server の証明書はクライアントとウェブブラウザで承認済である事が望ましいです。第3者認証機関やLet’s Encryptで発行された署名をお勧めします。
- MailStore Client, MailStore Outlook Add-in, Web Accessを使って、MailStore ServerへVPNを使わずに社外からアクセスする場合、 この記事で説明するURIはDNSで名前解決されている必要があり、ファイアウォールやルーターで、必要に応じてMailStore Serverへポートフォワードする設定を行っておきます。
- Googleでログイン時の認証を行う場合、技術的な問題で、IMAPでのアーカイブへのアクセスは行えません。
Googleでプロジェクトの登録
MailStore ServerがGoogle APIでGoogle Workspaceと通信する場合でも、まずはGoogleでプロジェクトを登録する必要があります。これは外部のアプリケーションからGoogleへのアクセスを必要最小限とするために必要な処理です。
新しいプロジェクトの作成
MailStore Server用のプロジェクトをGoogleへ登録する手順は次の通りです。
- Google Developers Consoleへアクセスします。
- 管理権限を持つ Google Workspace用のGoogleアカウントでログインします。
- ダッシュボードでプロジェクトを作成、をクリックするか、ヘッダバーのプロジェクトドロップダウンリストから、新しいプロジェクト、をクリックします。
- プロジェクト名で、任意の名前を入力します。
- 組織名や所在地が正しいか確認します。
- 作成をクリックします。
プロジェクトを作成後、プロジェクトがドロップダウンで選択できる事を確認してください。
APIライブラリの追加
- ナビゲーションメニュー (☰) でAPIとサービス > ライブラリを選択します。
- APIライブラリ で次のAPIを検索し、有効化します:Admin SDK Gmail API
同意画面のカスタマイズ
- ナビゲーションメニュー (☰) でAPIとサービス > OAuth同意画面を選択します。
- ユーザータイプでインターナルを選択します。
- 作成をクリックします。
- App名で、任意の名前を入力します。
- 他の項目を入力します。
- 保存して続行をクリックします。
- 次のステップで、保存して続行を再度クリックします。
サービスアカウントの作成
Googleで認証を行い、ユーザー同期に必要なAPIを使用するため、MailStore Server用のサービスアカウントが必要です。サービスアカウントは次の手順で作成します。
- ナビゲーションメニュー (☰) で認証情報を選択します。
- + 認証情報を作成 をクリックし、ドロップダウンリストから サービスアカウント を選択します。
- サービスアカウントの作成 ページで、任意の名前をサービスアカウント用に入力します。
- 説明を入力します。
- 作成をクリックします。
- サービスアカウントではプロジェクトレベルの権限は必要ないため、ロールの選択は不要です。
- 継続をクリックします。
- ユーザーはサービスアカウントへアクセスする必要はありませんので、ユーザーがサービスアカウントへアクセスするのを許可する、のステップは変更の必要はありません。
- 完了をクリックします。
- 認証情報のページへ戻り、作成したサービスアカウントのプロパティを開きます。
- キーをクリックし、「鍵を作成」「新しい鍵を作成」をクリックします。
- JSONを鍵の種類として選択し、作成をクリックします。
- JSONファイルが自動でダウンロードされます。JSONファイルは組織のクラウドリソースへのアクセスを許可するためのものなので、安全な場所へ保存します。
- 閉じる、をクリックします。
- 詳細に戻り、ドメイン全体の委任を表示をクリックします。
- Google Workspaceドメイン全体の委任を有効にする をチェックします。
- 保存をクリックします。
認証情報ページの、サービスアカウント以下へサービスアカウントが追加され、対応するクライアントがOAuth 2.0 クライアントID以下に追加されました。
ユーザー認証用のOAuth 2.0クライアントの作成
ユーザーがOpenID Connectメカニズムを使ってGoogleの認証情報でMailStoreへログインできるようにするには、OAuth 2.0クライアントを次の手順で作成する必要があります。
- ナビゲーションメニュー (☰) でAPIとサービス > 認証情報を選択します。
- + 認証情報を作成 をクリックし、ドロップダウンリストから OAuthクライアントID を選択します。
- アプリケーションタイプで、Webアプリケーションを選択します。
- 名前を入力します。例. MailStore Server OpenID Connect
- Authorized redirect URIで+URIを追加をクリックします。
- URIフィールドへ、クライアントから接続できるURIを次のスキーマで入力します:https://<fqdn>[:<port>]/oidc/signin
https://
証明書の警告が後のログインで表示されないよう、MailStore Serverで使用する証明書を、全てのクライアントと使用するウェブブラウザで信頼させておく必要があります。
FQDN
MailStoreサーバーのFQDNを入力します。例. mailstore.example.com. 全てのログインするクライアント端末から名前解決できる必要があります。
Port
MailStore Web Accessのポートを指定します。 (デフォルト: 8462) これはMailStore Serverサービス設定のネットワーク設定 > サービス > MailStore Web Access / Outlook Add-in (HTTPS) の値と一致している必要があります。TCPポートはHTTPSプロトコル (443)のデフォルト値が異なる場合のみ必要です。
/oidc/signin
MailStore ServerがウェブブラウザでGoogle認証を行うURLです。
終了をクリックします。
Your Client ID と Your Client SecretからClient IDとClient secretを安全な場所へコピーし、OKをクリックします。
Product | Computername | DNS Domain | TCP Port | Resulting Redirect URI |
---|---|---|---|---|
MailStore Server | mailstore | example.com | 8462 | https://mailstore.example.com:8462/oidc/signin リダイレクトURIのFQDNとMailStore Web Accessのデフォルトポートです。 |
MailStore Server | mailstore | example.com | 443 | https://mailstore.example.com/oidc/signin HTTPSのデフォルトポートである443がMailStore Web Accessやファイアウォールのポートフォワードルールで使用される場合は、リダイレクトURIでポート指定する必要はありません。 |
MailStore SPE | archive | example.com | 443 | https://archive.example.com/<instanceid>/oidc/signin インスタンスのinstanceidはリダイレクトURIの一部です。 |
プロジェクトでGoogle Workspaceアカウントのアクセス権を付与
作成後、新しくGoogle Workspaceアカウントへのアクセス許可をGoogle APIを使ってプロジェクトへ付与します。
- Google Admin コンソール を開いて、Google Workspaceドメイン管理者でログオンします。
- ナビゲーションメニュー (☰) でセキュリティ > APIコントロール を選択します。
- ドメイン全体の委任で、ドメイン全体の委任の管理をクリックします。
- ドメイン全体の委任ページで、新しく追加をクリックします。
- サービスアカウント用OAuth 2.0 クライアントのクライアントIDを入力します。
- OAuthスコープ で次のスコープを追加します。https://mail.google.com/, https://www.googleapis.com/auth/admin.directory.group.readonly, https://www.googleapis.com/auth/admin.directory.user.readonly
- 認証をクリックします。
MailStore Serverの設定
Google側でプロジェクト設定を行った後、MailStore ServerでGoogle Workspaceとの同期やユーザー認証を行うための設定を行います。
- MailStore ClientへMailStore Server管理者でログインします。
- 管理ツール > ユーザーとアーカイブ > ディレクトリサービスへ進みます。
- 統合セクションで、ディレクトリサービスの種類をGoogle Workspaceとします。
接続
同期を行うには MailStore ServerでGoogle Workspaceへ接続するための次の情報が必要です。
- Key ID
プライベートキーをインポートするのに、Googleでサービスアカウントを作成した際生成したJSONファイルを選択します。 - サービスアカウント
サービスアカウントはJSONファイルから読み込まれます。 - ユーザー名
Google Workspace管理者のメールアドレスです (例. admin@example.com)。
ユーザーデータベースの同期
設定が完了したら、Google workspaceとの同期の範囲をフィルタクリテリアで定義できます。
- このグループだけを同期
特定のGoogle Workspaceグループのメンバーだけを MailStore Serverのユーザーとして追加したい場合は、対象のグループを選択します。MailStore Serverとの同期から特定のグループのみを除外する場合もこの設定を使用します。
認証
認証設定ではMailStore Serverがログインで使用する認証方式や、Google Workspaceとの同期方法を指定します。
- 方式
OpenID Connect が選択されている事を確認します。最初に説明したように、IMAPオプションは下位互換性のためだけに使用できます。 - Client ID
OAuth 2.0クライアントで作成したクライアントIDを入力します。 - Client Secret
OAuth 2.0クライアントで作成したクライアントSecretを入力します。 - Redirect URI
OAuth 2.0クライアントで指定したものと同じリダイレクトURIを入力します。
オプション
- MailStore Serverでユーザーを自動削除
ここでは、Google Workspaceアカウントを削除した際MailStore Serverからも該当のユーザーを削除するかどうかを指定できます。設定範囲から外れたユーザーも自動削除されます。削除されるユーザーは、MailStore Serverの認証方式をディレクトリサービスと設定されているユーザーのみです。こうしたユーザーのアーカイブフォルダはユーザーが削除されてもMailStore Server上から削除される事はありません。
デフォルト権限の設定
デフォルトで、MailStore Serverは自分自身のアーカイブへの読み取り権限とMailStoreへのログイン権限を持った状態でGoogle Workspaceアカウントと同期します。
このデフォルト権限は、例えば全てのユーザーのメールをアーカイブする権限を付与したものなどへ変更できます。デフォルト設定をクリックし、必要に応じて設定を行ってください。
ディレクトリサービス同期を実行
設定をテストボタンをクリックし、Google Workspaceアカウントからの結果を確認できます。これはMailStore Serverのユーザーデータベースへの書き込みは行いません。
同期を行う場合には「今すぐ同期」をクリックします。MailStore Serverのユーザーデータベースに対する変更が、結果として表示されます。
ユーザー認証は、まず対象ユーザーを選択し、左下にあるボタンをクリックしてテストする事ができます。ユーザーのパスワード入力を求められますので、入力し、OKをクリックすると、認証に成功したかどうかのメッセージが表示されます。