Power Automate の HTTP アクションと HTTP with Azure AD アクションの違いについて
はじめに
Power Automate には Microsoft Graph をはじめとした Azure AD で保護された API を呼び出す方法として HTTP アクションと HTTP with Azure AD アクションの 2 種類が提供されています。どちらも API の呼び出しができるという点では同じなのですが、どういう場合にどちらを使うのが適切かという観点で違いを確認したいと思います。
HTTP アクション
HTTP アクションは Power Automate の組み込みのアクションとして定義されています。汎用的なアクションなので世の中に公開されているさまざまな API を呼び出すことができます。Azure AD で保護された API を呼び出す場合は 認証 で Active Directory OAuth
を選択してアプリケーションを指定するか 未加工
を選択してアクセス トークンを指定します。
Active Directory OAuth
を選択したときは Client Credential Grant つまりアプリケーションのアクセス許可で動作する点には注意しなければなりません。委任されたアクセス許可で動作させたい場合は何らかの方法でアクセス トークンを取得して指定してあげる必要があります。
またいずれの場合も Azure AD アプリケーションの登録が必要です。
HTTP with Azure AD アクション
HTTP with Azure AD アクションはプレミアム コネクタとして定義されています。HTTP アクションとは異なり Azure AD で保護された API を呼び出す前提になっています。
アクションを追加すると 基本リソース URL と Azure AD リソース URL (アプリケーション ID URL) を指定するようになっています。
サインイン をクリックするとログインするためのポップアップが表示されます。ログインすることで API を呼び出すことができるようになります。
HTTP with Azure AD アクションでは Authorization Code Grant つまり委任されたアクセス許可で動作します。アプリケーションのアクセス許可で動作させることはできません。またコネクタに用意されている Azure AD アプリケーションを使用するため Azure AD アプリケーションを用意する必要はありません。
おわりに
単純にユーザーが Microsoft Graph を呼び出したいということであれば HTTP with Azure AD アクションは非常に簡単です。またある程度の高度なことがしたい場合は HTTP アクションを使うことになると思います。
ちなみに組織内で開発した独自の API を呼び出したい場合は 承認済みのクライアント アプリケーション にコネクタが使用するアプリケーション ID である 7ab7862c-4c57-491e-8a45-d52a7e023983
を指定すればいいようです。
Discussion