비밀번호 없는 세상을 위한 BaroPAM와 SMS/이메일 연동 가이드

댓글 0

▶ BaroSolution/BaroPAM

2020. 1. 30.

 

3. BaroPAM 연동 API

 

어플리케이션 로그인 시 2차 인증하기 위하여 BaroPAM OTP SMS/이메일을 연동하기 위한 절차는 다음과 같습니다.

 

 

 

3.1 연동 API 사용 전 준비사항

 

 

BaroPAM에서 사용하는 인증 코드인 OTP Java를 기반으로 작성되었기 때문에 반드시 최신 JDK 1.6.x 이상이 설치 되어 있어야 한다. 만약, 설치되어 있지 않은 Linux/Unix인 경우 "yum install java*" 명령어로 설치하면 된다.

 

JDK 설치 확인)

[root]# rpm -qa | grep java

java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115

java-1.7.0-openjdk-javadoc-1.7.0.131-2.6.9.0.el5_11

java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

java-1.4.2-gcj-compat-javadoc-1.4.2.0-40jpp.115

bsh-javadoc-1.3.0-9jpp.1

tzdata-java-2016j-1.el5

java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el5_11

java-1.7.0-openjdk-src-1.7.0.131-2.6.9.0.el5_11

java-1.4.2-gcj-compat-src-1.4.2.0-40jpp.115

java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el5_11

java-1.7.0-openjdk-demo-1.7.0.131-2.6.9.0.el5_11

java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115

xmlrpc-javadoc-2.0.1-3jpp.1

gcc-java-4.1.2-55.el5

java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el5_11

java-1.7.0-openjdk-devel-1.7.0.131-2.6.9.0.el5_11

 

JDK 설치 디렉토리 확인)

[root]# env | grep JAVA_HOME

JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.121.x86_64

 

Java 버젼 확인)

[root]# java -version

java version "1.7.0_121"

OpenJDK Runtime Environment (rhel-2.6.8.1.el5_11-x86_64 u121-b00)

OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode)

 

 

3.2 BaroPAM 연동 API

 

 

어플리케이션 로그인 시 사용되는 OTP 생성 및 검증하는 API "barokey.jar"로 제공되며, WAS "~/WEB-INF/lib" 디렉토리에 "barokey.jar"를 위치 시켜야 한다.

 

/home/tomcat/webapps/ROOT/WEB-INF/lib > ls -al barokey.jar

-rw-r--r-- 1 root root 6746 12 29 07:43 barokey.jar

 

BaroPAM 검증 API에서 발생하는 Exception 로그는 WAS(Web Application Server) Console 로그에 제공된다.

 

1. OTP 생성 부분

 

1) generateKEYL 메소드

 

- NAME

  generateKEYL

 

- SYNOPSIS

  String tkey = barokey.generateKEYL(String login_id, String phone_no, String cycle_time);

 

- DESCRIPTION

  OTP를 생성하는 메소드

 

login_id는 사용자의 로그인-ID를 설정해야 한다.

phone_no는 사용자의 스마트 폰 번호를 숫자만 설정해야 한다.

cycle_time은 사용자별로 지정한 인증키 생성 주기(3~60)를 설정해야 한다.(60초 권고)

 

- RETURN VALUES

 성공 시에는 OTP 6자리, 실패 시는 ""을 반환한다.

 

2) OTP 생성 예시

 

...

import com.barokey.barokey;

...

로그인 ID 유효성 확인하여 성공인 경우만 인증키 검증 모듈을 호출

...

String tkey = barokey.generateKEYL(String login_id, String phone_no, String cycle_time);

 

if (!"".equals(tkey)) {

    // 생성 성공

    // 생성한 OTP를 전송할 SMS 연동 API 호출

    //   메시지: OTP 번호는 999999 입니다.

} else {

    // 생성 실패

}

...

 

 

2. 인증키 검증 부분

 

1) verifyKEYL 메소드

 

- NAME

  verifyKEYL

 

- SYNOPSIS

  boolean bauth_key = barokey.verifyKEYL(String login_id, String phone_no, String cycle_time, String tkey);

 

- DESCRIPTION

  OTP를 맞는지 검증하는 메소드

 

login_idOTP를 생성한 사용자의 로그인-ID를 설정해야 한다.

phone_noOTP를 생성한 사용자의 스마트 폰 번호를 숫자만 설정해야 한다.

cycle_timeOTP를 생성한 사용자별로 지정한 인증키 생성 주기(3~60)를 설정해야 한다.(60초 권고)

tkeySMS로 전송한 OTP를 설정해야 한다.

 

- RETURN VALUES

 성공 시에는 true을 반환하며, 실패 시는 false을 반환한다.

 

2) 인증키 검증 예시

 

...

import com.barokey.barokey;

...

boolean bauth_key = barokey.verifyKEYL(String login_id, String phone_no, String cycle_time, String tkey);

 

if (bauth_key == true) {

    // 검증 성공

} else {

    // 검증 실패

}

...

 

 

 

사업자 정보 표시
주식회사 누리아이티 | 이종일 | 서울시 강서구 공항대로 186 로뎀타워 617호 | 사업자 등록번호 : 258-87-00901 | TEL : 010-2771-4076 | Mail : mc529@nurit.co.kr | 사이버몰의 이용약관 바로가기