ASP . NET認証を追加します.NETコアMVCアプリケーション



あなたのASPに認証を加える方法を学んでください.NETコアMVCアプリケーション.

ASP .NETコアMVCはWebアプリケーションを構築するための一般的なフレームワークです.ネット有名に使うModel-View-Controller design pattern , これは、アプリケーションのUIの懸念の分離を達成するのに役立ちます.この記事では、ASP . NETで認証を統合する方法を学びます.NETコアMVCアプリケーション.NETコア認証SDK .

サンプルアプリケーション
認証を追加するには、既存のASPを使用します.NET Core MVCアプリケーション.

必要条件
開始する前に、確認してください.NET 6 SDK あなたのマシンにインストールされます.実際には、変更するアプリケーションは、C≧10のいくつかの機能を使用します.得るa quick overview of what's new with .NET 6, check out this article .
また、この記事は.NET CLIアプリケーションを構築して実行するには、Visual Studio 2022を使用することができます.

サンプルアプリケーションの取得と実行
ターミナルウィンドウで次のコマンドを実行してサンプルアプリケーションを取得できます.
git clone -b starter --single-branch https://github.com/auth0-blog/acme-aspnet-mvc.git
したら、それをダウンロードして移動するacme-aspnet-mvc 次のコマンドを入力してアプリケーションを起動します
dotnet watch
このコマンドはサンプルアプリケーションを実行し、コードへの変更を待機します.アプリケーションコードを変更すると、自動的に再構築されます.

Note that some specific changes to your code, known as rude edits, may require restarting your application. Read this to learn more.


さて、ブラウザをポイント https://localhost:7095 . 次のページを取得します.

これは架空の会社のホームページですACME Corporation .
ヘッダーのカタログリンクをクリックすると、次のように表示されます.

実際、今すぐ購入!ボタンが動きません.このページは、ユーザーが保護されることを期待しているページのプレースホルダです.言い換えると、認証されたユーザーだけがカタログページにアクセスする必要があります.これは次のいくつかのセクションで実装するものです.

Auth 0で登録する
変更を加える前に、アプリケーションをAuth 0で登録する必要があります.もちろん、Auth 0アカウントが必要です.あなたがまだそれを持っていないならば、あなたはそうすることができますsign up for a free one .
ダッシュボードに移動しますApplications section 次の手順に従います.
  • 「アプリケーションを作成」をクリックします.
  • お使いのアプリケーション(たとえば、Ame Webアプリケーション)に優しい名前を付け、アプリケーションの種類として通常のWebアプリケーションを選択します.
  • 最後に、作成ボタンをクリックします.
  • これらのステップは、あなたのASPを意識してAuthor 0を作ります.NETコアMVCアプリケーションを使用すると、アクセスを制御できるようになります.
    アプリケーションが作成された後、[設定]タブに移動し、あなたのAuth 0ドメインとクライアントIDの注意を取りますhttps://localhost:7095/callback を返します.https://localhost:7095/ を返します.
    最初の値は、ユーザ認証後にコールするURLを指定します.2番目の値は、ユーザが自分のログアウト後にどのURLをリダイレクトするかを指定します.
    ボタンをクリックして適用します.
    さて、サンプルアプリケーションプロジェクトのルートフォルダに戻ると、appsettings.json 設定ファイルを置き換えます.
    // appsettings.json
    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*",
      "Auth0": {
        "Domain": "YOUR_DOMAIN",
        "ClientId": "YOUR_CLIENT_ID"
      }
    }
    
    プレースホルダを置き換えるYOUR_DOMAIN and YOUR_CLIENT_ID それぞれの値をAuth 0ダッシュボードから取得します.

    認証の追加
    この時点で、アプリケーションをAuthor 0に接続するための基本設定が適切です.認証を追加するには、アプリケーションにいくつかの変更を適用し、それらの設定を使用する必要があります.一度に一歩一歩しましょう.

    SDKをインストールする
    最初のステップとしてインストールAuth0 ASP.NET Core Authentication SDK 次のコマンドをターミナルウィンドウで実行します.
    dotnet add package Auth0.AspNetCore.Authentication
    
    AOR 0 ASPネットコアSDKを簡単に統合することができますOpenID Connect -すべての低レベルの詳細を扱うことなく、あなたのアプリケーションの認証.
    あなたがもう少し学びたいならば、このブログ柱はあなたを提供しますan overview of the Auth0 ASP.NET Core SDK .

    認証の設定
    さて、認証をサポートするアプリケーションコードを変更しましょう.開けるProgram.cs ファイルを次のように変更します.
    // Program.cs
    
    using Auth0.AspNetCore.Authentication; // 👈 new code
    
    var builder = WebApplication.CreateBuilder(args);
    
    // 👇 new code
    builder.Services
        .AddAuth0WebAppAuthentication(options => {
          options.Domain = builder.Configuration["Auth0:Domain"];
          options.ClientId = builder.Configuration["Auth0:ClientId"];
        });
    // 👆 new code
    
    // Add services to the container.
    builder.Services.AddControllersWithViews();
    
    var app = builder.Build();
    
    // Configure the HTTP request pipeline.
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }
    
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    
    app.UseRouting();
    
    app.UseAuthentication(); // 👈 new code
    app.UseAuthorization();
    
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
    app.Run();
    
    強調表示されたコードに従って、Auth0.AspNetCore.Authentication ファイルの先頭の名前空間.それから、あなたはAddAuth0WebAppAuthentication() メソッドとしてAuth 0ドメインとクライアントIDを指定します.最後に、あなたはUseAuthentication() 認証ミドルウェアを有効にする方法
    これらの変更は、Auth 0経由で認証をサポートするための基礎となる.
    Read more...