0
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?

Insomnium から Azure API を利用する。

Posted at

What is this?

Rest API のクライアントツールの一種 Insomnium を用いて
Azure API を叩く手順です。

bearer をコピーして叩く方法と、Insomnia plugin for Microsoft Entra ID を用いる方法について示します。

手法1 : bearer をコピーする

Azure Portal にログインし、アクセス時に動作する API から bearer を抜き出します。
お奨めは [サブスクリプション] 画面の resources API から拾うことです。
image.png

Insomnium を開き、[Bearer] セクションに内容を切り取り、貼り付けます。
(先頭の "Bearer" は不要です。)
image.png

Headers タブを開き、 "Content-Type" を "application/json" として追加します。
image.png

Body タブから "Json" を選択し、パラメータを設定します。
今回は foracast API を使いますので、
URL は "https://management.azure.com/subscriptions/{SubscriptionGUID}/resourceGroups/{ResourceGroupName}/providers/Microsoft.CostManagement/query?api-version={APIversion}" となります。
パラメータは画面の通りです。
image.png

Send を押下すると正常に State Code 200 及び、Result Json が取得できます。
image.png

手法2 : Insomnia plugin for Microsoft Entra ID を利用する

"Insomnia plugin for Microsoft Entra ID" は Entra ID を用いたログイン用各設定を UI 形式で提供する、Microsoft のエンジニア Gilles Zunino 氏によるプラグインです。

原則、本手順は plugin 公式 (github) に準拠、シークレットキーによる認証についての手順となりますが、ドキュメントに記載のない各設定を補完します。
なお、シークレットキー以外の認証については私は未検証です。

plugin の Install

  1. Insomunium 起動後、メインメニュー [Application] - [Preferences] を選択します。
    Insomnium Preferences ダイアログが開きます。

image.png

  1. [Plugin] タブを選択し、[Install Plugin] ボタン横のテキストボックスに
    "insomnia-plugin-azure-ad-authentication" を入力、 Install Plugin ボタンを押下することでインストールが進みます。
    image.png

インストール完了後はダイアログを閉じて構いません。
Plugin の適用後は、 [Header] タブ内の Value でサジェストにて呼び出しが可能です。
("Bearer E" などと打ち込むことでサジェストされます)
image.png

サジェスト適用後、警告として赤ハイライトされますが、そこをクリックすることで各種入力用ダイアログが表示されます。
image.png

(設定入力用ダイアログ)
image.png

Azure Portal 側の設定

Azure Portal にて、アクセス用の SPN の設定および権限設定を行います。

SPN の作成

[Microsoft Entra] のメニューから [アプリの登録] を選びます。
image.png

[新規作成] を押下します。
image.png

名前を決めます。ここでは "InsomniumTest" とします。その他のパラメータはあとで決めるのでここでは不要ですので、そのまま "登録" を押下します。
image.png

SPN が作成されます。画像でマスクされているうち、"アプリケーション (クライアント) ID" と "ディレクトリ (テナント) ID" は後程使いますのでメモしておくとよいでしょう。
image.png

続いて "証明書またはシークレットの追加" リンクを押下します。
"+ 新しいクライアントシークレット" を押下し、開かれる画面にて "追加" を押下します。
image.png

シークレットキーが作成されますので、手元のテキストなどに保存しておきます。
なお、このキーの取得ができるのはこのタイミングのみです。
紛失した場合、このシークレットキーは削除し再作成してください。
image.png

続いて左メニューから [概要] - [リダイレクト URI を追加する] を選択、押下します。
遷移後の画面にて [+ プラットフォームを追加] を押下し、開かれる画面にて "モバイル アプリケーションとデスクトップ アプリケーション" を選択します。
image.png

カスタムリダイレクト URI に "任意のローカルホストの空きポート + '/redirect'" を指定し、[構成] を押下します。
image.png

カスタムリダイレクト URI が作成されます。
image.png

続いて左メニューから [概要] - [アプリケーション ID URI の追加] を選択、押下します。
遷移後の画面にて "アプリケーション ID の URI" 横の [追加] を押下し、開かれる画面にてそのままの値で "保存" を押下します。
image.png

アプリケーション ID URI が作成されます。
image.png

SPN の設定は以上です。

権限設定

作成した SPN にサブスクリプションのアクセス設定を施します。

[サブスクリプション] ページから [アクセス制御] - [追加] - [ロールの割り当ての追加] を選択します。
image.png

[閲覧者] ロールを選択し、[メンバー] セクションに移動します。
image.png

検索して適用メンバーに SPN 名を指定し、レビューと割り当てを実施します。
image.png

正常終了すると、所有権が割り当てられていることが確認できます。
image.png

Insomnium の設定

これまでの手順で Insomnium Plugin の必要な情報がそろいましたので、入力画面にそれぞれ設定していきます。
ここでのポイントは Scope が "https://management.azure.com/.default" 固定であることです。
image.png

ex)
image.png

この状態で API を投げると結果が返ります。

各手法の良いところ / 悪いところ

手法1 : Bearer をコピーする

当然ですが Bearer Token には寿命があるので一定期間ごとにこの作業を行う必要があります。
これはバニラ環境のままでも使え、かつ漏洩の心配などがないセキュアな状態です。
一方でそれなりに手間ではあります。

手法2 : Insomnia plugin for Microsoft Entra ID を利用する

手順が面倒ですが、一度行ってしまえば Insomnia の設定に何か手を加えることはありません。
ただし、 SPN でアプリからのアクセスを許可する関係上、手順1 と比べると堅牢性は低下します。

ぼやき

公式の "Scope" への設定情報間違ってますがな。x。

0
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
0
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?