Azure Active Directory (Azure AD) トークンを取得し、それを使用して Service Bus キューにメッセージを送信する

Azure Active Directory (Azure AD) トークンの取得の概要については、「 アプリケーションからの認証 」を参照してください。

この記事では、Service Bus 名前空間にメッセージを送信するために使用できる Azure AD トークンを取得する例を示します。 テスト目的で Postman ツールを使用します。

前提条件

アプリを Azure AD に登録する

最初の手順では、アプリケーションを Azure AD テナントに登録し、テナント ID、クライアント ID、およびクライアント シークレットの値をメモします。 Postman ツールを使用して REST API をテストする場合は、これらの値を最新の値で使用します。

  1. Azure portal にサインインします。

  2. 検索バーで Azure Active Directory を検索し、ドロップダウン リストから選択します。

    Azure Active Directory を検索して選択する

  3. [ Azure Active Directory ] ページで、左側のメニューの [ アプリの登録 ] リンクを選択し、ツール バーの [ + 新しい登録 ] を選択します。

    アプリの登録 ページに切り替え、[新規登録] を選択します

  4. アプリの名前を入力し、[登録] を選択 します

    名前を入力し、[登録] を選択します

  5. アプリケーションのホーム ページで、 アプリケーション (クライアント) IDディレクトリ (テナント) ID の値をメモします。 これらの値を使用して、Azure AD からトークンを取得します。

    クライアント ID とテナント ID をメモします

  6. 次に、左側のメニュー で [証明書 & シークレット ] を選択し、[ + 新しいクライアント シークレット] を選択します。

    [証明書] & [シークレット] ページに切り替え、[新しいクライアント シークレット] を選択します

  7. 説明を入力し、シークレットの有効期限を選択して、[追加] を選択します。

    説明を入力し、有効期限を選択して、[追加] を選択します

  8. [ クライアント シークレット ] リストのシークレット値の横にあるコピー ボタンを選択して、値をクリップボードにコピーします。 どこかに貼り付けます。 後で Azure AD からトークンを取得するために使用します。

    クライアント シークレットをコピーする

Service Bus データ送信者ロールにアプリケーションを追加する

この例では、Service Bus キューにのみメッセージングを送信するため、アプリケーションを Service Bus データ送信者 ロールに追加します。

  1. [Service Bus 名前空間] ページで、左側のメニューから [アクセス制御] を選択し、[ロールの割り当ての追加] タイルの [追加] を選択します。

    アクセス制御 -> ロールの割り当てを追加する

  2. [ロールの割り当ての追加] ページで、[ロール] Azure Service Bus [データ送信者] を選択し、サービス プリンシパルのアプリケーション (この例では ServiceBusRestClientApp) を選択します。

    Azure Service Bus データ送信者ロールにアプリを追加する

  3. [ロールの割り当ての追加] ページで [保存] を選択して、ロールの割り当てを保存します。

Postman を使用して Azure AD トークンを取得する

  1. Postman を起動します。

  2. メソッドの場合は、[ GET] を選択します。

  3. URI に「」と入力します https://login.microsoftonline.com/<TENANT ID>/oauth2/token。 を、先ほどコピーしたテナント ID の値に置き換えます <TENANT ID>

  4. [ ヘッダー ] タブで、 値に Content-Type キーと application/x-www-form-urlencoded を追加します。

    コンテンツ タイプ ヘッダーを追加する

  5. [ 本文 ] タブに切り替え、次のキーと値を追加します。

    1. [フォーム データ] を選択します

    2. キーを追加 grant_type し、値に「」と入力します client_credentials

    3. キーを追加 client_id し、先ほど説明した クライアント ID の値を貼り付けます。

    4. キーを追加 client_secret し、先ほど説明した クライアント シークレット の値を貼り付けます。

    5. キーを追加 resource し、値に「」と入力します https://servicebus.azure.net

      要求の本文を設定する

  6. [ 送信] を選択して、トークンを取得する要求を送信します。 結果にトークンが表示されます。 トークンを保存します (二重引用符を除く)。 これは後で使用します。

    Azure AD からのアクセス トークン

メッセージをキューに送信する

  1. Postman で、新しいタブを開きます。

  2. メソッドの [POST] を選択します。

  3. 次の形式で URI を入力します。 https://<SERVICE BUS NAMESPACE NAME>.servicebus.windows.net/<QUEUE NAME>/messages を Service Bus 名前空間の名前に置き換えます <SERVICE BUS NAMESPACE NAME><QUEUE NAME> をキューの名前に置き換えます。

  4. [ヘッダー] タブ 、次の 2 つのヘッダーを追加します。

    1. 次の形式でキーと値を追加Authorizationします。 Bearer <TOKEN from Azure AD> トークンをコピーまたは貼り付ける場合は、外側の二重引用符をコピーしないでください。

    2. キーと application/atom+xml;type=entry;charset=utf-8 をその値として追加Content-Typeします。

      Service Bus キューで [ヘッダー] として [承認] と [コンテンツ ダッシュ タイプ] が選択されているスクリーンショット。

  5. [ 本文 ] タブで、データ型として raw を選択し、本文に「」または「メッセージ」と入力 This is a message します。

    Service Bus キューの生の本文ビューのテスト メッセージのスクリーンショット。

  6. [ 送信] を選択して、メッセージをキューに送信します。 次の図に示すように、コード 201 のように状態 Created が表示されます。

    成功した状態

  7. Azure portalの名前空間ページで、メッセージがキューにポストされていることを確認できます。

    メッセージはキューにポストされます

    次の図に示すように、Service Bus キュー ページの Service Bus エクスプローラー (プレビュー) を使用して、メッセージを受信またはピークすることもできます。

    Service Bus エクスプローラーを使用してメッセージを受信する

参照

次の記事をご覧ください。