2017年5月18日木曜日

LogicFlow で Bearer Token を取得する

以前に試していたものですが、今回テンプレート化して誰でも利用できるようにしてみました。これを利用すれば、LogicApps 上で Azure の各種サービスにアクセスするのも、やりやすくなると思います。

Github はこちら

作成した LogicFlow は次のようなものです。

(前半)

image

(後半)

image

前半部分では、HTTP リクエストを生成して、ユーザーダイアログを出さない形で Token を取得するよう呼出を行っています。その際、必要なパラメータ(クライアントID、シークレット、テナントID、リソースURL)については、POST 時に JSON パラメータとして受け渡してもらう想定です。

スキーマは以下のようにしています。

{
  "properties": {
    "client_id": {
      "type": "string"
    },
    "client_secret": {
      "type": "string"
    },
    "resourceurl": {
      "type": "string"
    },
    "tenanntid": {
      "type": "string"
    }
  },
"type": "object"
}

クライアント ID やシークレットについては、以前の記事にもあるように Azure AD 上でアプリケーションを作成する必要があります。

また、リソースURLもパラメータとしていますが、これは利用するサービスによって指定するアドレスが異なるためです。もしかすると同一の URL でも可能かもしれませんが、docs にあげられている各種資料を見ると、DataLake Store であれば https://management.core.windows.net/ ですし、Azure であれば https://fmanagement.azure.com/ であったりします。

このあたりの値を URL エンコードし、パラメータに設定して呼び出すことで、Bearer トークンを取得し、返却する LogicFlow となっています。

トリガや末端のアクションを変更することで、ネストする LogicFlow としても利用できるかと思います。

0 件のコメント:

コメントを投稿