Azure AD B2CをPHPと使う (4) Client Credentials Grant Flow (サーバープロセスとしてGraph APIを使う)
Auth0ではなく、Azure AD B2Cを使う理由の一つに、Microsoftのサービスとの連携があります。
たとえば、SharePointリストは非常に安価ながら大量のデータを保存できるリスト型DBとして使用できます。
もし、SharePointリストで業務データを管理しているとしたら、いつ仕様が変更されるともわからないSharePointアドオンを開発するよりも、独立したWebサイトでアプリケーションを組むほうが学習コストが低い場合があります。また、SharePointに限らず、Outlookなどを業務で使用している場合なども同様でしょう。
Webアプリケーションである場合には、Azure ADのロールで管理すれば十分でそのアプリケーションを使っている人から委任を受けてアプリケーションがGraphAPIにアクセスすることになるでしょう。
これが、Authorization Code Grant Flowです。
ユーザーの代わりにアクセスを取得する - Microsoft Graph | Microsoft Docs
ところでSharePointのリストの中には、管理者のみがアクセスしたいデータがある場合があります。ここで使用するのが、元は、Client Credentials Grant Flowと言われる方法ですが、現在は、事前に管理者の委任を受けたコードを保存しておく、と言った方がよいかもしれません。
たとえば、Firebaseのデータを定期的にSharePointにポストするといったタスクは、ユーザーの手を介さずに実行したいですね。
このドキュメントのタイトルが微妙で、いつも検索にかからないので、メモしておきます。
PHPからのGraphAPIの呼び出しについては、Authorization Code Grant Flowを少し変更した程度になりますので、以下のチュートリアルが参考になると思います。
Microsoft Graph を使って PHP アプリを構築する - Microsoft Graph | Microsoft Docs