Microsoft Entra ID を使用してアプリケーション要求を承認する

Azure Web PubSub では、アプリケーションからの要求を認可するために Microsoft Entra ID がサポートされています。

この記事では、Azure アプリケーションからの Web PubSub リソースへの要求を承認するように Web PubSub リソースとコードを構成する方法について説明します。

アプリケーションの登録

最初の手順では、Azure アプリケーションを登録します。

  1. Azure portal で、Microsoft Entra ID を探して選択します。
  2. 左側のメニューの [管理] で、[アプリの登録] を選択します。
  3. [新規登録] を選択します。
  4. [名前] に、アプリケーションに使用する名前を入力します。
  5. [登録] を選択して、アプリケーションの登録を確認します。

アプリケーションの登録を示すスクリーンショット。

アプリケーションが登録されたら、アプリケーションの概要に移動して、[アプリケーション (クライアント) ID][ディレクトリ (テナント) ID] の値を表示します。 これらの値は、次のセクションで使用します。

アプリケーションを示すスクリーンショット。

アプリケーションの登録の詳細については、Microsoft ID プラットフォームを使用したアプリケーションの登録に関するクイック スタートを参照してください。

資格情報の追加

証明書とクライアント シークレット (文字列) の両方を資格情報として Confidential クライアント アプリの登録に追加できます。

資格情報の追加の詳細については、「資格情報を追加する」を参照してください。

クライアント シークレットの追加

アプリケーションでは、クライアントがトークンを要求するときに、その ID を証明するためのクライアント シークレットが必要です。

クライアント シークレットを作成するには、次の手順に従います。

  1. 左側のメニューで、[管理][証明書とシークレット] を選択します。

  2. [クライアント シークレット] タブで、[新しいクライアント シークレット] を選択します。

    クライアント シークレットの作成を示すスクリーンショット。

  3. クライアント シークレットの説明を入力し、シークレットの [期限切れ] 時を選択します。

  4. クライアント シークレットの値をコピーし、後で使用するために保存する安全な場所に貼り付けます。

    Note

    シークレットは、シークレットの作成時にのみ表示されます。 後でポータルでクライアント シークレットを表示することはできません。

証明書を追加する

クライアント シークレットを作成する代わりに、証明書をアップロードすることもできます。

証明書のアップロードを示すスクリーンショット。

Azure portal でロールの割り当てを追加する

このセクションでは、Web PubSub リソースのサービス プリンシパル (アプリケーション) に Web PubSub サービス所有者ロールを割り当てる方法について説明します。

Note

管理グループ、サブスクリプション、リソース グループ、1 つのリソースなど、任意のスコープにロールを割り当てることができます。 スコープの詳細については、Azure ロールベースのアクセス制御のスコープの理解に関する記事を参照してください。

  1. Azure portal で、お使いの Web PubSub リソースに移動します。

  2. 左側のメニューの [アクセス制御 (IAM)] を選択し、リソースのアクセス制御設定を表示します。

  3. [ロールの割り当て] タブを選択して、このスコープのロールの割り当てを表示します。

    次の図は、Web PubSub リソースの [アクセス制御 (IAM)] ペインの例を示しています。

    [アクセス制御 (IAM)] ペインの例を示すスクリーンショット。

  4. [追加] > [ロール割り当ての追加] の順に選択します。

  5. [ロール] タブを選択し、[Web PubSub サービス所有者] を選択します。

  6. [次へ] を選択します。

    ロールの割り当ての追加を示すスクリーンショット。

  7. [メンバー] タブを選択します。[アクセス権の割り当て先] で、[ユーザー、グループ、またはサービス プリンシパル] を選択します。

  8. [メンバーの選択] を選択します。

  9. ロールを割り当てるアプリケーションを探して選択します。

  10. [選択] を選択して、選択内容を確認します。

  11. [次へ] を選択します。

    サービス プリンシパルへのロールの割り当てを示すスクリーンショット。

  12. [レビューと割り当て] を選択して、変更内容を確認します。

重要

Azure ロールの割り当ての反映には最大で 30 分かかる可能性があります。

Azure ロールの割り当てを割り当てて管理する方法の詳細については、次の記事を参照してください。

Postman を使用して Microsoft Entra トークンを取得する

  1. Postman を開きます。

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

  3. [URI] に「https://login.microsoftonline.com/<TENANT ID>/oauth2/token」と入力します。 <TENANT ID> を、作成したアプリケーションの [概要] ペインの [ディレクトリ (テナント) ID] の値に置き換えます。

  4. [ヘッダー] タブを選択し、次のキーと値を追加します。

    1. [キー] で、[Content-Type] を選択します。
    2. application/x-www-form-urlencoded と入力します。

    Postman を使用してトークンを取得するときの [基本] タブの情報を示すスクリーンショット。

  5. [Body] タブを選択します。

  6. 本文の種類 x-www-form-urlencoded を選択します。

  7. [キー] で、次のキーと値を追加します。

    1. [grant_type] を選択し、[client_credentials] 値を選択します。
    2. [client_id] を選択し、作成したアプリケーションの [概要] ペインから [アプリケーション (クライアント) ID] の値を貼り付けます。
    3. [client_secret] を選択し、保存したクライアント シークレットの値を貼り付けます。
    4. [resource] を選択し、値に https://webpubsub.azure.com を入力します。

    Postman を使用してトークンを取得するときの [本文] タブのパラメーターを示すスクリーンショット。

    OAuth2/v2.0/token エンドポイントの場合は、resource の値でなく、scope の値を渡します。

    client_id: *your client ID*
    client_secret: *your client secret*
    grant_type: client_credentials
    scope: https://webpubsub.azure.com/.default
    
  8. [送信] を選択して、トークンの取得要求を送信します。 access_token の値はアクセス トークンです。

    Postman を使用してトークンを取得するときの応答トークンを示すスクリーンショット。

Microsoft Entra 認可を使用するコード サンプル

公式にサポートされている 4 つのプログラミング言語で Microsoft Entra 認可を使用するサンプルを利用してください。