troushoo

フリーのPostman を利用して、Azure にREST API を発行


概要

フリーで使えるPostman を利用して、Azure にREST API を発行する方法を紹介します。

内容

Postman とは
Postman とは、Chrome ブラウザの拡張機能として公開されており、REST API のテストに便利なフリーツールです。
90万以上のユーザーが使っており、多くの高評価を得ています。(公式サイトより)


Azure のREST API の認証方法について
Azure にはREST API を認証する方法として2つあります。証明書ベースの方法と、Azure Active Directory を用いる方法です。今回紹介する方法は、Azure Active Directory を用います。

[補足]
Azure で使えるREST API は、昔からあるService Management API と、最近導入されたAzure Resource Manager API があります。新しいAzure Resource Manager API の方は、今回紹介するAzure Active Directory を用いた方法のみ使用可能です。(すなわち、証明書ベースの認証方法は用いることができません。)

Postman から、Azure にREST API を発行する手順
以下の順番で、Postman からAzure にREST API を発行する手順を紹介します。
1. Postman のインストール
2. Azure AD application の作成
3. アクセストークンの取得
4. アクセストークンを用いてPostman でREST API を発行

1. Postman のインストール
1.1. Chrome でPostman のダウンロードサイトに行き、「無料」をクリックすれば、インストールできます。


2. Azure AD application の作成
REST API を認証する際、”アクセストークン”が必要になります。このアクセストークンはAzure AD application 経由で取得します。そのため、まずAzure AD application を作成します。

2.1. Azure 管理ポータルにログインします。

2.2. 「ACTIVE DIRECTORY」をクリックし、既定のディレクトリをクリックします。


2.3. 「アプリケーション」をクリックし、「追加」をクリックします。


2.4. 「組織で開発中のアプリケーションを追加」をクリックします。


2.5. 任意の名前を記入し、「ネイティブ クライアント アプリケーション」にチェックを入れます。


2.6. リダイレクト URI には、「http://localhost/<2.5 で記入したアプリ名>」 を入れる必要があります。


2.7. 作成したアプリケーションの設定を行うため、「構成」に移動します。


2.8. 「他のアプリケーションに対するアクセス許可」の部分の「アプリケーションの追加」をクリックします。


2.9. 「Windows Azure Service Management API」を追加し、Windows Azure Service Management APIに対するアクセス権を与えます。
UI上は文字が切れていてわかりにくいですが、「Windows Azure Service…」となっている方です。


2.10. 作成した「Windows Azure Service Management API」の「デリゲートされたアクセス許可」をクリックし、「Access Azure Service Management (preview)」にチェックを入れ、「保存」をクリックします。


3. アクセストークンの取得
上記2. で作成したAzure AD Application 経由で、REST API の認証に使うアクセストークンを取得します。

3.1. Azure 管理ポータルから、必要な情報を3つ取得します。

a) テナントID
Azure AD Application のGUID のことです。
「アプリケーション」で、作成したAzure AD Application を選択後、「エンドポイントの表示」をクリックします。

https://login.windows.net/ に続くGUID がテナントID です。


b) クライアントID
「構成」のページより確認できます。

c) リダイレクト URL
「構成」のページより確認できます。


3.2. C# のコンソールプロジェクトを作成します。

3.3. プロジェクトを右クリックし、「NuGet パッケージの管理」をクリックします。


3.4. 「オンライン」で「Active Directory authentication library」を検索し、「Active Directory authentication library」をインストールします。


3.5. MSDN 記載のメソッドGetAuthorizationHeader を実行するプログラムを作成します。
コードは以下のようになります。
(背景を黄色で示している){tenantId}、{clientId}、{redirectUri}、は上記3.1. で確認したそれぞれの値を入れる必要があります。

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System;
using System.Threading;

namespace apitest
{
class Program
{
static void Main(string[] args)
{
string token = GetAuthorizationHeader();
}

private static string GetAuthorizationHeader()
{
AuthenticationResult result = null;

var context = new AuthenticationContext("https://login.windows.net/{tenantId}");

var thread = new Thread(() =>
{
result = context.AcquireToken(
"https://management.core.windows.net/",
"{clientId}",
new Uri("{redirectUri}"));
});

thread.SetApartmentState(ApartmentState.STA);
thread.Name = "AquireTokenThread";
thread.Start();
thread.Join();

if (result == null)
{
throw new InvalidOperationException("Failed to obtain the JWT token");
}

string token = result.AccessToken;
return token;
}
}
}

3.6. 作成したコードを実行します。
すると、ユーザー名/パスワードを求められますので、入力します。
[補足]
ユーザー名/パスワードが認証されない場合は、Azure AD にユーザーを作成してください。
ユーザーの作成の仕方は、以前のブログの「1. オートメーションを実行するためにAzure Active Directory にユーザーを作成します。」の部分をご参照ください。

3.7. アクセストークンを取得できます。


4. アクセストークンを用いてPostman でREST API を発行
上記3. で取得したアクセストークンを用いてPostman でREST API の発行を行います。

4.1. Postman を起動します。


4.2. 「Normal」タブで、Request URI を入力します。
ここでは、サブスクリプションで利用可能なデーターセンターを表示するList Locations のREST API を発行してみます。
よって、GET の https://management.core.windows.net/<サブスクリプションID>/locations になります。


4.3. 「Headers」をクリックし、ヘッダーを追加し、「Send」をクリックします。
追加するヘッダーは以下です。
Request Header
AuthorizationBearer <アクセストークン>
x-ms-versionAPI のバージョン
例:2014-06-01


4.4. 下にREST API の結果が表示されます。



情報元
Inside the Azure Resource Manager (英語)

参考記事
Burp: Windows Azure Management APIをGUIから発行
cURLでWindows AzureのREST API利用


  1. 2015/01/15(木) 22:11:52|
  2. Azure
  3. | トラックバック:0
  4. | コメント:0
<<Visual Studio のコードスニペットを簡単に作る方法 | ホーム | Wireshark でのパケットキャプチャー時に使用されたキャプチャーフィルターを調べる方法>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://troushoo.blog.fc2.com/tb.php/218-de144c1a
この記事にトラックバックする(FC2ブログユーザー)

スポンサーリンク

最新記事

月別アーカイブ

カテゴリ

ツール (92)
ネットワーク (76)
Visual Studio (56)
SOS・Psscor2/Psscor4 (25)
WinDbg (25)
Linux (24)
Azure (17)
Tips (20)
英語 (1)
About Me (1)
未分類 (0)

全記事表示リンク

全ての記事を表示する

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する