파이썬 실습/구글OTP 로그인 인증을 클라이언트&서버에 적용해 보기

파이썬 구글OTP 클라이언트/서버에 적용하기 - 1.소개편

파기차차 2023. 1. 19. 07:00
728x90
반응형
SMALL
728x90
반응형

ㅁ 개요

 

O 프로그램 소개

 

 - 이번 프로그램은 파이썬으로 OTP(One Time Password)를 만들어 실제 서버에 적용하는 과정에 대하여 알아보겠습니다.

 

 

 

우리 프로그램은 다음과 같은 순서로 진행 됩니다.

 

 

 

1.서버에서 QR코드 생성 후 이용자에게 QR코드 이미지 배포

 - QR코드 이미지에는 6자리의 임시 비밀번호를 생성할 수 있는 보안상 가장 중요한 secret Key를 포함하고 있으며, 보통 웹사이트를 통해 text secret Key와 함께 제공되고 그 자리에서만 확인하고, 사라지게 되는데, 여기서는 QR코드 이미지만 생성하고 이용자에게 제공했다고 가정합니다.

 

2.이용자는 1에서 전달받은 QR코드 이미지로 부터 secret Key를 획득

 -이용자가 1에서 전달받은 QR코드이미지로 부터 QR코드 스캐너 등을 통하여 secret Key를 얻고, 이를 구글 OTP앱에 등록하여 아래 3에서 우리가 구축한 서버에 직접 2 factor 인증에 사용합니다.

 

3.서비스 제공업체는 서버 구축 시 인증 로직에 구글 OTP알고리즘을 적용

- 특정 서비스를 제공하는 회사가 로그인 인증을 강화하기 위하여 서버 구축 시 2팩터 인증(구글OTP)을 적용하는 방법을 알아봅니다.

여기서는 OTP에 집중하기 위하여 로그인 부분은 최대한 단순하게 처리하고 쉽게 이해할 수 있도록 합니다.

 

4.로그인 페이지에 이용자가 로그인 시도 및 이용자가 입력한 OTP 생성 번호가 맞는지 확인

- 실제 서비스에 접속한 이용자가 로그인 시 id/pw + otp를 입력하게 되는데, 이용자가 입력한 otp값(임시 비밀번호)이 서버측에서 생성된 otp값(임시 비밀번호)과 같은지 비교합니다.

 

 

 

O 완성된 프로그램 실행 화면

 - 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

 

1.먼저 이용자는 구글OTP앱을 실행하고 QR코드 이미지로 부터 획득한 secret Key를 등록(아래의 경우 '파기차차')한 후 OTP 값(임시 비밀번호 6자리)을 확인합니다.

 

 

 

 

 

 

2. 프로그램을 실행하면 아래와 같은 모습으로 실행되는데, 일반적인 웹사이트에 로그인 화면으로 가정하겠습니다.
(웹 기반 로그인 화면을 구축하려면 상당 시간과 노력이 들어가므로 최대한 OTP 인증부분에 집중할 수 있도록 단순화하였습니다.)

 -그리고 나서 이용자가 순서대로 ID, PW와 위에서 생성된 OTP 값을 입력합니다.

아래에서는 1번째 '111111'을 잘못 입력하여 로그인 실패 후 다시 정확한 값('720962')을 입력하여 로그인에 성공하였습니다.

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 


 

 

O 시작전 준비 사항

 

 

1. 프로그램을 실행하기 위해서는 아래 모듈들이 필요합니다. 아래와 같이 임포트(설치) 해줍니다.

 

import onetimepass as otp # pip install onetimepass (파이썬용 구글 otp 모듈 적용)
import qrcode # pip install qrcode

 

※ 설치 시 에러가 발생거나, 궁금하신 점이 있으시면 댓글로 문의 주시면 친절하게 답변드리겠습니다.

 

 

 


 

 

 

오늘은 여기까지이며, 위의 내용이 유익하셨다면, 좋아요와 구독 부탁드립니다.

 

 

감사합니다.

 

 

 

※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.

 

728x90
반응형
LIST