본문 바로가기
728x90
반응형

전체 글303

ASP.NET Core] 개발환경에서 Secret Manager(secrets.json) 사용 appSetting.json에 암호 및 기타 중요한 데이터를 저장하지 말아야 하는 이유 database connection string, third party service credentials, encryption key등을 asp.net에서는 web.config파일에 asp.net core에서는 appSetting.json파일에 저장한다. 이 파일들은 프로젝트에 포함되어 있어, source control repository에 commit할때 업로드 되어, repository접근 권한이 있는 자는 누구나 접근이 가능해진다. 보안에 취약하다. Secret Manager 사용방법 Secret Manager는 secrets.json파일에 민감 정보를 저장한다. sercrets.json 파일을 추가하기 위해서.. 2022. 1. 18.
ASP.NET Core] Authorization Handler Authorization Handler Return context.Succeed() : Success context.Fail() : Failure Task.CompletedTask : Nothing Multiple Handler 하나라도 실패가 나면, 다른 handler가 성공해도 policy는 실패가 반환된다. 따라서, 다른 handler가 성공해도 policy 실패로 return해야 하는 경우에만 context.Fail() 함수를 호출한다. policy가 성공하려면, 하나 이상의 handler에서 꼭 성공이 반환되어야 하고 다른 handler에서 실패가 반환되면 안된다. 기본적으로, handler의 결과에 상관없이 모든 handler가 호출된다. 나머지 handler가 호출되는 걸 원치 않으면, 실패.. 2022. 1. 17.
ASP.NET Core] Custom Authorization Policy, Custom Authorization Requirement & Handler Custom Authorization Policy 다음과 같은 조건을 갖는 Policy를 만들어보자. Member of the Admin role AND have Edit Role claim with a value of true OR Member of the Super Admin role 다음의 Policy로는 내가 원하는 Policy를 만들 수 없다. 조건 사이에는 AND condition만 있다. builder.Services.AddAuthorization(options => { options.AddPolicy("EditRolePolicy", policy => policy .RequireRole("Admin") .RequireClaim("Edit Role", "true") .RequireRole("S.. 2022. 1. 17.
ASP.NET Core 6] Service - AddTransient, AddScoped, AddSingleton 차이점 출처 : https://www.c-sharpcorner.com/article/understanding-addtransient-vs-addscoped-vs-addsingleton-in-asp-net-core/ 아래 3 함수는 서비스의 lifetime을 지정한다. 1. AddTransient : instance 요청 시마다 new instance가 생성된다. stateless service에 적합하다. multi-threading 시나리오에 가장 적합하다. 2. AddScoped : 클라이언트 요청 당 한번 생성된다. 동일한 클라이언트에 대해 같은 instance를 공유하고 싶을때 적합하다. 3. AddSingleton : 처음 요청 시, 생성되고 이 후 요청 시, 동일한 instance를 사용한다. IoC.. 2022. 1. 17.
ASP.NET Core MVC 6] Authentication VS Authorization Authentication user가 누구인지 확인한다. Claim user에 대한 정보조각이다. claim type과 optional value로 이루어져있다. name-value pair로 정보를 저장한다. claim은 어떤 것도 될 수 있다. Name Claim, Email Claim, Role Claim, PhoneNumber Claim 등등... ClaimsIdentity ClaimsIdentity는 Claims의 collection이다. ClaimsPrincipal ClaimsIdentity의 collection이다. HttpContext object의 User property로부터 ClaimsPrincipal을 조회할 수 있다. Authentication Handlers 아래 3가지 동작을 .. 2022. 1. 14.
ASP.NET Core MVC 6] Identity 확장 Gender, City, Country와 같은 추가적인 User data를 저장하기 위해서, IdentityUser class의 확장이 필요하다. 1. IdentityUser를 확장하는, ApplicationUser를 추가하자. Models 폴더에 ApplicationUser.cs 파일 추가 using Microsoft.AspNetCore.Identity; namespace Employee.Models { public class ApplicationUser : IdentityUser { public string City { get; set; } } } 2. IdentityUser 참조를 모두 ApplicationUser로 변경한다. 3. ApplicationDbContext.cs에 ApplicationU.. 2022. 1. 13.
728x90
반응형