2018年4月12日

ブロードバンドタワー緒方です。今回は、2016 年 8 月に投稿しました、Microsoft Azure を API 経由にて操作するための事前準備 の焼き直し的なネタになります。

やっていることは同じなのですが、同じ操作を Azure CLI で実現するのではなく、 Azure Portal の GUI の操作だけで完結できる方法をご紹介させて頂きます。

※ご注意※ この記事は、2018/04/10 時点での情報です。アップデートにより変わる可能性があります。

どうして Azure Portal で ?

CLI 操作に不慣れな方向けにウェブブラウザで完結できる GUI 上の操作だけで同じことができる様にと本記事を書いてみました。

この事前準備をやっておかないと、次回以降に本ブログで紹介させて頂こうと思っている API 経由で Azure リソースの情報取得ネタが説明しづらいという個人的な事情が多分にあります。 が、個人的な事情はさておいても、やはり Azure CLI の操作だけでは敷居が高いという声もありまして、Azure Portal での操作ネタと相成りました。

やっていることは以前の記事と変わりません。

API トークンを取得するための必要な項目

今回の操作で、下記の 3 種類の情報が新規に作成されます。この情報が後ほど API トークンを取得する際に必要な情報になります。

Azure Portal での操作を通じて、これらの値を取得していきます。

CLIENT_ID

Active Directory アプリケーション作成時に生成される AppId の値

CLIENT_SECRET

自動的に生成されるパスワードになります。

TENANT_ID

サブスクリプション ID に紐付く ID

それでは早速進めていきましょう。

1. Azure Active Directory の選択

Azure Portal へログイン後、画面左にありますメニューから Azure Active Directory をクリックします。

2. アプリの登録

次に、アプリの登録 をクリックします。

2.1 新しいアプリケーションの登録

アプリの登録 をクリック後、新たに表示された画面の上部にある +新しいアプリケーションの登録 をクリックすると、アプリケーションを作成するための下記のような画面が表示されます。

今回は下記のように healthcheck というアプリケーションを登録してみます。

  • 名前
    • healthcheck
  • アプリケーションの種類
    • Web アプリ/API
      • Default のまま
  • サインオン URL
    • https://healthcheck

必要な情報を入力後、作成ボタン を押下します。

3. CLIENT_ID の取得

ここから、API トークンを取得するための必要な情報を集めていきます。まずは、CLIENT_ID になります。

新しいアプリケーションの登録後、下記のような画面が表示されると思います。

表示された画面に アプリケーション ID のところに文字列が表示されていますが、これが CLIENT_ID となりますので、書き留めておきます。

4. CLIENT_SECRET の取得

次に、CLIENT_SECRET の値を取得します。

4.1 キーの設定

一度、設定に戻り、キー をクリックします。

説明有効期限 を設定します。今回は下記のように設定してみました。

  • 説明
    • bbt-msp
  • 有効期限
    • 期限なし

必要な情報を入力したら、次に移ります。

4.2 CLIENT_SECRET の取得

左上の 保存 ボタンをクリックして保存します。

保存後、パスワード ( CLIENT_SECRET ) が表示されます。一度この画面から抜けるとパスワード ( CLIENT_SECRET ) は表示されなくなってしまいます。

値 ( CLIENT_SECRET ) をしっかりとメモしておきます。

5. TENANT_ID の取得

最後に、TENANT_ID を取得します。

5.1 エンドポイントのボタンのクリック

アプリの登録画面に一度戻って、エンドポイント ボタンをクリックします。

5.2 TENANT_ID の取得

OAUTH 2.0 トークン エンドポイント の右にあるボタンをクリックします。そうすると、エンドポイントの値がクリップボードに保存されます。

適当なテキストエディタを開いて、先ほどコピーした値を貼り付けてみます。

https://login.microsoftonline.com/87**c862-bb9f-***-9eac-***608862906/oauth2/token

上記の様に login.microsoftonline.com//oauth2 に挟まれている値が TENANT_ID になりますので、これをメモしておきます。

トークンの取得

最後に、Azure API トークンを取得するための事前準備が正常に完了できたのかを確認するために、実際にトークンを取得してみましょう。

サンプルのスクリプトですが、以前の記事と変わりません。

必要な変数の値は、事前準備の際に書き留めておいた下記の値を適宜置き換えてください。

  • CLIENT_ID
  • CLIENT_SECRET
  • TENANT_ID

サンプルスクリプト

#!/bin/sh

# ユーザ固有の変数
CLIENT_ID="<CLIENT_ID>"
CLIENT_SECRET="<CLIENT_SECRET>"
TENANT_ID="<TENANT_ID>"

# token の取得
POST="grant_type=client_credentials&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&resource=https%3A%2F%2Fmanagement.azure.com%2F"
TOKEN=`echo $POST | curl -s -H "Content-Type: application/x-www-form-urlencoded" -X POST -d @- "https://login.microsoftonline.com/$TENANT_ID/oauth2/token?api-version=1.0"`

echo $TOKEN

サンプルスクリプトを実行し、正常に設定が完了していれば下記のような JSON フォーマットでの応答があります。key が access_token の value に求めている Azure API トークンが格納されています。

{"token_type":"Bearer","expires_in":"3600","ext_expires_in":"0","expires_on":"1470214107","not_before":"1470210207","resource":"https://management.azure.com/","access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNBVGZNNXBPWWlKSE1iYTlnb0VLWSIsImtpZCI6Ik1uQ19WWmNBVGZNNXBPWWlKSE1iYTlnb0VLWSJ9.eyJhdWQiOiJodHRwczovL21hbmFnZW1lbnQuYXp1cmUuY29tLyIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0L2Y3YjRiNzY3LTk5NzYtNGM1ZS1iYTNlLWY0NWU1Y2EwMTE4NC8iLCJpYXQiOjE0NzAyMTAyMDcsIm5iZiI6MTQ3MDIxMDIwNywiZXhwIjoxNDcwMjE0MTA3LCJhcHBpZCI6IjM5Y2YwZDIwLTQyZWEtNDUyYi1hYjY4LTllNDhkODE5ZDJmNiIsImFwcGlkYWNyIjoiMSIsImlkcCI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0L2Y3YjRiNzY3LTk5NzYtNGM1ZS1iYTNlLWY0NWU1Y2EwMTE4NC8iLCJvaWQiOiI4N2M2ZTQ3NC1hMGVkLTQzNzUtYTc1ZC00M2Y1NWQ5YjljYTUiLCJzdWIiOiI4N2M2ZTQ3NC1hMGVkLTQzNzUtYTc1ZC00M2Y1NWQ5YjljYTUiLCJ0aWQiOiJmN2I0Yjc2Ny05OTc2LTRjNWUtYmEzZS1mNDVlNWNhMDExODQiLCJ2ZXIiOiIxLjAifQ.kn_C68FLtWiDSMoQ9BFrxEuJDS-kBXIdi8GvtCOT2h3uvMxCnaVoUuuylKGFkvlnjbMbfeszaqivD_0yWyktywmio37hTefjDCBkUXEIwPYsg8RUzvLUTm0bfKOzn7fkuzvsuXlFT83YOywid-7vsB_yR8ul0apPDhOaLx2sQZb4TG-EDKvaoGmQmBPhtDoDhVZfVoQwuWwpvuNbgNF8ucwh5c0OsgbSvD39BhiQfcJhwYnb3yNIiwKaaTG0uu003qfbIUgyr8chIUO5lIRO_HsWILanqz8fLaz_3vuB-2wuRksZwV3pFEKApct00L_JWfhyOAvyq3qq7J8X0y_8uw"}

最後に

以上で Azure API トークンを取得するための事前準備が完了になります。API トークンを取得して終わりではないので、今度こそ(?) この API トークンを利用して運用を楽にできるような方法を本ブログにて公開していきます。

本ブログの情報につきましては、自社の検証に基づいた結果からの情報提供であり、
品質保証を目的としたものではございません。

投稿者: 緒方 亮

主に Azure や AWS などの Public Cloud を担当しています。機械学習/深層学習で R を利用しているため、投稿する記事に R がよく登場します。