Skip to content

Latest commit

 

History

History
171 lines (116 loc) · 6.98 KB

README.ko.md

File metadata and controls

171 lines (116 loc) · 6.98 KB

NuGet star GitHub stars version



너의 Star, Donate, Recomm. 가 MiniAuth를 더 좋게 만들 수 있어!

소개

"한 줄 코드"는 신/구 프로젝트에 대한 신원 관리 웹을 추가합니다.

Image 1 Image 2
Image 3 Image 4

특징

  • 호환성: .NET Identity 표준을 따르는 JWT, Cookie 및 Session을 기반으로 합니다.
  • 즉시 사용 가능: 손쉬운 통합, MiniAuth는 API, MVC, Razer Pages와 함께 작동합니다.
  • 멀티 플랫폼: 리눅스, macOS 환경을 지원합니다.
  • 다중 데이터베이스 지원: Identity EF Core 표준을 따르는 모든 데이터베이스와 호환됩니다.

설치

패키지를 설치하세요 NuGet:

dotnet add package MiniAuth
// or
NuGet\Install-Package MiniAuth

빠른 시

한줄의 코드를 추가해라 services.AddMiniAuth() Startup에, 그리고나서 프로젝트를 실행해 예:

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);

        builder.Services.AddMiniAuth();

        var app = builder.Build();
        app.Run();
    }
}

기본 관리자 계정은 [email protected] 이며 비밀번호는 E7c4f679-f379-42bf-b547-684d456bc37f(비밀번호 변경 remember)입니다. 관리자 페이지는 http(s)://yourhost/miniauth/index.html에서 접속할 수 있습니다.

참고: 이미 본인 인증이 있는 경우 아래 지침을 따르시기 바랍니다.

기존 Identity Setup

Add MiniAuth에 대해 autoUse를 해제하고 Use MiniAuth에서 컨텍스트, 사용자 및 사용 권한 인증으로 교체하여 자신의 인증 뒤에 배치합니다. 예:

public static void Main(string[] args)
{
    var builder = WebApplication.CreateBuilder(args);

    var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
    builder.Services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(connectionString));
    builder.Services.AddDatabaseDeveloperPageExceptionFilter();

    builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
        .AddRoles<IdentityRole>()
        .AddEntityFrameworkStores<ApplicationDbContext>();

    builder.Services.AddControllersWithViews();

    builder.Services.AddMiniAuth(autoUse: false); // <= ❗❗❗

    var app = builder.Build();

    app.UseMiniAuth<ApplicationDbContext, IdentityUser, IdentityRole>();  // <= ❗❗❗ 
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    app.MapRazorPages();

    app.Run();
}

주문 사항

Use MiniAuth를 라우팅 생성 후에 배치하십시오. 그렇지 않으면 시스템이 다음과 같은 권한 검사를 위한 라우팅 데이터를 얻을 수 없습니다:

app.UseRouting();
app.UseMiniAuth();

참고: 역할 규칙 추가

AddRoles<IdentityRole>(); 을 추가해주세요 그렇지 않으면 [Authorize(Roles = "YourRole")]가 작동하지 않습니다.

builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddRoles<IdentityRole>() // ❗❗❗ 
    .AddEntityFrameworkStores<ApplicationDbContext>();

MiniAuth 로그인 사용 안 함

자신만의 로그인 로직, 페이지, API만 사용하고 싶다면 로그인 경로를 커스터마이징하고 스위치를 끌 수 있습니다.

// before add service
MiniAuthOptions.LoginPath = "/Identity/Account/Login";
MiniAuthOptions.DisableMiniAuthLogin = true;

데이터베이스 변경

MiniAuth 시스템은 기본적으로 코드 설정 없이 SQLite를 사용합니다. 전환이 필요한 경우 app.Use MiniAuth에서 다른 데이터베이스 유형을 지정합니다.

구성 및 옵션

기본 모드

  • MiniAuth는 등록 및 암호 재설정과 같은 사용자 작업을 IT 관리자가 중앙에서 관리하는 기본 모드로 작동하므로 이러한 작업을 수행하려면 관리자 권한 계정이 필요합니다. Default Role = miniauth-admin.

로그인 및 사용자 유효성 검사

ApiController가 아닌 경우 로그인은 login.html 페이지(Headers["X-Requested-With"] == "XMLHtpRequest" 또는 ApiControllerAttribute로 리디렉션됩니다. ApiController는 기본적으로 로그인 페이지로 리디렉션하지 않고 401 상태 코드를 반환합니다.

분산 시스템

  • 데이터베이스 소스를 SQL Server, MySQL, PostgreSQL 등으로 전환해주세요.

사용자 정의 프론트엔드

  • 관리 백엔드 프론트엔드는 /src/Frontend_Identity에서 Vue3 + Vite를 사용하며, npm run build를 사용한 후 miniauth UI를 업데이트할 수 있습니다.
  • 로그인 페이지에 miniauth 기본값을 사용하지 않으려면 mvc에서 ID 스캐폴드 Login.cshtml을 사용하거나 miniauth 프론트엔드의 login.html, js, css를 변경할 수 있습니다.

릴리스 노트

업데이트 내용은 Release Notes를 참고하세요.

TODO

Link: MiniAuth.Identify project