チュートリアル:Azure Active Directory B2C に Web アプリケーションを登録する
アプリケーションが Azure Active Directory B2C (Azure AD B2C) と対話できるようにするには、管理しているテナントに登録する必要があります。 このチュートリアルでは、Azure portal を使用して Web アプリケーションを登録する方法を示します。
"Web アプリケーション" とは、サーバー上でほとんどのアプリケーション ロジックを実行する従来の Web アプリケーションを指します。 これらは、ASP.NET Core、Spring (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 の新しい統合アプリの登録エクスペリエンスか、以前のアプリケーション (レガシ) エクスペリエンスを使用できます。 この新しいエクスペリエンスの詳細を参照してください。
Azure portal にサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
Azure portal で、 [Azure AD B2C] を検索して選択します。
[アプリの登録] を選択し、 [新規登録] を選択します。
アプリケーションの名前を入力します。 たとえば、webapp1 とします。
[サポートされているアカウントの種類] で、 [Accounts in any identity provider or organizational directory (for authenticating users with user flows)]((ユーザー フローを使用してユーザーを認証するための) 任意の ID プロバイダーまたは組織のディレクトリのアカウント) を選択します。
[リダイレクト 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 には、次の制限があります。
- localhost リダイレクト URL を使用しない場合、応答 URL はスキーム
https
で始まる必要があります。 - 応答 URL では大文字と小文字が区別されます。 大文字と小文字の区別は、実行中のアプリケーションの URL パスの場合と一致している必要があります。 たとえば、ご利用のアプリケーションがそのパス
.../abc/response-oidc
の一部として含まれている場合は、応答 URL 内では.../ABC/response-oidc
と指定しないでください。 Web ブラウザーでは大文字と小文字を区別を区別するものとしてパスが処理されるため、.../abc/response-oidc
に関連付けられている cookie は、大文字と小文字が一致しない.../ABC/response-oidc
URL にリダイレクトされた場合に除外される可能性があります。 - 応答 URL では、アプリケーションで想定されているように、末尾のスラッシュを含めるか除外する必要があります。 たとえば、
https://contoso.com/auth-response
やhttps://contoso.com/auth-response/
は、アプリケーションで一致しない URL として扱われる場合があります。
- localhost リダイレクト URL を使用しない場合、応答 URL はスキーム
[アクセス許可] で、 [openid と offline_access アクセス許可に対して管理者の同意を付与します] チェック ボックスをオンにします。
[登録] を選択します。
ヒント
作成したアプリが [アプリの登録] に表示されない場合は、ポータルを更新します。
クライアント シークレットの作成
Web アプリケーションの場合は、アプリケーション シークレットを作成する必要があります。 クライアント シークレットは、"アプリケーション パスワード" とも呼ばれます。 このシークレットは、承認コードをアクセス トークンと交換するためにアプリケーションによって使用されます。
- [Azure AD B2C - アプリの登録] ページで、作成したアプリケーション (例: webapp1) を選択します。
- 左側のメニューで、[管理] の [証明書とシークレット] を選択します。
- [新しいクライアント シークレット] を選択します。
- [説明] ボックスにクライアント シークレットの説明を入力します。 たとえば、clientsecret1 のようにします。
- [有効期限] で、シークレットが有効な期間を選択してから、 [追加] を選択します。
- クライアント アプリケーションのコードで使用できるように、シークレットの値を記録します。 このページからの移動後は、このシークレットの値は "二度と表示されません"。 アプリケーションのコード内で、この値をアプリケーション シークレットとして使用します。
注意
セキュリティ上の理由から、アプリケーション シークレットは定期的にロール オーバーできるほか、万一緊急事態が発生した場合には直ちにロール オーバーすることができます。 Azure AD B2C と連携するすべてのアプリケーションは、発生頻度に関係なくシークレットのロールオーバー イベントを処理できるようになっている必要があります。 アプリケーションのシークレットは 2 つ設定できます。これによりアプリケーションは、そのシークレットのローテーション イベント中に古いシークレットを使用し続けることができます。 別のクライアント シークレットを追加するには、このセクションの手順を繰り返します。
ID トークンの暗黙的な許可の有効化
このアプリを登録し、ユーザー フローやカスタム ポリシーをテストするために https://jwt.ms/ アプリでそれを構成する場合は、アプリの登録で暗黙の許可フローを有効にする必要があります。
左側のメニューの [管理] セクションで、 [認証] を選択します。
[暗黙的な許可およびハイブリッド フロー] で、[アクセス トークン (暗黙的なフローに使用)] と [ID トークン (暗黙的およびハイブリッド フローに使用)] の両方のチェック ボックスをオンにします。
[保存] を選択します。
次のステップ
この記事で学習した内容は次のとおりです。
- Web アプリケーションの登録
- クライアント シークレットの作成
Azure Active Directory B2C 内にユーザー フローを作成する方法について説明します