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_id는 OTP를 생성한 사용자의 로그인-ID를 설정해야 한다.
phone_no는 OTP를 생성한 사용자의 스마트 폰 번호를 숫자만 설정해야 한다.
cycle_time은 OTP를 생성한 사용자별로 지정한 인증키 생성 주기(3~60초)를 설정해야 한다.(60초 권고)
tkey는 SMS로 전송한 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 { // 검증 실패 } ... |
'▶ BaroSolution > 가이드' 카테고리의 다른 글
정보자산의 이상접속 탐지/차단을 위한 Intrusion Detector 관리 (0) | 2020.02.25 |
---|---|
정보자산의 이상접속 탐지/차단을 위한 실시간 로그 수집기인 BaroCollector 관리 (0) | 2020.02.25 |
가볍고 가장 빠른 암호화 알고리즘을 위한 BaroCRYPT 솔루션의 API 가이드(MySQL, MariaDB용) (0) | 2019.12.13 |
기억할 필요 없는 비밀번호를 위한 BaroPAM 솔루션의 API 가이드(dll) (0) | 2019.05.07 |
기억할 필요 없는 비밀번호를 위한 BaroPAM 솔루션의 API 가이드(C) (0) | 2019.02.26 |