Microsoft Entra IDで「アプリの登録」を行う
OnTimeサーバーとMicrosoftテナントのExchangeとの接続はMicrosoft Graph APIを利用して行います。
常にOnTimeサーバーからMicrosoftテナントへの方向だけの接続となります。
そのための作業としてOnTimeサーバーが接続できるようにするため、MicrosoftテナントのEntra IDで必要なAPIだけを付与したテナントID、アプリケーションIDとクライアントシークレットの値を準備する必要があります。
このページではそれら3つの文字列を準備する作業を説明いたします。
アプリの登録作業
アプリの新規登録
作業はすべて接続先テナントのAzure Portalで行います。最後に管理者がアプリに同意を付与するため作業は管理者アカウントでログインします。


アプリの登録画面が開いたらすでに作成したアプリも表示されています。画面上部の「新規登録」で新規作成します。


- 名前
OnTimeのバックエンドで利用することが識別できる名前をお薦めします。
(フロントエンドでSSOを行う場合、エンタープライズアプリケーションページで同列で並ぶため) - アカウントの種類
「この組織ディレクトリのみに含まれるアカウント」を選択します。 - リダイレクトURI
「Web」を選択しURIの値は「https://localhost:8443/ontimegcms/code.html」を入力してください。空白にはできません。
全て入力すれば「登録」ボタンをクリックします。

後ほどの作業のOnTime管理センターのドメイン設定ページで利用します

後ほどの作業のOnTime管理センターのドメイン設定ページで利用します
「証明書とシークレット」タブ
このタブではベースとなるパスワードのような文字列を生成します。ここで取得する「値」とても重要で且つコンスタントに差し替えることを推奨されています。また「値」は作成直後の画面でしかコピーできません。コピーを忘れた場合は差し替え時と同様に改めて作成します。
画面中程の「新しいクライアントシークレット」をクリックします。


- 説明
定期的に作成し直すものなので、識別しやすい名前であれば十分です。有効期限は一覧に表示されるので説明に含める必要はありません。 - 有効期限
マイクロソフトの推奨は6ヶ月です。画面では24ヶ月に設定します。
入力できれば「追加」をクリックします。

コピーするのは「値」です。「クライアントシークレットID」は利用しません。
後ほどの作業のOnTime管理センターのドメイン設定ページで利用します
ここでコピーをしておかないと、二度と表示されなくなるので忘れないようにコピーしてください
もしコピーを忘れた場合は、差し替え時と同様に「クライアントシークレット」を改めて作成します。
「認証」タブ
このタブではトークンの選択だけを行います

チェックをつければ「保存」をクリックします。
「APIのアクセス許可」タブ
このタブではOnTimeサーバーに許可するAPIを定義していきます。複数のAPIを登録します。
Ver.6.4.xの利用するAPI一覧
| API | 必要性 | 詳細説明 |
|---|---|---|
| Application.Read.All | 必須 | OnTimeに適切な権限が付与されていることを確認し、その状況をOnTime管理センターで表示して確認できるようにします。 |
| Calendars.ReadWrite | 必須 | OnTimeの核となる機能です。予定表データの表示、ユーザーやリソース(会議室・備品)の予定表上でのイベントの作成・更新・移動・削除、そしてメールボックス予定表データの変更通知の受信を行うために利用します。 OnTimeはユーザーに代わって会議の予約や編集を行うため、書き込み権限が必要となります。 |
| Group.Read.All | 必須 | グループ情報を読み取ることで、表示可否の確認をします。将来的に利用します。 |
| GroupMember.Read.All | 必須 | グループ情報やグループの中に含まれる個々のユーザーやリソースを展開、ユーザーやリソースに適切なアクセス権を付与できるようにします。 |
| MailboxSettings.ReadWrite | 必須 | ユーザーの自動応答(不在時の応答)設定の読み取りおよび設定に利用するため書き込み権限が必要です。 |
| People.Read.All | 必須 | ユーザーが会議イベントにユーザーやリソースを招待する時に検索を行うために利用します。 |
| Place.Read.All | 必須 | 会議室や備品を検索を行うために利用します。 |
| User.Read.All | 必須 | ユーザーのディレクトリ詳細(氏名、メールアドレス、上司など)を検索・取得します。 |
| Mail.Send | 注意 | 日程調整、日程予約、来訪者管理、その他システムが通知のために送信するメール機能に利用します。会議招待では利用していません。 会議招待以外で上記機能が動作しなくても良い場合は除外できます。 |
| full_access_as_app | 注意 | EWSを介してカレンダーへのアクセスやメールボックス予定表データの変更通知の受信を行うために利用します。従来のEWS方式を利用する場合は必要です。 全ての同期でGraph方式を利用する場合は必要ありません。 |
| EWS.AccessAsUser.All | 終息 | フロントエンド認証で「Form-Based」を選択する場合に利用。現在は「Form-Based」を推奨しないので登録の必要はありません。 |
画面中程の「アクセス許可の追加」をクリックします。




選択するAPIは以下の9つです。それぞれAPIの左のチェックボックスにチェックをつけます。
- Application.Read.All
- Calendars.ReadWrite
- Group.Read.All
- GroupMember.Read.All
- Mail.Send
- MailboxSettings.ReadWrite
- People.Read.All
- Place.Read.All
- User.Read.All
画面中程の検索窓でAPI文字列の一部を入力することで絞り込めます。
上記全てにチェックをつけたら「アクセス許可の追加」をクリックします。
画面上には追加した12つのAPIと最初から表示されていた1つのAPIの計7つが表示されています。続いて別の種類のAPIを追加するので再度「アクセス許可の追加」をクリックします


フロントエンド認証で「Form-Based」を選択しない場合は追加する必要はありません。
選択するAPIは以下の1つです。APIの左のチェックボックスにチェックをつけます。
- EWS.AccessAsUser.All

チェックをつけたら「アクセス許可の追加」をクリックします。
全ての同期をEWS方式からGraph方式に切り替え完了している場合は追加する必要はありません。Step12へ進んで下さい。
現時点で画面上には追加した7つのAPIと最初から表示されていた1つのAPIの計8つが表示されています。続いて別の種類のAPIを追加するので再々度「アクセス許可の追加」をクリックします。


検索窓で「office」と入力することでAPI一覧を絞り込めます。

選択するAPIは以下の1つです。APIの左のチェックボックスにチェックをつけます。
- full-access_as_app

チェックをつけたら「アクセス許可の追加」をクリックします。
作業前にデフォルトで存在した「User.Read」の行を選んで右の三点メニューから「アクセス許可の削除」をクリックして削除します。

一覧の最右列の状態が管理者の同意が付与されていないと表示されています。
「○○○(テナント名)に管理者の同意を与えます」をクリックして同意を付与します。

確認画面で「はい」をクリック

全てのAPIに管理者の同意が付与されたことを確認します。

Azure Portalでの作業は以上です。
Ver.6.2.8以前とVer.6.3.0以降の比較
比較のために6.3.0以降と6.2.8以前の最終状態を比較します。
Ver.6.3.0以降Directory.Read.Allは利用しなくなっています。
アップグレードされる場合は、必要の無いAPIはセキュリティの観点から削除してください。

続いてOnTime管理センターのドメイン設定ページでの作業
続いてドメイン設定ページで先ほどの3つの文字列情報を利用して設定を行います。以下の文字列をメモ帳などで保持していることを確認してください。
- アプリケーションID
- ディレクトリ(テナント)ID
- クライアントシークレットの「値」
ドメイン設定は以下のリンクの説明に沿って作業を進めてください。


