チュートリアル:Azure Active Directory B2C に Web アプリケーションを登録する

アプリケーションが Azure Active Directory B2C (Azure AD B2C) と対話できるようにするには、管理しているテナントに登録する必要があります。 このチュートリアルでは、Azure portal を使用して Web アプリケーションを登録する方法を示します。

"Web アプリケーション" とは、サーバー上でほとんどのアプリケーション ロジックを実行する従来の Web アプリケーションを指します。 これらは、ASP.NET Core、Maven (Java)、Flask (Python)、Express (Node.js) などのフレームワークを使用して構築できます。

重要

代わりにシングルページ アプリケーション ("SPA") を使用している場合 (例: Angular、Vue、または React)、シングルページ アプリケーションを登録する方法をご確認ください。

代わりにネイティブ アプリ (iOS、Android、モバイル & デスクトップなど) を使用している場合は、ネイティブ クライアント アプリケーションを登録する方法を参照してください。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

独自の Azure AD B2C テナントをまだ作成していない場合、ここで作成してください。 既存の Azure AD B2C テナントを使用できます。

Web アプリケーションの登録

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

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

  2. ご自分の Azure AD B2C テナントが含まれるディレクトリを必ず使用してください。 ポータル ツールバーの [Directories + subscriptions](ディレクトリ + サブスクリプション) アイコンを選択します。

  3. [ポータルの設定] | [Directories + subscriptions](ディレクトリ + サブスクリプション) ページの [ディレクトリ名] の一覧で自分の Azure AD B2C ディレクトリを見つけて、 [切り替え] を選択します。

  4. Azure portal で、 [Azure AD B2C] を検索して選択します。

  5. [アプリの登録] を選択し、 [新規登録] を選択します。

  6. アプリケーションの 名前 を入力します。 たとえば、webapp1 とします。

  7. [サポートされているアカウントの種類] で、 [Accounts in any identity provider or organizational directory (for authenticating users with user flows)]((ユーザー フローを使用してユーザーを認証するための) 任意の ID プロバイダーまたは組織のディレクトリのアカウント) を選択します。

  8. [リダイレクト URI] で、 [Web] を選択し、URL テキスト ボックスに「https://jwt.ms」と入力します。

    リダイレクト URI とは、ユーザーが承認サーバー (この場合は Azure AD B2C) とのやり取りが完了したときにユーザーが送信される、また承認が成功したときにアクセス トークンまたは認証コードが送信されるエンドポイントです。 実稼働アプリケーションでは、通常は https://contoso.com/auth-response などの、お使いのアプリが実行されているパブリック アクセスが可能なエンドポイントです。 このチュートリアルの場合のようなテスト目的では、トークンのデコードされたコンテンツを表示する Microsoft が所有する Web アプリケーションである https://jwt.ms に設定できます (トークンのコンテンツがお使いのブラウザー外に出ることはありません)。 アプリの開発時には、お使いのアプリケーションがローカルでリッスンする https://localhost:5000 などのエンドポイントを追加する場合があります。 お使いの登録済みアプリケーションでは、いつでもリダイレクト URI を追加したり、変更したりすることができます。

    リダイレクト URI には、次の制限があります。

    • 応答 URL は、スキーム https で始まる必要があります。
    • 応答 URL では大文字と小文字が区別されます。 大文字と小文字の区別は、実行中のアプリケーションの URL パスの場合と一致している必要があります。 たとえば、ご利用のアプリケーションがそのパス .../abc/response-oidc の一部として含まれている場合は、応答 URL 内では .../ABC/response-oidc と指定しないでください。 Web ブラウザーでは大文字と小文字を区別を区別するものとしてパスが処理されるため、.../abc/response-oidc に関連付けられている cookie は、大文字と小文字が一致しない .../ABC/response-oidc URL にリダイレクトされた場合に除外される可能性があります。
  9. [アクセス許可] で、 [openid と offline_access アクセス許可に対して管理者の同意を付与します] チェック ボックスをオンにします。

  10. [登録] を選択します。

ヒント

作成したアプリが [アプリの登録] に表示されない場合は、ポータルを更新します。

クライアント シークレットの作成

Web アプリケーションの場合は、アプリケーション シークレットを作成する必要があります。 クライアント シークレットは、"アプリケーション パスワード" とも呼ばれます。 このシークレットは、承認コードをアクセス トークンと交換するためにアプリケーションによって使用されます。

  1. [Azure AD B2C - アプリの登録] ページで、作成したアプリケーション (例: webapp1) を選択します。
  2. 左側のメニューで、 [管理][証明書とシークレット] を選択します。
  3. [新しいクライアント シークレット] を選択します。
  4. [説明] ボックスにクライアント シークレットの説明を入力します。 たとえば、clientsecret1 のようにします。
  5. [有効期限] で、シークレットが有効な期間を選択してから、 [追加] を選択します。
  6. クライアント アプリケーションのコードで使用できるように、シークレットの を記録します。 このページからの移動後は、このシークレットの値は "二度と表示されません"。 アプリケーションのコード内で、この値をアプリケーション シークレットとして使用します。

注意

セキュリティ上の理由から、アプリケーション シークレットは定期的にロール オーバーできるほか、万一緊急事態が発生した場合には直ちにロール オーバーすることができます。 Azure AD B2C と連携するすべてのアプリケーションは、発生頻度に関係なくシークレットのロールオーバー イベントを処理できるようになっている必要があります。 アプリケーションのシークレットは 2 つ設定できます。これによりアプリケーションは、そのシークレットのローテーション イベント中に古いシークレットを使用し続けることができます。 別のクライアント シークレットを追加するには、このセクションの手順を繰り返します。

ID トークンの暗黙的な許可の有効化

暗黙的な許可には、トークン (ID トークンやアクセス トークンなど) が Azure AD B2C からアプリケーションに直接返されるという特徴があります。 ASP.NET Core Web アプリや https://jwt.ms など、承認エンドポイントから直接 ID トークンを要求する Web アプリの場合、アプリの登録で暗黙的な許可フローを有効にします。

  1. 左側のメニューの [管理] セクションで、 [認証] を選択します。
  2. [暗黙的な許可] で、 [アクセス トークン][ID トークン] の両方のチェック ボックスをオンにします。
  3. [保存] を選択します。

次のステップ

この記事で学習した内容は次のとおりです。

  • Web アプリケーションの登録
  • クライアント シークレットの作成

次に、ユーザーがサインアップ、サインイン、および各自のプロファイルを管理できるようにするユーザー フローの作成方法を確認します。