アクセス・トークンを発行する手順は、Microsoftの次のドキュメント「最初のケース:共有シークレットを使ったアクセス トークン要求」で説明されています。
AzureのAPIをAPEX_WEB_SERVICE.MAKE_REST_REQUSTで呼び出したときに、HTTPステータス・コード 401 Unauthorizedが返されると、APIの認証に関わる値のどれが間違っているのか、APEX_WEB_SERVICE.MAKE_REST_REQUSTのエラーから確認するのは困難です。
そのため、以下のPL/SQLコードでトークンURLを直接呼び出し、アクセス・トークンを取得してみます。
テナントID、アプリケーション(クライアントID)、スコープ、クライアント・シークレットのどれに間違いがあるのか、トークンURLが返すレスポンスから確認できます。
トークンURLが返してきたレスポンスから、Microsoft Entra IDでアクセス・トークンを要求する場合、scopeに指定できる値(Resource App ID)はひとつだけという制限があり、それに違反していることがわかりました。
認証関連のエラーはデバッグが面倒なので、それを少し助ける方法を紹介しました。
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完