ASP.NET Core에서 TOTP 인증 앱을 위한 QR 코드 생성 활성화

  • 3 minutes to read

이 가이드는 VisualAcademy라는 이름의 ASP.NET Core 프로젝트를 만들고, TOTP 인증 앱을 위한 QR 코드 생성을 활성화하는 단계별 절차를 안내합니다. 이는 사용자가 2단계 인증(2FA)을 보다 쉽게 설정할 수 있게 도와줍니다.

NOTE

TOTP 인증은 시간 기반 일회용 비밀번호 알고리즘을 사용하여, 짧은 시간 동안만 유효한 일회성 코드를 생성함으로써 사용자의 아이덴티티를 보안적으로 확인하는 방법입니다.

1단계: VisualAcademy 프로젝트 생성

  1. Visual Studio를 열고 "새 프로젝트 만들기"를 선택합니다.
  2. "ASP.NET Core 웹 애플리케이션"을 찾아 선택한 후 "다음"을 클릭합니다.
  3. 프로젝트 이름을 VisualAcademy로 설정하고 원하는 위치에 프로젝트를 생성합니다.
  4. "만들기"를 클릭하여 새 프로젝트를 생성합니다.

2단계: Identity 스캐폴딩 추가

  1. 프로젝트에 마우스 오른쪽 버튼을 클릭하고 "스캐폴드된 항목 추가"를 선택합니다.
  2. "Identity 추가"를 선택하고 "추가"를 클릭합니다.
  3. 적절한 옵션을 선택하고 /Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml를 포함하도록 합니다.
  4. "추가"를 클릭하여 Identity 스캐폴딩을 프로젝트에 추가합니다.

3단계: QR 코드 라이브러리 다운로드

  1. qrcode.js JavaScript 라이브러리를 방문합니다.
  2. qrcode.js를 다운로드하여 프로젝트의 wwwroot/lib 폴더에 저장합니다.

4단계: QR 코드 생성 스크립트 추가

  1. wwwroot/js 폴더에 qr.js라는 새 JavaScript 파일을 생성합니다.

  2. 다음 스크립트를 qr.js 파일에 추가합니다:

    window.addEventListener("load", () => {
      const uri = document.getElementById("qrCodeData").getAttribute('data-url');
      new QRCode(document.getElementById("qrCode"),
        {
          text: uri,
          width: 150,
          height: 150
        });
    });
    

5단계: EnableAuthenticator 페이지 업데이트

  1. /Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml 파일을 엽니다.

  2. 파일 끝에 있는 Scripts 섹션을 다음과 같이 업데이트합니다:

    @section Scripts {
        @await Html.PartialAsync("_ValidationScriptsPartial")
    
        <script type="text/javascript" src="~/lib/qrcode.js"></script>
        <script type="text/javascript" src="~/js/qr.js"></script>
    }
    

6단계: 프로젝트 실행 및 QR 코드 테스트

  1. Visual Studio에서 프로젝트를 실행합니다.
  2. 앱에서 2단계 인증을 설정하고, QR 코드가 올바르게 생성되고 스캔될 수 있는지 확인합니다.

추가 정보

  • 사이트 이름이나 기타 설정을 변경하려면, /Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs 파일 내의 관련 코드를 수정합니다.
  • 서버와 클라이언트 간의 시간 차이가 TOTP 인증에 영향을 줄 수 있으므로, 시간 동기화 상태를 확인하고 필요한 경우 조정합니다.

이 가이드를 따라 VisualAcademy 프로젝트에 TOTP 인증 앱을 위한 QR 코드 생성을 성공적으로 활성화할 수 있습니다. 이를 통해 사용자는 보다 손쉽게 2단계 인증을 설정하고 안전하게 서비스를 이용할 수 있게 됩니다.

더 깊이 공부하고 싶다면
DevLec에서는 실무 중심의 C#, .NET, ASP.NET Core, Blazor, 데이터 액세스 강좌를 단계별로 제공합니다. 현재 수강 가능한 강좌 외에도 더 많은 과정이 준비되어 있습니다.
DevLec.com에서 자세한 커리큘럼을 확인해 보세요.
DevLec 공식 강의
C# Programming
C# 프로그래밍 입문
프로그래밍을 처음 시작하는 입문자를 위한 C# 기본기 완성 과정입니다.
ASP.NET Core 10.0
ASP.NET Core 10.0 시작하기 MVC Fundamentals Part 1 MVC Fundamentals Part 2
웹 애플리케이션의 구조와 MVC 패턴을 ASP.NET Core로 실습하며 익힐 수 있습니다.
Blazor Server
풀스택 웹개발자 과정 Part 1 풀스택 웹개발자 과정 Part 2 풀스택 웹개발자 과정 Part 3
실무에서 바로 활용 가능한 Blazor Server 기반 관리자·포털 프로젝트를 만들어 봅니다.
Data & APIs
Entity Framework Core 시작하기 ADO.NET Fundamentals Blazor Server Fundamentals Minimal APIs
데이터 액세스와 Web API를 함께 이해하면 실무 .NET 백엔드 개발에 큰 도움이 됩니다.
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com