チュートリアル:認証に Microsoft ID プラットフォームを使用する Blazor Server アプリを作成する

このチュートリアルでは、Microsoft ID プラットフォームを使い、Microsoft Entra ID にアプリを登録することで、ユーザーのサインインを行い、Microsoft Graph からデータを取得する Blazor Server アプリを構築します。

Blazor WASM のクイックスタートも用意されています。

このチュートリアルでは、次の作業を行います。

  • 新しい Blazor Server アプリを作成します。(アプリが登録されている Microsoft Entra テナント内の) 単一の組織内のユーザーの認証には Microsoft Entra ID が使われるように構成されます
  • Microsoft.Identity.Web を使用して認証と承認の両方を処理する
  • 保護された Web API (Microsoft Graph) からデータを取得する

前提条件

.NET CLI を使用してアプリを作成する

mkdir <new-project-folder>
cd <new-project-folder>
dotnet new blazorserver --auth SingleOrg --calls-graph

Microsoft Identity App Sync .NET ツールをインストールする

dotnet tool install --global msidentity-app-sync

このツールを使うと、次のタスクを自動化できます。

  • Microsoft Entra ID でアプリケーションを登録する
    • 登録済みアプリケーションのシークレットを作成する
    • launchsettings.json に基づいてリダイレクト URI を登録する
  • プロジェクトでのユーザー シークレットの使用を初期化する
  • アプリケーション シークレットをユーザー シークレット ストレージに格納する
  • appsettings.json を client-id、tenant-id などを使用して更新します。

.NET Tools は、dotnet CLI コマンドの機能を拡張します。 詳細については、.NET ツールに関する記事を参照してください。

ユーザー シークレット ストレージの詳細については、「開発中のアプリ シークレットの安全なストレージ」を参照してください。

Microsoft Identity App Sync ツールを使用する

次のコマンドを実行して、アプリをテナントに登録し、アプリケーションの .NET 構成を更新します。 Azure アカウントに属するユーザー名/upn (たとえば、username@domain.com など ) と、Azure アカウントに関連付けられている Microsoft Entra ID のテナント ID またはドメイン名を指定します。

msidentity-app-sync --username <username/upn> --tenant-id <tenantID>

Note

  • 開発者ツールで 1 つのアカウントのみでサインインしている場合は、ユーザー名を指定する必要はありません。
  • アプリケーションを作成するテナントがホーム テナントである場合は、tenant-id を指定する必要はありません。

省略可能 - 開発 SSL 証明書を作成する

実行中のアプリケーションを参照するときに SSL エラーや警告を回避するために、macOS と Windows で以下を使って、.NET で使う自己署名 SSL 証明書を生成できます。

dotnet dev-certs https --trust

アプリを実行する

ご利用のターミナルで、次のコマンドを実行します。

dotnet run

コマンド ラインで出力された URL を使用して、実行中の Web アプリケーションを参照します。

次のステップ

次の複数パートのチュートリアル シリーズで、ユーザーをサインインさせる ASP.NET Core Web アプリをビルドして詳細を学習します。