TLS証明書のpemファイルの配置とポート番号変更の設定について
OnTime同期ハブは以下の2つから接続が行われます。
1.MicrosoftクラウドからのWebhookによるMicrosoft Graph の変更通知(Microsoft Graph Change Notifications)
接続のポート番号は変更できます。
TLS証明書による通信を推奨とします。
2.OnTimeサーバーからの同期確認
接続のポート番号は変更できます。
TLS証明書による通信を必須ではありません。
上記ポート番号やTLS証明書ファイルの配置場所などの内容を設定しているのがotSubHub.jsonファイルです。
TLS証明書のpemファイルの配置
独立したマシンに構築する場合は、構成によってはOnTimeサーバーに準備したpemファイルをご利用いただけますが、通常はホスト名に依存するのでペイロードの終端のホスト名に基づいたTLS証明をご準備ください。ファイル名は自由です。必要とするファイルは以下の2つです。
- ontime-rsa-key.pem
パスワードなしのサーバー秘密鍵が含まれたpem形式のファイル - ontime-rsa-cert.pem
サーバー証明書が含まれたpem形式のファイル
pemファイルの作成やOnTimeサーバーの配置場所については以下の記事を参照ください。

本マニュアルでは別マシンに構築するとして、すでに以下の2つのファイルの準備が整っている前提で説明します。
c:\nodeの配下にcertsフォルダを作成して2つのpemファイルを配置します。

otSubHub.jsonファイルの編集
「otSubHub.json」ファイルは「c:\node\otsubhub」フォルダにあります。

テキストエディタで開きます。
Windows標準のメモ帳をテキストエディタとして利用する場合は改行が正しく表示されない場合があります。その場合は適切に表示されるテキストエディタをご準備ください。
デフォルトでは以下の内容となります。

「noticeServer」オブジェクトは「Microsoft Graphの変更通知(Microsoft Graph Change Notifications)」用の設定です。
「backendServer」オブジェクトはOnTimeサーバー用の設定です。
いずれもprotocol、port、key、certなどを設定します。
「graph」「ews」オブジェクトについてはパフォーマンスに関する設定です。OnTime Shopから指示がない限り修正しません。
- protocol
https、httpを指定します。noticeServerについてはhttpsの固定です。 - port
別マシンに構築するので、Microsoft Graph向けに443、OnTimeサーバー向けに8443を利用すれば、ネットワーク的にOnTimeサーバーと同じポート開放設定を利用できます。外部からは443による通信のみ受け入れします。 - key
先ほどのontime-rsa-key.pemをドライブから絶対位置で指定します。 - cert
先ほどのontime-rsa-cert.pemをドライブから絶対位置で指定します。 - payload
MicrosoftがWebhookのhttpリクエストを送信する際に利用される情報として準備します。送信先のURLと信頼性のためのClientStateを記述します。- url
Microsoftに指示する変更通知を送信させるWebhook用のサーバーを指定します。
443以外の場合はポート番号も指定します。
urlはMicrosoftが参照するパブリックなDNSにて解決できるホスト名を指定してください。 - clientState
OnTime同期ハブのインストール時にotSubHub.jsonファイルで定義される一意の値です。
Microsoftからの各変更通知に含まれる「clientState」プロパティ(最大128文字)として利用し、「clientState」値と照合することで通知の信頼性を検証します。
- url
- secretKey
OnTime同期ハブのインストール時にotSubHub.jsonファイルで定義される一意の値です。
OnTimeサーバーからOnTime同期ハブへの通信に含まれ、両者間で交換時に利用されます。
OnTime管理センターの設定で利用しますのでコピーしておきます。
otSubHub.jsonファイルのサンプル設定
以下にサンプルをご紹介します。
別マシンに構成するのでデフォルトでOnTimeサーバーと同じポートを利用した設定です。参考に同一マシンの推奨ポート番号を利用した設定も記載します。
{
"noticeServer": {
"protocol": "https",
"port": 443,
"key": "c:/node/certs/ontime-rsa-key.pem",
"cert": "c:/node/certs/ontime-rsa-cert.pem",
"payload": {
"url": "https://otsubhub.ontimedemo.com",
"clientState": "j80hv---独自に生成される一意の値---s+A/Y="
}
},
"backendServer": {
"protocol": "https",
"port": 8443,
"key": "c:/node/certs/ontime-rsa-key.pem",
"cert": "c:/node/certs/ontime-rsa-cert.pem",
"secretKey": "1MeP3J---独自に生成される一意の値---1qQhU4="
},
"graph": {
"expiration_min": 1440,
"subscribe_threads": 3,
"renew_threads": 3,
"unsubscribe_threads": 5
},
"ews": {
"subscribe_threads": 5
}
}
otSubHub.jsonの内容が整ったらファイルを保存します。
サービスの起動
otSubHub.jsonの準備が出来たのでWindowsサービスで「otSubHub Service」を起動します。

「実行中」の表示がされることを確認ください。

OnTime同期ハブの疎通確認テスト
OnTime同期ハブでWebhookデータの受け入れが指定したプロトコルとポートで正しく機能しているかの確認をします。payloadに指定したURLの後ろに”/test”を付けてブラウザから接続してください。
“https://ontime.ontimedemo.com:443″の場合は”https://ontime.ontimedemo.com:443/test”
“https://otsubhub.ontimedemo.com”の場合は”https://otsubhub.ontimedemo.com/test”
です。
ブラウザからの接続テストの際は、ブラウザを利用する機器からの接続経路も有効にしてからテストしてください。
ネットワークの構成がOnTime同期ハブへ正常に通信ができる状態であれば以下のようなページが開きます。

続く作業について
続いてOnTime管理センターのドメイン設定で設定します。
