クイック スタート:ASP.NET Core Web アプリに Microsoft サインインを追加する

ようこそ。 ご要望のページを表示できません。 問題の修正に取り組んでいますが、次のリンクから目的の記事にアクセスできるかお試しください。

クイックスタート: ユーザーのサインイン処理がある ASP.NET Core Web アプリ

ご不便をおかけして申し訳ありませんが、問題が解決するまで今しばらくお待ちください。

このクイックスタートでは、ASP.NET Core Web アプリで Azure Active Directory (Azure AD) 組織のユーザーをサインインする方法を示すコード サンプルをダウンロードして実行します。

手順 1:Azure portal でのアプリケーションの構成

このクイックスタートのコード サンプルを動作させるには、次のことを行います。

  • [リダイレクト URI] に「 https://localhost:44321/ 」および「 https://localhost:44321/signin-oidc 」と入力します。
  • [フロントチャネルのログアウト URL] に「https://localhost:44321/signout-oidc」と入力します。

要求の ID トークンが承認エンドポイントによって発行されます。

Already configured アプリケーションはこれらの属性で構成されています。

手順 2:ASP.NET Core プロジェクトをダウンロードする

プロジェクトを実行します。

ヒント

Windows におけるパスの長さの制限に起因したエラーを防ぐため、ドライブのルートに近いディレクトリをアーカイブの展開先またはリポジトリのクローン先とすることをお勧めします。

手順 3:アプリが構成され、実行準備ができる

アプリのプロパティの値を使用してプロジェクトを構成したら、実行する準備は完了です。

注意

Enter_the_Supported_Account_Info_Here

詳細情報

このセクションでは、ユーザーをサインインさせるために必要なコードの概要を示します。 この概要は、コードの働きや主な引数、また既存の ASP.NET Core アプリケーションにサインインを追加する方法を理解するうえで役立ちます。

このサンプルのしくみ

Diagram of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

スタートアップ クラス

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 を使用してユーザーのサインインを処理する。