クイック スタート: ASP.NET Core Web アプリからユーザーのサインインと Microsoft Graph API の呼び出しを行う
このクイックスタートでは、ASP.NET Core Web アプリのサンプルを使用して、承認コード フローを使用してユーザーをサインインさせ、Microsoft Graph API を呼び出す方法を示します。 このサンプルでは、.NET 用 Microsoft Authentication Library と Microsoft Identity Web を使用して認証を処理します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 まだお持ちでない場合は、無料のアカウント*を作成してください。
- .NET 6.0 SDK の最小要件
- Visual Studio 2022 または Visual Studio Code
アプリケーションとレコードの識別子を登録する
登録を完了するには、アプリケーションに名前を指定し、サポートされているアカウントの種類を指定します。 登録すると、アプリケーションの [概要] ペインに、アプリケーションのソース コードに必要な識別子が表示されます。
Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合は、上部のメニューの [設定] アイコン を使い、[ディレクトリとサブスクリプション] メニューからアプリケーションを登録するテナントに切り替えます。
[ID]>[アプリケーション]>[アプリ登録] の順に進み、[新規登録] を選択します。
アプリケーションの[名前] (identity-client-web-app など) を入力します。
[サポートされているアカウントの種類] で、 [この組織のディレクトリ内のアカウントのみ] を選択します。 さまざまなアカウントの種類の詳細については、[選択に関するヘルプ] オプションを選択します。
[登録] を選択します。
登録が完了すると、アプリケーションの [概要] ペインが表示されます。 アプリケーションのソース コードで使用するディレクトリ (テナント) ID とアプリケーション (クライアント) ID を記録します。
Note
サポートされているアカウントの種類は、「アプリケーションによってサポートされるアカウントを変更する」を参照して変更することができます。
プラットフォーム リダイレクト URI を追加する
アプリの登録に対してアプリの種類を指定するには、次の手順に従います。
- [管理] で、 [認証] を選択します。
- [プラットフォーム構成] で、[プラットフォームの追加] を選択し、[Web] を選択 します。
- [リダイレクト URI] には、「
https://localhost:5001/signin-oidc
」と入力します。 - [フロントチャネル ログアウト URL] で、サインアウト用に「
https://localhost:5001/signout-callback-oidc
」と入力します。 - [構成] を選択して変更を保存します。
サンプル アプリケーションをクローンまたはダウンロードする
サンプル アプリケーションを取得するには、GitHub から複製するか、.zip ファイルとしてダウンロードします。
サンプルをクローンするには、コマンド プロンプトを開き、プロジェクトを作成する場所に移動し、次のコマンドを入力します。
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
.zip ファイルをダウンロードします。 名前の長さが 260 文字未満のファイル パスに抽出します。
自己署名証明書を作成してアップロードする
ターミナルを使用して、次のコマンドを使用して、プロジェクト ディレクトリに自己署名証明書を作成します。
cd ms-identity-docs-code-dotnet\web-app-aspnet\ dotnet dev-certs https -ep ./certificate.crt --trust
Microsoft Entra 管理センターに戻り、[管理] で [証明書とシークレット]>[証明書のアップロード] の順に選択します。
[証明書 (0)] タブを選択し、[証明書のアップロード] を選択します。
[証明書のアップロード] ウィンドウが表示されます。 アイコンを使用して、前の手順で作成した証明書ファイルに移動し、[開く] を選択します。
証明書の説明 (例: aspnet-web-app の証明書) を入力し、[追加] を選択します。
次の手順で使用する [サムプリント] の値を記録します。
プロジェクトを構成する
IDE で、サンプルを含むプロジェクト フォルダー ms-identity-docs-code-dotnet\web-app-aspnet を開きます。
appsettings.json を開き、ファイルの内容を次のスニペットに置き換えます。
{ "AzureAd": { "Instance": "https://login.microsoftonline.com/", "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center", "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center", "ClientCertificates": [ { "SourceType": "StoreWithThumbprint", "CertificateStorePath": "CurrentUser/My", "CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center" } ], "CallbackPath": "/signin-oidc" }, "DownstreamApi": { "BaseUrl": "https://graph.microsoft.com/v1.0/", "RelativePath": "me", "Scopes": [ "user.read" ] }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
TenantId
- アプリケーションが登録されているテナントの識別子。 引用符で囲まれた文字を、登録したアプリケーションの概要ページから先ほど記録したDirectory (tenant) ID
に置き換えます。ClientId
- クライアントとも呼ばれる、アプリケーションの識別子。 引用符で囲まれた文字を、登録したアプリケーションの概要ページから先ほど記録したApplication (client) ID
の値に置き換えます。ClientCertificates
- 自己署名証明書は、アプリケーションでの認証に使用されます。CertificateThumbprint
のテキストを、以前に記録した証明書のサムプリントに置き換えます。
アプリケーションを実行し、サインインします
プロジェクト ディレクトリで、ターミナルを使用して次のコマンドを入力します。
dotnet run
ターミナルに表示される
https
の URL (例:https://localhost:5001
) をコピーし、ブラウザーに貼り付けます。 ブラウザーのプライベート セッションまたはシークレット セッションを使用することを推奨します。手順に従って必要な詳細情報を入力し、Microsoft アカウントでサインインしてください。 ワンタイム パスコードを送信できるように、メール アドレスを提供するように要求されます。 プロンプトが表示されたら、パスコードを入力します。
アプリケーションから、アクセス権を付与したデータへのアクセスを維持し、サインインしてプロファイルを読み取るためのアクセス許可を要求されます。 [Accept](承認) を選択します。
次のスクリーンショットは、アプリケーションにサインインし、Microsoft Graph API からプロファイルの詳細にアクセスしたことを示しています。
アプリケーションからサインアウトする
- ページの右上隅にある [サインアウト] リンクを選択します。
- サインアウトするアカウントを選択するように要求されます。 サインインに使用したアカウントを選択します。
- サインアウトしたことを示すメッセージが表示されます。ブラウザー ウィンドウを閉じます。
関連するコンテンツ
- シリーズの「チュートリアル: Microsoft ID プラットフォームにアプリケーションを登録する」を使用して、この ASP.NET Web アプリをビルドして学習します。
- クイックスタート: Microsoft ID プラットフォームを使用して ASP.NET Core Web API を保護する
- クイック スタート: ASP.NET Web アプリを Azure App Service にデプロイする