クイックスタート: Azure App Service で実行されている Web アプリにアプリ認証を追加する
Note
2024 年 6 月 1 日より、新しく作成されたすべての App Service アプリには、名前付け規則 <app-name>-<random-hash>.<region>.azurewebsites.net
を使用して一意の既定のホスト名を生成するオプションが備わります。 既存のアプリ名は変更されません。
例: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
詳細については、App Service リソースの一意の既定のホスト名に関するページを参照してください。
Azure App Service で実行されている Web アプリの認証を有効にし、アクセスを組織内のユーザーに制限する方法について説明します。
このチュートリアルでは、以下の内容を学習します。
- Web アプリの認証を構成する。
- ID プロバイダーとして Microsoft Entra を使用して、Web アプリへのアクセスを組織内のユーザーに限定します。
App Service によって提供される自動認証
App Service では組み込みの認証と承認がサポートされているため、Web アプリでコードをまったく記述せずにユーザーをサインインさせることができます。 オプションである App Service の認証および承認モジュールを使用すると、アプリの認証と承認が簡素化されます。 カスタムの認証と承認の準備ができたら、このアーキテクチャに基づいて構築します。
App Service 認証では、次の機能が提供されます。
- Azure portal とアプリ設定を通じて簡単に起動して構成できます。
- SDK、特定の言語、またはアプリケーションのコードの変更は必要ありません。
- 複数の ID プロバイダーがサポートされています。
- Microsoft Entra
- Microsoft アカウント
- x
認証/承認モジュールが有効になっている場合、すべての受信 HTTP 要求は、アプリのコードによって処理される前に、それを通過します。詳細については、「Azure App Service での認証と承認」を参照してください。
1.前提条件
Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。
2. App Service で Web アプリを作成して公開する
このチュートリアルでは、App Service にデプロイされた Web アプリが必要です。 既存の Web アプリを使用することも、いずれかのクイックスタートに従って新しい Web アプリを作成して App Service に公開することもできます。
既存の Web アプリを使用するか新しい Web アプリを作成するかにかかわらず、次のものをメモしてください。
- Web アプリの名前
- Web アプリのデプロイ先のリソース グループ
これらの名前は、このチュートリアル全体を通して必要になります。
3. 認証と承認を構成する
App Service で Web アプリを実行したら、認証と承認を有効にします。 ID プロバイダーとして Microsoft Entra を使用します。 詳細については、App Service アプリケーションの Microsoft Entra 認証の構成に関する記事をご覧ください。
Azure portal メニューで [リソース グループ] を選択するか、任意のページから [リソース グループ] を検索して選択します。
[リソース グループ] でリソース グループを検索して選択します。 [概要] で、アプリの管理ページを選択します。
アプリの左側のメニューで [認証] を選び、[ID プロバイダーの追加] を選びます。
[ID プロバイダーの追加] ページで、Microsoft および Microsoft Entra ID にサインインするための ID プロバイダーとして [Microsoft] を選択します。
[テナントの種類] で、従業員とビジネス ゲストについて [従業員の構成 (現在のテナント)] を選びます。
[アプリの登録]>[アプリの登録の種類] で、[新しいアプリの登録を作成する] を選び、Microsoft Entra で新しいアプリの登録を作成します。
アプリケーションの表示名を入力します。 表示名は、サインイン時など、アプリケーションのユーザーがアプリを使用するときに表示されることがあります。
[アプリの登録]>[サポートされているアカウントの種類] で、[現在のテナント - 単一テナント] を選択して、組織のユーザーのみが Web アプリにサインインできるようにします。
[追加チェック] セクションで、次を選択します。
- [クライアント アプリケーション要件] に対して [このアプリケーション自体からの要求のみを許可する]
- [ID 要件] に対して [あらゆる ID からの要求を許可する]
- [テナント要件] に対して [発行者テナントからの要求のみを許可する]
[App Service の認証設定] セクションで以下を設定します。
- [認証] に対して [認証を要求する]
- [認証されていない要求] に対して [HTTP 302 リダイレクトが見つかりました - Web サイトに推奨]
- [トークン ストア] ボックス
[ID プロバイダーの追加] ページの下部にある [追加] を選び、対象の Web アプリの認証を有効化します。
これで、App Service の認証と承認によってアプリが保護されるようになりました。
Note
他のテナントからのアカウントを許可するには、[認証] ブレードから [ID プロバイダー] を編集し、[発行者の URL] を [https://login.microsoftonline.com/common/v2.0 ] に変更します。
4. Web アプリへの制限付きアクセスを確認する
前のセクションで App Service の認証および認可モジュールを有効化した際に、従業員または外部テナントにアプリの登録が作成されました。 アプリの登録には、前の手順で作成した表示名があります。
設定を確認するには、アプリケーション開発者以上として Microsoft Entra 管理センター にサインインします。 外部構成を選んだ場合は、上部のメニューの [設定] アイコンを使用して、[ディレクトリ + サブスクリプション] メニューから Web アプリの顧客 (外部) テナントに切り替えます。 正しいテナントである場合、以下を実施します。
[ID]>[アプリケーション]>[アプリの登録] の順に移動し、メニューから [アプリケーション]>[アプリの登録] の順に選択します。
作成されたアプリの登録を選択します。
概要で、 [サポートされているアカウントの種類] が [所属する組織のみ] に設定されていることを確認します。
アプリへのアクセスが組織内のユーザーに限定されていることを確認するには、Web アプリの [概要] にアクセスし、[既定のドメイン] リンクを選択します。 または、シークレットかプライベート モードでブラウザーを起動し、
https://<app-name>.azurewebsites.net
にアクセスします (上部の注を参照)。セキュリティで保護されたサインイン ページが表示されるので、認証されていないユーザーにはサイトへのアクセスが許可されないことを確認できます。
サイトにアクセスするために、組織内のユーザーとしてサインインします。 新しいブラウザーを起動し、個人用アカウントを使用してサインインしてみることで、組織外のユーザーにはアクセス権がないことを確認することもできます。
5.リソースをクリーンアップする
この複数のパートで構成されるチュートリアルのすべての手順を完了している場合、App Service、App Service ホスティング プラン、ストレージ アカウントがリソース グループに作成されています。 また、Microsoft Entra ID にアプリの登録も作成されています。 外部構成を選択した場合は、新しい外部テナントが作成されている可能性があります。 これらのリソースとアプリの登録が不要になったら、引き続き料金が発生することのないように、これらを削除します。
このチュートリアルでは、以下の内容を学習します。
- チュートリアルに従って、作成した Azure リソースを削除する。
リソース グループを削除します
Azure portal で、ポータル メニューから [リソース グループ] を選択し、対象の App Service と App Service プランが含まれているリソース グループを選択します。
[リソース グループの削除] を選択して、リソース グループとすべてのリソースを削除します。
このコマンドの実行には数分かかることがあります。
アプリの登録を削除する
Microsoft Entra 管理センターで、[アプリケーション]>[アプリの登録] を選びます。 次に、作成したアプリケーションを選択します。
アプリの登録の概要で、 [削除] を選択します。
外部テナントを削除する
新しい外部テナントを作成した場合は、削除できます。 Microsoft Entra 管理センターで、[ID]>[概要]>[テナントの管理]の順に参照します。
削除するテナントを選択してから、[削除] を選択します。
テナントを削除する前に、必要なアクションを完了することが必要な場合があります。 たとえば、テナント内のすべてのユーザー フローとアプリの登録を削除する必要がある場合があります。
テナントを削除する準備ができたら、[削除] を選択します。
次のステップ
このチュートリアルでは、次の作業を行う方法を学びました。
- Web アプリの認証を構成する。
- Web アプリへのアクセスを組織内のユーザーに制限する。