認証のシナリオと推奨事項

Azure App Service で Web アプリまたは API を実行している場合は、それを要求するユーザーまたはアプリケーションの ID に基づいて、そのアプリへのアクセスを制限できます。 App Service は、この目標の達成に役立ついくつかの認証ソリューションを提供しています。 この記事では、さまざまな認証オプション、その長所と短所、特定のシナリオにどの認証ソリューションを使うかについて説明します。

認証ソリューション

  • Azure App Service 組み込み認証 - Web アプリ、RESTful API あるいはモバイル バックエンドにおいて、最小限のコードの記述、あるいはコードなしでのユーザーのサインインとデータへのアクセスを可能とします。 これはプラットフォームに直接組み込まれており、特定の言語、ライブラリ、セキュリティの専門知識、あるいはコードの使用すらも必要ありません。
  • Microsoft Authentication Library (MSAL) - 開発者が Microsoft ID プラットフォームからセキュリティ トークンを取得して、ユーザーを認証しセキュリティで保護された Web API にアクセスすることを可能とします。 これらは、サポートされている複数のプラットフォームとフレームワークで使用できて、さまざまなホスト環境で使用できる汎用目的のライブラリです。 開発者は、Microsoft Entra、Facebook、Google、X などの複数のサインイン プロバイダーと統合することもできます。
  • Microsoft.Identity.Web - MSAL.NET をラップする高レベル ライブラリであり、Microsoft ID プラットフォームと統合された Web アプリと Web API への認証サポートの追加を簡略化する一連の ASP.NET Core 抽象化を提供します。 ASP.NET Core、その認証ミドルウェア、MSAL.NET を結び付ける単一サーフェス API の便利なレイヤーを提供します。 このライブラリは、さまざまなホステッド環境のアプリで使用できます。 ユーザーは、Microsoft Entra、Facebook、Google、X などの複数のサインイン プロバイダーと統合できます。

シナリオに関する推奨事項

次の表に、各認証ソリューションと、それをいつ使用するべきか判断するための重要な要素を示します。

認証方法 使用する場合
組み込み App Service 認証 * 所有および管理するコードを減らしたい。
* アプリの言語や SDK で、ユーザーのサインインや認可が提供されていない。
* アプリのコードを変更する能力がない (レガシ アプリを移行する場合など)。
* コードではなく、構成を使用して認証を処理する必要がある。
* 外部ユーザーまたはソーシャル ユーザーをサインインさせる必要がある。
Microsoft Authentication Library (MSAL) * いくつかの異なる言語のいずれかでのコードソ リューションが必要である
* カスタム認可ロジックを追加する必要がある。
* 増分同意をサポートする必要がある。
* コード内でサインインしているユーザーに関する情報が必要である。
* 外部ユーザーまたはソーシャル ユーザーをサインインさせる必要がある。
* アプリは、ユーザーに再サインインさせることなく、有効期限切れのアクセス トークンに対処する必要がある。
Microsoft.Identity.Web * ASP.NET Core アプリを持っている。
* ローカル開発時に IDE でシングル サインオンのサポートが必要である。
* カスタム認可ロジックを追加する必要がある。
* 増分同意をサポートする必要がある。
* Web アプリで条件付きアクセスが必要である。
* コード内でサインインしているユーザーに関する情報が必要である。
* 外部ユーザーまたはソーシャル ユーザーをサインインさせる必要がある。
* アプリは、ユーザーに再サインインさせることなく、有効期限切れのアクセス トークンに対処する必要がある。

次の表に、認証シナリオと、使用するべき認証ソリューションを一覧表示します。

シナリオ App Service 組み込み認証 Microsoft Authentication Library Microsoft.Identity.Web
組織内のユーザーに対してアクセスを制限する高速かつ簡単な方法が必要ですか?
アプリケーション コードを変更できませんか (アプリの移行シナリオ)?
アプリの言語とライブラリでユーザーのサインイン/認可がサポートされていますか?
コード ソリューションを使用できる場合でも、できればライブラリは使用したく "ない" ですか? メンテナンスの負担は避けたいですか?
Web アプリで増分同意を提供する必要がありますか?
Web アプリで条件付きアクセスが必要ですか?
* アプリは、ユーザーに再サインインさせることなく、(更新トークンを使用して) 有効期限切れのアクセス トークンに対処する必要がありますか?
サインインしているユーザーに関するカスタム認可ロジックまたは情報が必要ですか?
外部 ID プロバイダーまたはソーシャル ID プロバイダーからユーザーをサインインさせる必要がありますか?
ASP.NET Core アプリをお持ちですか?
シングル ページ アプリまたは静的 Web アプリをお持ちですか?
Visual Studio 統合が必要ですか?
ローカル開発時に IDE でシングル サインオンのサポートが必要ですか?

次の手順

組み込み App Service 認証の使用を開始するには、次を参照してください。

Microsoft Authentication Library (MSAL) の使用を開始するには、次を参照してください。

Microsoft.Identity.Web の使用を開始するには、次を参照してください。

App Service 組み込み認証および認可の詳細を確認してください