APIの、管理者トークンの取得と使い方に関するメモです。Directoryのユーザー・グループの追加・削除を、APIを使って行おうとしました。APIを使うことになりました。調べると色々なドキュメントがでてきて、かなり混乱したので、ザックリとまとめておこうと思います。APIとは、Office365を操作できるAPIです。Outlookメールの送受信や、ExcelオンラインのExcelファイルの編集など、クラウドのOffice365の様々な操作ができます。Directoryの操作もできます。Directoryの操作目的で使用しました。委任されたアクセス許可アプリケーションの許可などの複数の呼び方がでてきて混乱しました。色んな呼び方があるのですが、要は、APIで誰のOffice365を操作できるかを考えると分かります。ユーザーの代わりにアクセスを取得GoogleやFacebook認証などでよく見かける、リンクをクリックするとログインページが開いて、ログインすると同意画面が出て...。いう流れで取得するトークンです。ログインして同意した人のOffice365を操作できるトークンが発行されています。そのトークンを使ってメールを取得する場合、取得できるメールは、同意した人の受信トレイに届いたメールになります。「委任されたアクセス許可」といった呼ばれ方がされます。最初、「ユーザーなし」ってAPI全部ユーザー無しじゃないか?...と思って混乱したのですが、要は対象ユーザーが無い、つまり、ユーザー同意のフローを踏まない、管理者権限のアクセスのことでした。APIは大きく分けて、「同意したユーザー権限での操作」と、「対象ユーザーのいない、管理者権限での操作」の2つになります。Directoryのユーザー・グループの管理をしたかったので、管理者権限のトークンを取得して使うことになります。ユーザーが管理者だった場合、ユーザー同意で、自分のOffice365の操作だけでなく、管理者権限の操作ができるトークンを取得することもできます。ユーザー同意によるトークン取得は煩雑なため、また、プログラムからの管理作業用途だったため、今回は「対象ユーザーのいない、管理者権限での操作」でトークンを取得することにしました。APIの、対象ユーザーがいない、管理者権限のトークンの取得・使用手順になります。公式ドキュメントを参考に進めました。ここでは自分がハマった点を中心に解説を加えて手順を記載しました。Directoryにアプリを登録します。このあたりの手順は、以前、ユーザー権限トークンを取得した時の下記記事に記載しました。Directoryに登録した、各アプリ内での設定になります。APIは、様々な操作ができるのですが、どんな操作をできるようにするかを設定します。Graph」を選択します。次に、「委任されたアクセス許可」と「アプリケーションの許可」が表示されます。実はこれが前述の、ユーザーありか?なしか?のことで、ユーザーのいない「アプリケーションの許可」の方を選択します。すると、管理者権限が必要なスコープ一覧が出てくるので、選択します。Directoryのグループを取得する場合は[Group]-[Group.Read.All]を選択します。スコープを追加させただけではまだ使えず、管理者の同意が必要です。管理者の同意は、管理者アカウントで下記をクリックします。管理者権限のトークンは、クライアントシークレットを事前に発行し、そのクライアントシークレットで指定のURLにアクセスすると取得できます。クライアントシークレットの発行は下記で行います。[証明書とシークレット]-[+新しいクライアントシークレット]トークン取得アプリに関する情報を、トークン取得URLにPOSTで送ると、応答としてトークンが返ってきます。Directoryからメモしておきます。テナントID[概要]-[アプリケーション(クライアント)ID]アプリケーションID[概要]-[アプリケーション(クライアント)ID]クライアントシークレット前述の通りトークン取得URLは下記に記載されています。トークンエンドポイント(v2)]管理者トークン取得は下記のようになります。APIを呼び出します。APIのドキュメントはこちらを参照しました。ドキュメントだけだと分からない事も多く、実際に色々試してみるのがいいかと思います。Directoryのグループ一覧は下記で取得できます。APIのアクセストークン取得には「v1」と「v2」の2種類があります。検索するとそれらの情報がごちゃまぜで、かつ同時にやってくるので、情報整理して概要を把握するのに時間がかかりました。DirecotyrとOffice365という形で構成するようになっています。アカウント)でベースのプラットフォームが統合されていて、両者をまたいでユニークとなります。Directoryも統合されています。それらの壮大な統合がいつの間にかされてたんですね。Graph」で何でもできるようにする。いうのが今後の主流になりそうですね。なると、絶好調のAzureも統合していこう!となっていくんでしょうね。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。