ASP.NET Core 권한 부여는 [Authorize] 특성 및 다양한 매개 변수를 사용하여 제어됩니다. 가장 기본적인 형식에서는 [Authorize] 특성을 Razor 구성 요소, 컨트롤러, 작업 또는 Razor 페이지에 적용하면 해당 구성 요소에 대한 access 인증된 사용자로 제한됩니다.
이 문서에서는 구성 요소 예제를 사용하고 BlazorRazor 권한 부여 시나리오에 중점을 Blazor 둡니다. Razor Pages 및 MVC 지침은 이 문서를 읽은 후 다음 리소스를 참조하세요.
[Authorize] 속성
Blazor 앱에서는 [Authorize] 구성 요소 파일()의 상단에 Razor을 지정합니다. 다음 예제에서는 인증된 사용자만 페이지를 access 수 있습니다.
@page "/"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
You can only see this if you're signed in.
중요합니다
Blazor 라우터를 통해 접근한 구성 요소에서만 [Authorize]을 사용하세요. 권한 부여는 라우팅의 일부로만 수행되고, 페이지에 렌더링된 자식 구성 요소에 대해서는 수행되지 ‘않습니다’. 페이지 내에서 특정 부분의 표시 권한을 부여하려면 AuthorizeView 구성 요소를 대신 사용합니다. 이 구성 요소는 ASP.NET Core Blazor 인증 및 권한 부여 설명되어 있습니다.
또한 가져오기 파일(_Imports.razor)을 사용하여 앱의 Razor 모든 구성 요소 Blazor 또는 폴더의 Razor 구성 요소 하위 집합에 특성을 적용할 수도 있습니다.[Authorize]
[Authorize] 특성에 대한 @attribute 지시문과 함께 Microsoft.AspNetCore.Authorization 네임스페이스에 대한 @using 지시문을 추가합니다:
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize]
이 특성은[Authorize] 역할 기반 또는 정책 기반 권한 부여도 지원합니다. 역할 기반 권한 부여의 경우 Roles 매개 변수를 사용합니다. 다음 예제에서 사용자는 Admin 또는 Superuser 역할에 있는 경우에만 페이지를 access 수 있습니다.
@page "/"
@attribute [Authorize(Roles = "Admin, Superuser")]
<p>You can only see this if you're in the 'Admin' or 'Superuser' role.</p>
정책 기반 권한 부여의 경우 매개 변수를 Policy 사용합니다. 다음 예제에서 사용자는 Over21 인증 정책 요구 사항을 충족하는 경우에만 페이지를 access 수 있습니다.
@page "/"
@attribute [Authorize(Policy = "Over21")]
<p>You can only see this if you satisfy the 'Over21' policy.</p>
Roles와 Policy 중 어느 것도 지정되지 않으면 [Authorize]는 기본 정책을 사용합니다.
- 인증된(로그인) 사용자에게 권한이 부여됩니다.
- 인증되지 않은(로그아웃) 사용자는 권한이 없습니다.
권한 부여 메타데이터가 없는 엔드포인트는 기본 정책을 사용하지 않습니다. 앱이 대체 정책을 구성하지 않는 한 이러한 엔드포인트에는 권한 부여가 필요하지 않습니다. 명명된 정책, 기본 정책 및 대체 정책을 비교하려면 ASP.NET Core 정책 기반 권한 부여를 참조하세요.
사용자에게 권한이 부여되지 않고 앱이 구성 요소로 Router 권한이 없는 콘텐츠를 사용자 지정하지 않으면 프레임워크에서 다음 대체 메시지를 자동으로 표시합니다.
Not authorized.
Blazor 인증 및 권한 부여에 대한 자세한 내용은 ASP.NET Core Blazor 인증 및 권한 부여 참조하세요.
[AllowAnonymous] 특성을 사용하여 인증되지 않은 사용자가 개별 작업에 access 수 있도록 합니다.
@using Microsoft.AspNetCore.Authorization
@attribute [AllowAnonymous]
대부분의 엔드포인트에 인증이 필요한 서버 쪽 앱의 경우 전역 사용자 인증 필요를 참조하세요.
추가 리소스
ASP.NET Core