처음 공부하는 사람인데 실명 인증

실명인증 혹은 그에 버금가는 이중인증 기능 홈페이지에 넣는 거 배우기 쉬운가요? 배우려면 어떤 게 있나요?

제가 아는 한도 내에서 답변 드리겠습니다.
혹시 틀린 설명이 있으면 댓글 달아주시기 바랍니다…

아이디 / 비밀번호 인증을 제외한 다른 인증방식을 원하신다면…

전화번호 실명인증
단순 SMS 문자 인증
단순 이메일 인증

정도가 있을거 같네요…

일단 전화번호 실명 인증의 경우 우리가 통신사 (SK,LGU+,KT 등) 데이터에 접근할 수 없기 때문에 인증업체의 API 를 사용해야 합니다…

아래 링크같은 사이트에 가입하여 업체에서 제공하는 API(소스코드) 를 홈페이지 설치하는 방식으로 연동하는 것으로 알고 있습니다.

https://www.niceid.co.kr/prod_mobile.nc

업체 측 설명에 따르면 숙련된 개발자라면 몇 시간내 연동이 가능하다고 설명하고 있네요… 아예 초보자인 경우에는 연동이 좀 어려울 수도 있을 것 같습니다…

연동에 성공한다면 우리가 실명인증에 흔히 볼 수 있는 화면 (전화번호,이름,통신사,생년월일 입력 창, PASS APP,아이핀 사용 여부 선택화면 등) 을 구현할 필요 없이 업체 측에서 제공한 화면이 홈페이지에 뜨게 됩니다.

이 방식은 실명과 전화번호를 입력받기 때문에 개인정보 처리 방식을 홈페이지에 고지해야 하는 등 법률적 제약을 받습니다. 이 부분에 대해서는 따로 알아보시기 바랍니다.
사업자등록이 필요하고 업체의 서비스 신청 등의 절차를 거쳐야 합니다. 그리고 수수료가 발생합니다.

단순 SMS 인증 방식의 경우 홈페이지의 backend 에서 SMS 문자를 보낼 수 있어야 하는데 이것 또한 자체 구현 하기는 어렵고 보통은 클라우드 업체의 SMS 서비스를 이용하는 것이 보통입니다.
그리고 문자를 보낼때 건당 수수료가 발생합니다.
네이버 클라우드 SMS 서비스의 경우 월 50건까지는 무료이고 이후에는 건당 9원이 발생하는 것으로 되어있네요…

이 방식을 사용한다면 인증 절차는 아래와 같습니다.

  • 사용자가 SMS 인증을 요청함 (전화번호를 입력받음)
  • backend 가 임의의 인증번호(난수)를 생성
  • 네이버클라우드 SMS 서비스를 이용하여 사용자에게 문자를 보냄
  • 사용자가 문자를 받아 다시 홈페이지 폼에 입력
  • 인증 완료

그러니 전화번호 입력폼, 서버에서 난수 생성, 네이버클라우드에 SMS 전송 요청, 사용자의 입력 확인 등의 기능을 구현해야 합니다.

단순 이메일 인증방식도 비슷한데 SMS 를 보내는 기능이 메일을 보내는 기능으로 대체되는 것으로 생각하시면 됩니다.

똑같이 네이버 클라우드 에서 제공하는 mail 서비스를 이용하시거나 아래 사이트 같은 업체에서 제공하는 메일 전송 서비스를 이용하여 구현이 가능합니다.
이 또한 수수료가 발생합니다.

위 사이트의 경우 한달에 5,000 건이 무료이고 이후로는 1,000 건당 1$ 의 수수료가 발생하네요…

마지막으로 google 같은 곳에서 제공하는 firebase 나 AWS 의 amplify 등의 사용자 관리 서비스를 사용하는 방식이 있습니다.

제가 사용해본 firebase 의 경우에는 전화번호, 이메일 인증 기능을 제공하고 있습니다.
이 서비스를 사용하면 backend 에서 난수를 생성해서 직접 SMS/이메일을 사용자에게 보내는 등의 기능 구현이 필요치 않고 firebase 에서 제공하는 API 를 사용해서 구현하면 됩니다.
이 또한 수수료가 발생합니다.

월 10,000 건의 전화인증/메일 인증이 무료고 그 이후로는 비용이 발생하는 것으로 되어있네요…

정리하면…

인증의 목적을 확실히 할 필요가 있을 것 같습니다.
단순히 중복가입 방지가 목적이라면 전화번호 인증 정도(자체구현 또는 firebase 사용)로 해도 될 것 같고…
확실한 실명 인증이 필요한 서비스를 개발 하신다면 선택의 여지 없이 인증업체의 API 를 사용하셔야 할 듯 합니다.

개발 난이도는 (쉬운 순서대로)

firebase 인증 사용
인증 업체 API 사용
phone/mail 인증 자체 구현

운영 비용은… (싼 순서대로)

firebase 인증 사용
단순 mail 인증 자체 구현
단순 phone 인증 자체 구현
인증 업체 API 사용

인증 강도 (?) (강한 순서대로)

  1. 인증 업체 API 사용 실명인증 (가장 강력함)

  2. 단순 phone 인증, firebase phone 인증 (중복가입을 쉽게할 수 없게 막을 수 있는정도, 가상 phone 번호, 여러 폰 번호 등에 대처 불가)

  3. 단순 메일 인증 (같은 메일 중복가입을 막을 수 있지만 여러 이메일 주소를 생성해서 가계정을 만들 수 있음)

이 정도가 아닐까 생각됩니다…

친절하게 알려주셔서 너무 감사합니다 잘 못 얻는 정보 같던데 감사합니다 ㅠㅠ