ASP.NET Core Blazor Server 앱 보호
이 문서에서는 Blazor Server 앱을 ASP.NET Core 애플리케이션으로 보호하는 방법을 알아봅니다.
Blazor Server 앱은 ASP.NET Core 앱과 동일한 방식으로 보안이 구성됩니다. 자세한 내용은 ASP.NET Core 보안 주제에 있는 문서를 참조하세요. 이 개요의 항목은 Blazor Server에만 적용됩니다.
Blazor Server 프로젝트 템플릿
프로젝트를 만들 때 인증을 위해 Blazor Server 프로젝트 템플릿을 구성할 수 있습니다.
ASP.NET Core Blazor용 도구의 Visual Studio 지침에 따라 인증 메커니즘이 있는 새 Blazor Server 프로젝트를 만듭니다.
새 ASP.NET Core 웹 애플리케이션 만들기 대화 상자에서 Blazor Server 앱 템플릿을 선택한 후 인증에서 변경을 선택합니다.
다른 ASP.NET Core 프로젝트에 사용할 수 있는 것과 동일한 인증 메커니즘 세트를 제공하는 대화 상자가 열립니다.
- 인증 없음
- 개별 사용자 계정: 사용자 계정은 다음과 같이 저장될 수 있습니다.
- ASP.NET Core의 Identity 시스템을 사용하는 앱 내에 저장
- Azure AD B2C 사용
- 회사 또는 학교 계정
- Windows 인증
스캐폴드 Identity
Identity를 Blazor Server 프로젝트로 스캐폴딩하는 방법에 대한 자세한 내용은 ASP.NET Core 프로젝트에서 Identity 스캐폴드를 참조하세요.
외부 공급자의 추가 클레임 및 토큰
외부 공급자의 추가 클레임을 저장하려면 ASP.NET Core에서 외부 공급자의 추가 클레임 및 토큰 유지를 참조하세요.
Identity Server를 사용한 Azure App Service on Linux
Identity Server를 사용하여 Azure App Service on Linux에 배포할 때 발급자를 명시적으로 지정합니다. 자세한 내용은 ASP.NET Core의 단일 페이지 앱을 위한 인증 소개를 참조하세요.
인증 상태 변경 알림
예를 들어 사용자가 로그아웃했거나 다른 사용자가 해당 역할을 변경하여 기본 인증 상태 데이터가 변경되었음을 앱이 확인하면, 사용자 지정 AuthenticationStateProvider는 필요에 따라 AuthenticationStateProvider 기본 클래스에서 NotifyAuthenticationStateChanged 메서드를 호출할 수 있습니다. 그러면 인증 상태 데이터의 소비자(예: AuthorizeView)가 새 데이터를 사용하여 다시 렌더링하라는 알림을 받습니다.
사용자 지정 AuthenticationStateProvider를 구현합니다.
앱에 사용자 지정 공급자가 필요한 경우 AuthenticationStateProvider를 구현하고 GetAuthenticationStateAsync를 재정의합니다.
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Authorization;
public class CustomAuthStateProvider : AuthenticationStateProvider
{
public override Task<AuthenticationState> GetAuthenticationStateAsync()
{
var identity = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, "mrfibuli"),
}, "Fake authentication type");
var user = new ClaimsPrincipal(identity);
return Task.FromResult(new AuthenticationState(user));
}
}
CustomAuthStateProvider 서비스는 AddServerSideBlazor에 대한 호출 후에 Program.cs에서 등록됩니다.
using Microsoft.AspNetCore.Components.Authorization;
...
builder.Services.AddServerSideBlazor();
...
builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>();
모든 사용자는 앞에 나온 예제의 CustomAuthStateProvider를 사용하여 사용자 이름 mrfibuli로 인증되었습니다.
추가 리소스
- 빠른 시작: ASP.NET Core 웹앱에 Microsoft로 로그인 추가
- 빠른 시작: Microsoft ID 플랫폼을 사용하여 ASP.NET Core 웹 API 보호
- 프록시 서버 및 부하 분산 장치를 사용하도록 ASP.NET Core 구성: 다음에 대한 지침을 포함합니다.
- 전달된 헤더 미들웨어를 사용하여 프록시 서버와 내부 네트워크에서 HTTPS 체계 정보 유지.
- 수동 체계 구성, 올바른 요청 라우팅에 대한 요청 경로 변경, Linux 및 비 IIS 역방향 프록시에 대한 요청 체계 전달을 포함한 추가 시나리오 및 사용 사례.
Blazor Server 앱은 ASP.NET Core 앱과 동일한 방식으로 보안이 구성됩니다. 자세한 내용은 ASP.NET Core 보안 주제에 있는 문서를 참조하세요. 이 개요의 항목은 Blazor Server에만 적용됩니다.
Blazor Server 프로젝트 템플릿
프로젝트를 만들 때 인증을 위해 Blazor Server 프로젝트 템플릿을 구성할 수 있습니다.
ASP.NET Core Blazor용 도구의 Visual Studio 지침에 따라 인증 메커니즘이 있는 새 Blazor Server 프로젝트를 만듭니다.
새 ASP.NET Core 웹 애플리케이션 만들기 대화 상자에서 Blazor Server 앱 템플릿을 선택한 후 인증에서 변경을 선택합니다.
다른 ASP.NET Core 프로젝트에 사용할 수 있는 것과 동일한 인증 메커니즘 세트를 제공하는 대화 상자가 열립니다.
- 인증 없음
- 개별 사용자 계정: 사용자 계정은 다음과 같이 저장될 수 있습니다.
- ASP.NET Core의 Identity 시스템을 사용하는 앱 내에 저장
- Azure AD B2C 사용
- 회사 또는 학교 계정
- Windows 인증
스캐폴드 Identity
Blazor Server 프로젝트에 Identity를 스캐폴드합니다.
외부 공급자의 추가 클레임 및 토큰
외부 공급자의 추가 클레임을 저장하려면 ASP.NET Core에서 외부 공급자의 추가 클레임 및 토큰 유지를 참조하세요.
Identity Server를 사용한 Azure App Service on Linux
Identity Server를 사용하여 Azure App Service on Linux에 배포할 때 발급자를 명시적으로 지정합니다. 자세한 내용은 ASP.NET Core의 단일 페이지 앱을 위한 인증 소개를 참조하세요.
인증 상태 변경 알림
예를 들어 사용자가 로그아웃했거나 다른 사용자가 해당 역할을 변경하여 기본 인증 상태 데이터가 변경되었음을 앱이 확인하면, 사용자 지정 AuthenticationStateProvider는 필요에 따라 AuthenticationStateProvider 기본 클래스에서 NotifyAuthenticationStateChanged 메서드를 호출할 수 있습니다. 그러면 인증 상태 데이터의 소비자(예: AuthorizeView)가 새 데이터를 사용하여 다시 렌더링하라는 알림을 받습니다.
사용자 지정 AuthenticationStateProvider를 구현합니다.
앱에 사용자 지정 공급자가 필요한 경우 AuthenticationStateProvider를 구현하고 GetAuthenticationStateAsync를 재정의합니다.
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Authorization;
public class CustomAuthStateProvider : AuthenticationStateProvider
{
public override Task<AuthenticationState> GetAuthenticationStateAsync()
{
var identity = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, "mrfibuli"),
}, "Fake authentication type");
var user = new ClaimsPrincipal(identity);
return Task.FromResult(new AuthenticationState(user));
}
}
CustomAuthStateProvider 서비스는 AddServerSideBlazor에 대한 호출 후에 Startup.ConfigureServices에서 등록됩니다.
using Microsoft.AspNetCore.Components.Authorization;
...
services.AddServerSideBlazor();
...
services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>();
모든 사용자는 앞에 나온 예제의 CustomAuthStateProvider를 사용하여 사용자 이름 mrfibuli로 인증되었습니다.
추가 리소스
- 빠른 시작: ASP.NET Core 웹앱에 Microsoft로 로그인 추가
- 빠른 시작: Microsoft ID 플랫폼을 사용하여 ASP.NET Core 웹 API 보호
- 프록시 서버 및 부하 분산 장치를 사용하도록 ASP.NET Core 구성: 다음에 대한 지침을 포함합니다.
- 전달된 헤더 미들웨어를 사용하여 프록시 서버와 내부 네트워크에서 HTTPS 체계 정보 유지.
- 수동 체계 구성, 올바른 요청 라우팅에 대한 요청 경로 변경, Linux 및 비 IIS 역방향 프록시에 대한 요청 체계 전달을 포함한 추가 시나리오 및 사용 사례.
Blazor Server 앱은 ASP.NET Core 앱과 동일한 방식으로 보안이 구성됩니다. 자세한 내용은 ASP.NET Core 보안 주제에 있는 문서를 참조하세요. 이 개요의 항목은 Blazor Server에만 적용됩니다.
Blazor Server 프로젝트 템플릿
프로젝트를 만들 때 인증을 위해 Blazor Server 프로젝트 템플릿을 구성할 수 있습니다.
ASP.NET Core Blazor용 도구의 Visual Studio 지침에 따라 인증 메커니즘이 있는 새 Blazor Server 프로젝트를 만듭니다.
새 ASP.NET Core 웹 애플리케이션 만들기 대화 상자에서 Blazor Server 앱 템플릿을 선택한 후 인증에서 변경을 선택합니다.
다른 ASP.NET Core 프로젝트에 사용할 수 있는 것과 동일한 인증 메커니즘 세트를 제공하는 대화 상자가 열립니다.
- 인증 없음
- 개별 사용자 계정: 사용자 계정은 다음과 같이 저장될 수 있습니다.
- ASP.NET Core의 Identity 시스템을 사용하는 앱 내에 저장
- Azure AD B2C 사용
- 회사 또는 학교 계정
- Windows 인증
스캐폴드 Identity
Blazor Server 프로젝트에 Identity를 스캐폴드합니다.
외부 공급자의 추가 클레임 및 토큰
외부 공급자의 추가 클레임을 저장하려면 ASP.NET Core에서 외부 공급자의 추가 클레임 및 토큰 유지를 참조하세요.
Identity Server를 사용한 Azure App Service on Linux
Identity Server를 사용하여 Azure App Service on Linux에 배포할 때 발급자를 명시적으로 지정합니다. 자세한 내용은 ASP.NET Core의 단일 페이지 앱을 위한 인증 소개를 참조하세요.
인증 상태 변경 알림
예를 들어 사용자가 로그아웃했거나 다른 사용자가 해당 역할을 변경하여 기본 인증 상태 데이터가 변경되었음을 앱이 확인하면, 사용자 지정 AuthenticationStateProvider는 필요에 따라 AuthenticationStateProvider 기본 클래스에서 NotifyAuthenticationStateChanged 메서드를 호출할 수 있습니다. 그러면 인증 상태 데이터의 소비자(예: AuthorizeView)가 새 데이터를 사용하여 다시 렌더링하라는 알림을 받습니다.
사용자 지정 AuthenticationStateProvider를 구현합니다.
앱에 사용자 지정 공급자가 필요한 경우 AuthenticationStateProvider를 구현하고 GetAuthenticationStateAsync를 재정의합니다.
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Authorization;
public class CustomAuthStateProvider : AuthenticationStateProvider
{
public override Task<AuthenticationState> GetAuthenticationStateAsync()
{
var identity = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, "mrfibuli"),
}, "Fake authentication type");
var user = new ClaimsPrincipal(identity);
return Task.FromResult(new AuthenticationState(user));
}
}
CustomAuthStateProvider 서비스는 AddServerSideBlazor에 대한 호출 후에 Startup.ConfigureServices에서 등록됩니다.
using Microsoft.AspNetCore.Components.Authorization;
...
services.AddServerSideBlazor();
...
services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>();
모든 사용자는 앞에 나온 예제의 CustomAuthStateProvider를 사용하여 사용자 이름 mrfibuli로 인증되었습니다.
추가 리소스
- 빠른 시작: ASP.NET Core 웹앱에 Microsoft로 로그인 추가
- 빠른 시작: Microsoft ID 플랫폼을 사용하여 ASP.NET Core 웹 API 보호
- 프록시 서버 및 부하 분산 장치를 사용하도록 ASP.NET Core 구성: 다음에 대한 지침을 포함합니다.
- 전달된 헤더 미들웨어를 사용하여 프록시 서버와 내부 네트워크에서 HTTPS 체계 정보 유지.
- 수동 체계 구성, 올바른 요청 라우팅에 대한 요청 경로 변경, Linux 및 비 IIS 역방향 프록시에 대한 요청 체계 전달을 포함한 추가 시나리오 및 사용 사례.