はじめに
会社で利用するシステムは多岐にわたります。グループウェアに関しても同様です。本来なら1つのグループウェアを全社的に利用することが理想ではありますが、いろいろな事情からシステムを分断する必要が出る場合があります。今回の記事ではGoogleとMicrosoftを両方利用しなければならなくってしまった会社様向けにカレンダーの相互運用について触れていきます。
前提条件
Google Workspaceが標準機能で持っている相互運用機能を実装します。この記事ではExchange Onlineとの相互参照を行うことを前提としています。また、相互運用は下記のサービスと実装することが可能になっています。
- オンプレミスExchangeサーバ
- Notes
- Exchange Online
またカレンダーの相互運用におけるシステム要件はメーカーサイトをご確認ください。
両システムで同じドメインで運用されている場合、予定参照を実現するために別のドメインエイリアスアドレスを追加する必要があります。
アカウントの準備
相互運用を実現するためにGoogleとMicrosoftの両方に予定表を参照するためのユーザーを準備する必要があります。予定表を参照するだけのユーザーなので管理者権限は必須ではありません。作業の便宜上管理者権限で実装してしまうことが多いかもしれません。
カレンダーの事前設定
予定表を参照するユーザーにはライセンスが割り当たっている必要があります。参照のユーザーに予定表を閲覧できる権限を割り当ててください。
GUIで行うGoogleカレンダーの設定は各ユーザのカレンダー設定画面で権限設定をしてください。参照ユーザーに個別に閲覧権限をつけていただいても、テナント全体に参照権限をつけていただいてもどちらでも問題ありません。
GUIで行うカレンダーの設定は各ユーザのカレンダーで権限設定をしてください。
GoogleからMicrosoftへの予定表参照設定
Google Workspace の管理画面にログインしてカレンダー相互運用設定画面を開きます。以下の箇所を入力します。
カレンダー相互運用を有効にするにチェックを入れる
種類をExchange Webサービス(EWS)を選択する
ExchangeウェブサービスのURLに[https://outlook.office365.com/EWS/Exchange.asmx]を入力
※Exchange Onlineの場合は固定のURL
アカウントの準備で用意したMicrosoft側の参照アカウント名入力
OAuth2.0クライアント認証情報(Exchange Online/Office365におすすめ)を選択
新規登録で名前を入力して登録ボタンをクリック(その他はいったんデフォルトのまま)
[エンドポイント]-[OAuth2.0トークンエンドポイント(v2)]の値をコピーします。
作成したアプリケーションのアプリケーションIDを控えておきます。
[APIのアクセス許可]-[+アクセス許可の追加]-[所属する組織で使用しているAPI]タブの検索窓で「Office 365 Exchange Online」を検索して選択して、[アプリケーションの許可]-[full_access_as_app]にチェックを入れて[アクセス許可の追加]ボタンをクリックします。
[証明書とシークレット]-[クライアントシークレット]-[新しいクライアントシークレット]-[説明]の入力と[有効期限]を選択して[追加]ボタンをクリックします。
※有効期限は最大24か月です。
作成された値をコピーしておきます。この値は一度画面遷移するとコピーできなくなりますので忘れずにコピーしておきましょう
Google Workspace 管理画面のOAuth2.0の設定情報にコピーした情報を入力します。
[予定の詳細を表示する]と[会議室の予約]にチェックを入れて[保存]をクリックします。Google側の設定はこれで完了です。ここまででGoogleカレンダーからExchange Onlineのカレンダーを参照することが可能になっているはずです。
実際にExchange Onlineの予定表を参照する場合は、参照したい予定表のメールアドレスを直接入力する必要があります。
MicrosoftからGoogleの予定表参照設定
Google側のカレンダー参照アカウントでログインして、ExchangeのカレンダーInteropツールを開きます。
※一般ユーザでアクセスするとエラーになって開けません。
[Exchange authentication credential generation]の[Execute]ボタンをクリックします。
[I understand that regenerating these credential will reboe any old credentials for the Google Role Account.]にチェックを入れて[Create new credentials]ボタンをクリックします。
許可するアカウントを選択して、[許可]をクリックします。
[Download↓]をクリックして、ファイルを保存します。
[Calendar Interop Tools]をクリックして元の画面に戻ります。[Exchange Server configuration]の[Execite]ボタンをクリックします。
先ほどダウンロードしたファイルを[Select the credential file for your Google Role Account.]に登録します。
[Which version of Exchange are you using?]で[Exchange 2013 or newer, including Office 365]を選択します。
[Enter the email of the local account on Exchange that Google Calendar can user to make OrgWide free/busy requests.]にMicrosoft側の役割アカウントを登録します。
[Enter the name of the Google availability address space you wish to add to Exchange.]にGoogleテナントで使っているドメイン名を入力します。
[Show Exchange setup]をクリックします。
Powershellのコードが表示されるので、表示されたコードをコピーしてExchange の管理シェルに貼り付けします。
Exchange OnlineからGoogleの予定表を参照する場合は、外部連絡先に対象のGoogleユーザが登録されている必要があります。
Microsoft365管理センターから[ユーザ]-[連絡先]で対象のユーザを登録してください。
Exchange OnlineからGoogleの予定表を参照するには[予定表の追加]-[ディレクトリから追加]で追加します。
ここまででGoogle側の予定も閲覧できるようになっているはずです。
まとめ
どれだけニーズがあるのか謎の記事を書いてみましたが、社内情報システムは立場が弱く言われるがままにシステムが増えていってしまうことも往々にしてあると思ってます。グループウェアはシステムが分かれることで不都合が生まれることが多々あります。その中の代表例が予定表の参照ができないことだと思います。
今回ご紹介した設定でGoogleとMicrosoft間は予定表の相互参照が可能になります。