1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Logic Apps でサービスプリンシパル認証を使ってREST APIを実行する

Posted at

1.はじめに

Azure Logic Apps で REST APIを使用する際の認証方法として、サービスプリンシパル認証についての情報が少なかったため、本記事で紹介致します。

Logic Appsで、Blob StorageやADLS Gen2に対して、コネクターは用意されているものの、痒いところに手が届かないことがあったため、直接REST APIを実行してしまおうとしていたところで、本記事の情報を調査していたので、自分の備忘のために記録しておきます。

2. 前提条件

3. Logic Appsの構成

3-1. REST API実行までの全体フロー

以下のようなフローで構成しております。
今回は、Blobへのメタデータ設定のREST APIを実行しております。

image.png

3-2. サービスプリンシパル認証でREST APIを実行するための認証トークンを取得する。

試行錯誤する過程で、Header:Content-Type : application/json での実行を試しましたが、認証に必要なHeaderを正しく読み込むことができなかったので、application/x-www-form-urlencodedにしております。application/json での実行方法がわかる人がおりましたらアドバイスください:baby:

image.png

3-3 REST APIの実行結果をJSONにパースする。

前述の認証トークンの取得のAPIをPostmanやLogicApps上などで一度実行したレスポンスの結果を、下記イメージの「Use sample payload to generate schema」から読み込ませることで、Schemaを認識させることができます。

image.png

3-4 REST APIを実行する。

今回実行している、Blobへのメタデータ設定のREST APIのドキュメントに応じて各種項目を入力します。(本記事の観点から逸れるため、個別のREST APIの説明は割愛します。)

本記事でのポイントとして、サービスプリンシパル認証で取得したアクセストークンを使用する必要があります。

-Headers
Authorization : Bearer <前述で取得したアクセストークン>

  • Bearerとトークンの間に、半角スペースを忘れないようにしてください。

image.png

以上の方法で、サービスプリンシパルを使用したLogicAppsからのREST API実行が可能となります。

Tips

本記事の内容とは直接関係がないが、本件の動作確認にあたってのその他Tipsについて記載致します。

  • LogicApps utcNow()関数での書式設定
    Blob APIの必須パラメータ(Date または x-ms-date)に、入力が必要な日付フォーマットが「Mon, 02 Sep 2024 07:25:05 GMT」のようなGMTフォーマットなのですが、 utcNow('R')とすることで実現可能。
    その他のパラメーターについては、以下のリンクを参考にしてみてください。

    参考:標準の日時書式指定文字列

  • Blob APIでのメタデータのフォーマットについて
    こちらのページでは、以下のように記載されているのですが、個人的にわかりずらかったので、メモしておきます。

    x-ms-meta-name:string-value  
    

リクエストのHeadersでこのようにすると...
image.png

このように設定されます。
image.png

参考

こちらの情報を参考にしました。検索しても、すぐに日本語のページがHitしなかったため、本記事が参考になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?