Web アプリの登録について
アプリケーション登録は、Java Web アプリケーションがMicrosoft Entra IDと通信するときに使用する ID と構成を提供します。 このユニットでは、登録を作成するのではなく、わかりやすいポータル サイトの登録設定を解釈します。
Note
シングルテナント アプリのサインイン対象ユーザーには、そのテナントのユーザー アカウントとゲスト アカウントの両方が含まれます。 従業員専用アクセスでは、選択された一連の従業員ユーザーまたはグループに対する追加の承認が必要です。このシナリオでは、そのポリシーは実装されません。 テナント メンバーシップ、電子メール ドメイン、メンバー/ゲストの分類は雇用を証明しません。 詳細については、「 単一アプリとマルチテナント アプリ」を参照してください。
登録設定を解釈する
次の表では、ポータルに関連する設定について説明します。 識別子と URI の例は説明プレースホルダーであり、学習者が構成する必要がある値ではありません。
| Setting | この例での役割 |
|---|---|
| 名前 | アプリケーション用の人が読めるラベル。 アプリケーションのプロトコル識別子ではありません。 |
| アプリケーション (クライアント) ID | アプリケーションを識別します。 コード サンプルでは、この値を CLIENT_IDと参照します。 |
| ディレクトリ(テナント)ID | ワークフォース テナントを識別します。 テナント固有の機関は、そのテナントに認証要求を送信します。 |
| サポートされているアカウントの種類 | シングルテナント対象ユーザーは、該当するアクセス ポリシーに従って、選択したディレクトリ内のユーザー アカウントとゲスト アカウントを許可します。 |
| ウェブ リダイレクト URI | 承認応答を受け取るサーバー エンドポイントを識別します。 説明的な値は https://app.example.com/auth/callback。 |
| アプリケーションの認証情報 | トークンの認証コードを使用するときに、機密 Web アプリケーションが自身を認証できるようにします。 |
次の図は、クライアントとテナントの識別子がアプリ登録の概要にどのように表示されるかを示しています。 これは参照資料であり、モジュールを完了するために開く必要がある画面ではありません。
リダイレクト URI をサインイン フローに関連付ける
承認コード フローでは、アプリケーションはブラウザーをMicrosoft Entra承認エンドポイントに送信します。 承認応答が成功すると、ブラウザーは 承認コードを使用して登録済みのリダイレクト URI に戻ります。
コールバック URI は、登録の Web リダイレクト URI と、承認要求で使用される URI と一致する必要があります。 その後、サーバーはトークン エンドポイントでコードを引き換えます。 ブラウザーコールバックは、このフローのMicrosoft Graphアクセス トークンを受け取りません。
後のサンプルでは、 Config.REDIRECT_URI はこのコールバック アドレスを表します。 これはアプリケーション構成値であり、MSAL4J によって提供されるメソッドではありません。
識別子と資格情報を区別する
クライアント ID はアプリケーションを識別しますが、その ID は証明しません。 機密性の高い Web アプリケーションでは、トークンの取得中に資格情報も提示されます。
クライアント シークレットは、考えられる資格情報の 1 つです。 その 価値 は秘密の材料です。その シークレット ID は識別子であり、クライアント認証に使用される値ではありません。 Azure ポータルには、新しく作成されたシークレットの値が 1 回だけ表示されます。 これらの違いは、次のユニットの CLIENT_SECRET プレースホルダーを説明します。このモジュールにはシークレットは必要ありません。
Important
シークレットベースのコード サンプルは、運用資格情報ストレージの設計ではなく、API の形状を示しています。 シークレットと設定された構成ファイルは、ソース管理、スクリーンショット、ログから除外する必要があります。 運用環境の機密 Web アプリケーションでは、証明書または適切に構成されたフェデレーション資格情報を使用し、資格情報マテリアル用のセキュリティで保護されたストレージを使用する必要があります。 マネージド ID は、このユーザー サインイン フローのドロップインの代わりではありません。 アプリケーション資格情報のガイダンスを参照してください。
登録管理と API アクセスは別の懸念事項です
登録を管理する機能は、テナントのアクセス許可によって管理されます。 メンバー ユーザーは通常、アプリを登録できますが、テナント ポリシーはこれを制限できます。 実際の実装では、 アプリケーション開発者 ロールや管理者サポートなどの適切なアクセスが必要になる場合があります。 これは管理上の考慮事項であり、学習者の前提条件ではありません。
登録によって、アプリケーションが要求するすべての API アクセス許可が付与されるわけではありません。 ポータルのMicrosoft Graphアクセスは、要求されたスコープと適用可能な同意付与によって異なります。これについては、モジュールの後半で説明します。
参考までに、 登録アプリケーションでは 、登録設定とその管理について説明します。