クイックスタート: シングルページ アプリ (SPA) でユーザーをサインインし、Blazor WebAssembly を使用して Microsoft Graph API を呼び出す
このクイックスタートでは、サンプルの Blazor WebAssembly (WASM) シングルページ アプリ (SPA) を使って、Proof Key for Code Exchange (PKCE) で認可コード フローを使ってユーザーをサインインさせ、Microsoft Graph API を呼び出す方法を紹介します。 このサンプルでは、Microsoft.Authentication.WebAssembly.MSAL を使用して認証を処理します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 まだお持ちでない場合は、無料のアカウント*を作成してください。
- .NET SDK
- Visual Studio 2022 または Visual Studio Code
アプリケーションとレコードの識別子を登録する
登録を完了するには、アプリケーションに名前を指定し、サポートされているアカウントの種類を指定して、リダイレクト URI を追加します。 登録すると、アプリケーションの [概要] ペインに、アプリケーションのソース コードに必要な識別子が表示されます。
Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合は、上部のメニューの [設定] アイコン を使い、[ディレクトリとサブスクリプション] メニューからアプリケーションを登録するテナントに切り替えます。
[ID]>[アプリケーション]>[アプリ登録] の順に進み、[新規登録] を選択します。
アプリケーションの名前 (identity-client-spa など) を入力します。
[サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。 さまざまなアカウントの種類の詳細については、[選択に関するヘルプ] オプションを選択します。
[登録] を選択します。
登録が完了すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。
Note
サポートされているアカウントの種類は、「アプリケーションによってサポートされるアカウントを変更する」を参照して変更することができます。
プラットフォーム リダイレクト URI を追加する
アプリの登録に対してアプリの種類を指定するには、次の手順に従います。
- [管理] で、 [認証] を選択します。
- [プラットフォーム構成] ページで、[プラットフォームの追加] を選択し、[SPA] オプションを選択します。
- [リダイレクト URI] には、「
http://localhost:5000/authentication/login-callback
」と入力します。 - [構成] を選択して変更を保存します。
サンプル アプリケーションをクローンまたはダウンロードする
サンプル アプリケーションを取得するには、GitHub から複製するか、.zip ファイルとしてダウンロードします。
サンプルをクローンするには、コマンド プロンプトを開き、プロジェクトを作成する場所に移動し、次のコマンドを入力します。
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet
.zip ファイルをダウンロードします。 名前の長さが 260 文字未満のファイル パスに抽出します。
プロジェクトを構成する
IDE で、サンプルが含まれているプロジェクト フォルダー ms-identity-docs-code-dotnet/spa-blazor-wasm を開きます。
wwwroot/appsettings.json を開き、管理センターで前に記録した情報で次の値を更新します。
{ "AzureAd": { "Authority": "https://login.microsoftonline.com/<Enter the tenant ID obtained from the Microsoft Entra admin center>", "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center", "ValidateAuthority": true } }
Authority
- 機関は、MSAL がトークンを要求できるディレクトリを示す URL です。 Enter_the_Tenant_Info_Here を、先ほど記録したディレクトリ (テナント) ID の値に置き換えます。ClientId
- クライアントとも呼ばれる、アプリケーションの識別子。 引用符で囲まれた文字を先ほど記録した アプリケーション (クライアント) ID の値に置き換えます。
アプリケーションを実行し、サインインします
.NET を使用して Web サーバーでプロジェクトを実行します。
サーバーを起動するために、プロジェクト ディレクトリ内から次のコマンドを実行します。
dotnet run
ターミナルに表示される
http
の URL (例:http://localhost:5000
) をコピーし、ブラウザーに貼り付けます。 ブラウザーのプライベート セッションまたはシークレット セッションを使用することを推奨します。手順に従って必要な詳細情報を入力し、Microsoft アカウントでサインインしてください。 ワンタイム パスコードを送信できるように、メール アドレスが要求されます。 プロンプトが表示されたら、パスコードを入力します。
アプリケーションは、アクセス権を付与したデータへのアクセスを維持し、サインインしてプロファイルを読み取るアクセス許可を要求します。 [Accept](承認) を選択します。 次のスクリーンショットは、アプリケーションにサインインし、Microsoft Graph API からプロファイルの詳細にアクセスしたことを示しています。
アプリケーションからサインアウトする
- ページの右上隅にある [サインアウト] ボタンを見つけて選択してください。
- サインアウト元のアカウントを選択するように求められます。 サインインに使用したアカウントを選択します。
サインアウトしたことを示すメッセージが表示されます。ブラウザー ウィンドウを閉じます。
関連項目
クイックスタート: Microsoft ID プラットフォームを使用して ASP.NET Core Web API を保護する
ゼロからの React SPA の構築についての詳細は次のシリーズ - 「チュートリアル: ユーザーのサインインと Microsoft Graph の呼び出し」を参照してください