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 프로젝트에 사용할 수 있는 것과 동일한 인증 메커니즘 세트를 제공하는 대화 상자가 열립니다.

  • 인증 없음
  • 개별 사용자 계정: 사용자 계정은 다음과 같이 저장될 수 있습니다.
  • 회사 또는 학교 계정
  • 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로 인증되었습니다.

추가 리소스

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 프로젝트에 사용할 수 있는 것과 동일한 인증 메커니즘 세트를 제공하는 대화 상자가 열립니다.

  • 인증 없음
  • 개별 사용자 계정: 사용자 계정은 다음과 같이 저장될 수 있습니다.
  • 회사 또는 학교 계정
  • 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로 인증되었습니다.

추가 리소스

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 프로젝트에 사용할 수 있는 것과 동일한 인증 메커니즘 세트를 제공하는 대화 상자가 열립니다.

  • 인증 없음
  • 개별 사용자 계정: 사용자 계정은 다음과 같이 저장될 수 있습니다.
  • 회사 또는 학교 계정
  • 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로 인증되었습니다.

추가 리소스