クイック スタート:ASP.NET Core Web アプリに Microsoft サインインを追加する
ようこそ。 ご要望のページを表示できません。 問題の修正に取り組んでいますが、次のリンクから目的の記事にアクセスできるかお試しください。
ご不便をおかけして申し訳ありませんが、問題が解決するまで今しばらくお待ちください。
このクイックスタートでは、ASP.NET Core Web アプリで Microsoft Entra 組織のユーザーをサインインする方法を示すコード サンプルをダウンロードして実行します。
手順 1:Azure portal でのアプリケーションの構成
このクイックスタートのコード サンプルを動作させるには、次のことを行います。
- [リダイレクト URI] に「 https://localhost:44321/ 」および「 https://localhost:44321/signin-oidc 」と入力します。
- [フロントチャネルのログアウト URL] に「https://localhost:44321/signout-oidc」と入力します。
要求の ID トークンが承認エンドポイントによって発行されます。
アプリケーションはこれらの属性で構成されています。
手順 2:ASP.NET Core プロジェクトをダウンロードする
プロジェクトを実行します。
ヒント
Windows におけるパスの長さの制限に起因したエラーを防ぐため、ドライブのルートに近いディレクトリをアーカイブの展開先またはリポジトリのクローン先とすることをお勧めします。
手順 3:アプリが構成され、実行準備ができる
アプリのプロパティの値を使用してプロジェクトを構成したら、実行する準備は完了です。
注意
Enter_the_Supported_Account_Info_Here
詳細情報
このセクションでは、ユーザーをサインインさせるために必要なコードの概要を示します。 この概要は、コードの働きや主な引数、また既存の ASP.NET Core アプリケーションにサインインを追加する方法を理解するうえで役立ちます。
このサンプルのしくみ
スタートアップ クラス
Microsoft.AspNetCore.Authentication ミドルウェアは、ホスティング プロセスの起動時に実行される Startup
クラスを使用します。
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
services.AddRazorPages()
.AddMicrosoftIdentityUI();
}
AddAuthentication()
メソッドは、Cookie ベースの認証を追加するようサービスを構成します。 この認証は、ブラウザーのシナリオで使用されるほか、チャレンジを OpenID Connect に設定する際に使用されます。
.AddMicrosoftIdentityWebApp
を含む行によって、Microsoft ID プラットフォーム認証がアプリケーションに追加されます。 その後、appsettings.json 構成ファイルの AzureAD
セクションにある次の情報に基づいてユーザーのサインインを処理するように構成されます。
appsettings.json のキー | 説明 |
---|---|
ClientId |
Azure portal に登録されているアプリケーションのアプリケーション (クライアント) ID。 |
Instance |
ユーザーが認証するためのセキュリティ トークン サービス (STS) エンドポイント。 通常、この値は、Azure パブリック クラウドを示す https://login.microsoftonline.com/ です。 |
TenantId |
テナントの名前またはテナント ID (GUID)。職場または学校アカウントあるいは Microsoft 個人アカウントを使用してユーザーをサインインする場合は common 。 |
Configure()
メソッドには、app.UseAuthentication()
と app.UseAuthorization()
という 2 つの重要なメソッドが含まれており、それらの名前付き機能を有効にします。 また、Configure()
メソッドで、少なくとも 1 つの endpoints.MapControllerRoute()
呼び出し (または endpoints.MapControllers()
呼び出し) に、Microsoft Identity Web のルートを登録する必要があります。
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
コントローラーまたはメソッドを保護するための属性
[Authorize]
属性を使用して、コントローラーまたはコントローラーのメソッドを保護できます。 この属性は、認証されたユーザーのみを許可することで、コントローラーまたはメソッドへのアクセスを制限します。 ユーザーが認証されていない場合、コントローラーにアクセスするための認証チャレンジを開始することができます。
ヘルプとサポート
サポートが必要な場合、問題をレポートする場合、またはサポート オプションについて知りたい場合は、開発者向けのヘルプとサポートに関するページを参照してください。
次のステップ
この ASP.NET Core チュートリアルを含む GitHub リポジトリには、次の方法を示す手順とその他のコード サンプルが含まれています。
- 新しい ASP.NET Core Web アプリに認証を追加する。
- Microsoft Graph、他の Microsoft API、またはユーザー独自の Web API を呼び出す。
- 承認を追加する。
- 国内クラウドで、またはソーシャル ID を使用してユーザーのサインインを処理する。