CData Software Blog

クラウド連携のCData Software の技術ブログです。

CData Office365 Driver で Client Credentials を行う際に必要となるアクセス許可

f:id:sugimomoto:20211125155828p:plain こんにちは。CData Software Japan リードエンジニアの杉本です。

以前以下の記事で紹介したように、CData Office365 DriverはClient Credentialsに対応しています。

www.cdatablog.jp

この機能内部的には、Microsoft Graph APIを使っているので、Azure ADのアプリを作成し、アクセス権を利用者側で任意に設定する必要があります。

f:id:sugimomoto:20211125155419p:plain

例えばユーザー情報を取得したいのであれば、以下の「User.Read.All」を付与する、みたいな形ですね。

f:id:sugimomoto:20211125155425p:plain

ただ、CData Driver はその性質上、かなり利用ケースが多岐に渡るため、ちょっとどの権限を選んだらいいかわからない、ということがあるかなーと思います。

今回はちょっとCData Driverの内部を漁りまして、利用しているAPIを元に必要とされる一覧を起こしてみました。

注意事項

この情報は2021年11月時点での情報になります。

CData Driver・Office365 Graph APIともに、常にAPIの変更や機能追加などが行われていますので、要注意です。

もし利用ユースケース目線でもう少し具体的な案内が必要な場合はテクニカルサポートフォームまでお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx

エンドポイントおよびアクセス許可の一覧

各テーブルが利用しているAPIエンドポイントは次の通りです。

Table Name API Endpoint アプリケーション
アクセス許可
リファレンス
Contacts v1.0/me/contacts Contacts.Read
Contacts.ReadWrite
Link
Conversations v1.0/groups/{groupId}/
conversations
Group.Read.All
Group.ReadWrite.All
Link
Events v1.0/me/events Calendars.Read
Calendars.ReadWrite
Link
Files v1.0/me/drive/root/children Files.Read.All
Files.ReadWrite.All
Sites.Read.All
Sites.ReadWrite.All
Link
Groups v1.0/groups GroupMember.Read.All
Group.Read.All
Directory.Read.All
Group.ReadWrite.All
Directory.ReadWrite.All
Link
GroupMembers v1.0/groups/{groupId}/members GroupMember.Read.All
Group.Read.All
GroupMember.ReadWrite.All
Group.ReadWrite.All
Directory.Read.All
Link
Messages v1.0/me/messages Mail.ReadBasic.All
Mail.Read
Mail.ReadWrite
Link
Tasks v1.0/planner/plans('{id}') サポートされていません。 Link
Users v1.0/users User.Read.All
User.ReadWrite.All
Directory.Read.All
Directory.ReadWrite.All
Link
Calendars v1.0/me/calendars Calendars.Read
Calendars.Read.Shared
Calendars.ReadWrite
Link
CalendarView v1.0/users/{user}/calendars/
{calendarid}/calendarView
Calendars.Read
Calendars.ReadWrite
Link
EventOccurrences v1.0/{user}/events/{id}/instances Calendars.Read Link
Plans v1.0/groups('{id}')/planner サポートされていません。 Link