Azure Active Directory B2C テナントに Web API アプリケーションを追加する

この記事では、アクセス トークンを提示するクライアント アプリケーションによる要求を Web API リソースが受け付けて応答できるように、Azure Active Directory B2C (Azure AD B2C) テナントに Web API リソースを登録する方法を示します。

アプリケーションを Azure AD B2C テナントに登録するには、Azure portal の新しい統合アプリの登録エクスペリエンスまたは以前のアプリケーション (レガシ) エクスペリエンスを使用できます。 この新しいエクスペリエンスの詳細を参照してください

  1. Azure portal にサインインします。
  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
  3. 左側のメニューで、 [Azure AD B2C] を選択します。 または、 [すべてのサービス] を選択し、 [Azure AD B2C] を検索して選択します。
  4. [アプリの登録] を選択し、 [新規登録] を選択します。
  5. アプリケーションの名前を入力します。 たとえば、webapi1 とします。
  6. [リダイレクト URI] で、 [Web] を選択し、お使いのアプリケーションが要求したすべてのトークンを Azure AD B2C が返すエンドポイントを入力します。 実稼働アプリケーションでは、リダイレクト URI とエンドポイントを https://localhost:5000 のように設定します。 開発時またはテスト時には、トークンのデコードされたコンテンツを表示する Microsoft 所有の Web アプリケーションである https://jwt.ms にこれを設定できます (トークンのコンテンツがお使いのブラウザー外に出ることはありません)。 お使いの登録済みアプリケーションでは、いつでもリダイレクト URI を追加したり、変更したりすることができます。
  7. [登録] を選択します。
  8. ご自分の Web API のコードで使用するために、アプリケーション (クライアント) ID を記録しておきます。

スコープを構成する

スコープを使用すると、保護されたリソースへのアクセスを統制できます。 スコープは、スコープベースのアクセス制御を実装するために Web API によって使用されます。 たとえば Web API のユーザーが、読み取りと書き込みの両方のアクセス権限を持つ場合もあれば、読み取りアクセス権限しか持たない場合もあります。 このチュートリアルでは、スコープを使用して、Web API の読み取りアクセス許可と書き込みアクセス許可を定義します。

  1. [アプリの登録] を選択します。
  2. webapi1 アプリケーションを選択して、その [概要] ページを開きます。
  3. [管理][API の公開] を選択します。
  4. [アプリケーション ID URI] の横にある [追加] リンクを選択します。
  5. 既定値 (GUID) を api に置き換え、 [保存] を選択します。 完全な URI が表示されます。https://your-tenant-name.onmicrosoft.com/api の形式になっているはずです。 Web アプリケーションで API のアクセス トークンを要求するときに、API に対して定義する各スコープのプレフィックスとしてこの URI を追加する必要があります。
  6. [この API で定義されるスコープ] で、 [スコープの追加] を選択します。
  7. 次の値を入力して、API への読み取りアクセスを定義するスコープを作成し、[スコープの追加] を選択します。
    1. スコープ名: demo.read
    2. 管理者の同意の表示名: Read access to demo API
    3. 管理者の同意の説明: Allows read access to the demo API
  8. [スコープの追加] を選択し、次の値を入力して、API への書き込みアクセスを定義するスコープを作成し、[スコープの追加] を選択します。
    1. スコープ名: demo.write
    2. 管理者の同意の表示名: Write access to demo API
    3. 管理者の同意の説明: Allows write access to the demo API

[アクセス許可の付与]

保護された Web API をアプリケーションから呼び出すには、その API へのアクセス許可をアプリケーションに付与する必要があります。 たとえば「チュートリアル: Azure Active Directory B2C にアプリケーションを登録する」では、Azure AD B2C に webapp1 という Web アプリケーションが登録されています。 このアプリケーションを使用して、Web API を呼び出すことができます。

  1. [アプリの登録] を選択し、API へのアクセスを必要とする Web アプリケーションを選択します。 たとえば、webapp1 とします。
  2. [管理] の下にある [API のアクセス許可] を選択します。
  3. [構成されたアクセス許可] の下で [アクセス許可の追加] を選択します。
  4. [自分の API] タブを選択します。
  5. Web アプリケーションにアクセスを許可する API を選択します。 たとえば、webapi1 とします。
  6. [アクセス許可] で、 [デモ] を展開し、前に定義したスコープを選択します。 demo.readdemo.write などです。
  7. [アクセス許可の追加] を選択します.
  8. [<テナント名> に管理者の同意を与えます] を選択します。
  9. アカウントを選択するよう求めるメッセージが表示されたら、現在サインインしている管理者アカウントを選択するか、少なくとも "クラウド アプリケーション管理者" ロールが割り当てられている Azure AD B2C テナントのアカウントでサインインします。
  10. [はい] を選択します。
  11. [更新] を選択し、両方のスコープの [状態] に、"... に付与されました" が表示されていることを確認します。

アプリケーションが登録されて、保護された Web API を呼び出すことができるようになります。 アプリケーションを使用するには、ユーザーは Azure AD B2C での認証を行います。 アプリケーションで、保護された Web API にアクセスするための認可の付与が、Azure AD B2C から取得されます。