권한부여: 간단한 권한부여
- 본 번역문서의 원문은 Simple Authorization docs.microsoft.com 입니다.
- 본 번역문서는 ASP.NET Core 보안 : 간단한 권한부여 www.taeyo.net 에서도 함께 제공됩니다.
MVC에서 권한부여는 Authorize
어트리뷰트와 이 어트리뷰트가 제공해주는 다양한 매개변수들을 통해서 제어됩니다.
컨트롤러나 액션에 Authorize
어트리뷰트를 적용하면 인증된 사용자만 해당 컨트롤러와 액션에 접근할 수 있게 됩니다.
가령, 다음 코드는 인증된 사용자만 AccountController
에 접근할 수 있도록 제한합니다:
[Authorize]
public class AccountController : Controller
{
public ActionResult Login()
{
}
public ActionResult Logout()
{
}
}
만약 컨트롤러 전체가 아닌 특정 액션에만 권한부여를 설정하고 싶다면 해당 액션에만 Authorize
어트리뷰트를 적용하면 됩니다:
public class AccountController : Controller
{
public ActionResult Login()
{
}
[Authorize]
public ActionResult Logout()
{
}
}
이렇게 하면 인증된 사용자만 로그아웃 기능에 접근할 수 있습니다.
또는 AllowAnonymous
어트리뷰트를 사용해서 인증되지 않은 사용자도 개별 액션에 접근할 수 있도록 허용할 수도 있습니다.
이를테면:
[Authorize]
public class AccountController : Controller
{
[AllowAnonymous]
public ActionResult Login()
{
}
public ActionResult Logout()
{
}
}
이런 방식으로 어트리뷰트를 적용할 경우, 기본적으로는 인증된 사용자만 AccountController
에 접근할 수 있지만, 인증된 사용자인지 또는 인증되지 않은 사용자인지 여부에 관계없이, 즉 익명 상태와 무관하게 모든 사용자가 접근할 수 있도록 설정된 Login
액션은 예외로 간주됩니다.
경고
[AllowAnonymous]
어트리뷰트는 모든 권한부여 관련 구문을 우회하여 무시해버립니다.
그러므로 [AllowAnonymous]
어트리뷰트와 [Authorize]
어트리뷰트를 동시에 적용하면 결과적으로 [Authorize]
어트리뷰트는 항상 무시됩니다.
예를 들어, 특정 컨트롤러에 [AllowAnonymous]
어트리뷰트를 적용한 상태에서, 해당 컨트롤러나 컨트롤러 액션에 [Authorize]
어트리뷰트를 적용하면 [Authorize]
어트리뷰트는 모두 무시됩니다.
- 권한부여: 개요 2017-01-14 08:00
- 권한부여: 간단한 권한부여 2017-01-14 11:00
- 권한부여: 역할 기반 권한부여 2017-01-14 14:00
- 권한부여: 클레임 기반 권한부여 2017-01-15 08:00
- 권한부여: 사용자 지정 정책 기반 권한부여 2017-01-15 11:00
- 권한부여: 요구사항 처리기와 의존성 주입 2017-01-15 14:00
- 권한부여: 리소스 기반 권한부여 2017-01-16 08:00
- 권한부여: 뷰 기반 권한부여 2017-01-16 11:00
- 권한부여: 스키마별 신원 제한 2017-01-16 14:00
- 인증: ASP.NET Core Identity 살펴보기 2017-01-30 08:00
- 인증: Facebook, Google 및 기타 외부 공급자를 이용한 인증 활성화시키기 2017-02-13 08:00
- 인증: Facebook 인증 구성하기 2017-02-13 11:00
- 인증: Twitter 인증 구성하기 2017-02-20 08:00
- 인증: Google 인증 구성하기 2017-02-20 11:00
- 인증: Microsoft 계정 인증 구성하기 2017-02-20 14:00
- 인증: 계정 확인 및 비밀번호 복구 2017-03-06 08:00
- 인증: SMS를 이용한 2단계 인증 2017-03-13 08:00
- 인증: ASP.NET Core Identity 없이 Cookie 미들웨어 사용하기 2017-03-20 08:00
- 데이터 보호: 데이터 보호 개요 2017-03-27 08:00
- 데이터 보호: 데이터 보호 API 시작하기 2017-03-29 08:00
- 데이터 보호: 소비자 APIs 개요 2017-03-31 08:00
- 데이터 보호: 용도 문자열 2017-04-03 08:00
- 데이터 보호: ASP.NET Core의 용도 계층 구조 및 다중-테넌트(Multi-Tenancy) 2017-04-05 08:00
- 데이터 보호: 비밀번호 해싱 2017-04-07 08:00
- 데이터 보호: 보호된 페이로드의 수명 제한하기 2017-04-10 08:00
- 테이터 보호: 키가 취소된 페이로드의 보호 해제하기 2017-04-12 08:00
- 데이터 보호: 데이터 보호 구성하기 2017-04-14 08:00
- 데이터 보호: 키 관리 및 수명 기본 설정 2017-04-17 08:00
- 데이터 보호: 머신 수준 정책 2017-04-19 08:00
- 데이터 보호: 비-DI 인식 시나리오 2017-04-21 08:00
- 호환성: 응용 프로그램 간 인증 쿠키 공유하기 2017-05-12 08:00
- 호환성: ASP.NET의 <machineKey> 요소 대체하기 2017-05-16 08:00
- 교차 원본 요청 활성화시키기 (CORS) 2017-05-17 08:00
- ASP.NET Core 응용 프로그램에 SSL 적용하기 2017-05-18 08:00
- 개발 중 민감한 응용 프로그램 정보 안전하게 저장하기 2017-05-19 08:00