以前、業務で会議室の使用状況を取得するツールを作成する必要があり、その際に調べて実装したメモとなります
API アクセス許可の違い
GraphAPIを使用する際には用途に合った権限が必要となるのですが、以下2種類あります
各権限については以下のサイトを参照してください
アプリケーション許可
この許可が付与されると本来は実行ユーザーがアクセスできないデータにもアクセスできるようになります。そのため、APIアクセス許可を付与する際に基本的に管理者の承認が必要となります。なので、場合によってはセキュリティ的に使用できないかもしれません
委任されたアクセス許可
この許可が付与されると認証時に使用したユーザーがアクセスできないデータにアクセスはできません。また、データに対する書き込みを含むものだと管理者の承認が必要となります
Azureでのアプリケーション登録
アプリの作成
Auzre上の検索窓で「アプリの登録」と検索する

「新規登録」をクリックします

ここからは各々の用途に合わせて設定してください
アプリケーション名には「会議室取得」としてます。サポートされているアカウントの種類を「この組織ディレクトリのみに含まれているアカウント(シングルテナント)」とし、リダイレクトURIは今回使用しないので設定しません。登録ボタンをクリックする

APIアクセス許可の設定
作成したアプリ画面に遷移するので「APIのアクセス許可」>「アクセス許可の追加」をクリック

「MicroSoft Graph」>「アプリケーションの許可」の順番にクリックし、検索窓に「calendars」と入力します。「Calendars.Read」を選択し、「アクセス許可の追加」ボタンをクリック



管理者の同意を付与します。「~に管理者の同意を与えます」をクリックして付与します
付与が完了すると「~に付与されました」と表示に変わります


アクセストークンを取得できるようにするため、「認証」>「アクセストークン(暗黙的なフローに使用)」にチェックをつけて「保存」ボタンをクリックします
アクセストークンを取得できるように設定

シークレットキーの作成
アクセストークンを取得する際に使用するシークレットキーを作成します
「証明書とシークレット」>「クライアント シークレット」タブ>「新しいクライアントシークレット」

有効期限は使用する期間や運用によって変えてください

作成したクライアントシークレットの値の横に下画像で赤く囲ったボタンをクリックするとコピーされます。コピーされた値をトークンを取得する際に使用します。このボタンは一定時間後には消えてしまい、再度コピーできなくなりますので注意が必要です
