File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<title>Pass-Ni SSO Agent 가이드</title>
<meta charset="utf-8" />
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport" />
<link rel="icon" href="img/favicon.ico" />
<link rel="stylesheet" href="css/guide.css" />
<script type="text/javascript" src="js/jquery-3.6.3.min.js"></script>
<script type="text/javascript">
$(function() {
$('[id^="content"]').hide();
$('#content1').show();
});
function fnLink(no) {
$('[id^="content"]').hide();
$('#content'+no).show();
}
</script>
</head>
<body>
<header class="top_bg">
<div class="header_wrap">
<h1>유비앤티스랩</h1>
<ul class="utility">
<li>Pass-Ni SSO Agent API</li>
</ul>
</div>
</header>
<div class="contents_wrap">
<div class="sub_nav ani">
<ul class="sub_nav_inner">
<li>
<a href="javascript:fnLink('1');">오류 코드</a>
</li>
<li>
<a href="javascript:fnLink('2');">SSO 코드 요청</a>
</li>
<li>
<a href="javascript:fnLink('3');">인증토큰 요청</a>
</li>
<li>
<a href="javascript:fnLink('4');">사용자정보 요청</a>
</li>
<li>
<a href="javascript:fnLink('5');">로그인 체크</a>
</li>
<li>
<a href="javascript:fnLink('6');">연동시스템 조회</a>
</li>
</ul>
</div>
<div class="sub_wrap">
<div id="content1" class="sub_content_wrap">
<h3 class="sub_s_title"> 오류 코드</h3>
<div class="mt20 ml20">SSO 솔루션 이용 시 발생할 수 있는 오류 코드에 대한 목록입니다.</div>
<div class="table-wrap td_left mt20">
<table>
<colgroup>
<col style="width:13%;" >
<col style="width:37%">
<col style="width:13%;" >
<col style="width:37%;" >
</colgroup>
<tbody>
<tr>
<th scope="row">코드</th>
<th scope="row">설명</th>
<th scope="row">코드</th>
<th scope="row">설명</th>
</tr>
<tr>
<td style="text-align: center;">EA0001</td>
<td>(SSO 에이전트) 초기화 실패</td>
<td style="text-align: center;">EA0002</td>
<td>(SSO 에이전트) 필수 파라미터 정보 없음</td>
</tr>
<tr>
<td style="text-align: center;">EA0003</td>
<td>(SSO 에이전트) 서버와의 통신 오류</td>
<td style="text-align: center;">EA0004</td>
<td>(SSO 에이전트) 서버와의 통신 오류(예외사항)</td>
</tr>
<tr>
<td style="text-align: center;">EA0005</td>
<td>(SSO 에이전트) 암호화 키 교환 오류</td>
<td style="text-align: center;">EA0006</td>
<td>(SSO 에이전트) JSON 데이터 파싱 오류</td>
</tr>
<tr>
<td style="text-align: center;">EA0007</td>
<td>(SSO 에이전트) 서버에서 전달받은 데이터 오류</td>
<td style="text-align: center;">EA0008</td>
<td>(SSO 에이전트) 데이터 복호화 오류</td>
</tr>
<tr>
<td style="text-align: center;">EA0009</td>
<td>(SSO 에이전트) 데이터 서명 검증 오류</td>
<td style="text-align: center;">EA0010</td>
<td>(SSO 에이전트) 암화화 키 생성 오류</td>
</tr>
<tr>
<td style="text-align: center;">EA0011</td>
<td>(SSO 에이전트) ECC Key 생성 오류</td>
<td style="text-align: center;">ES0001</td>
<td>(SSO 서버) 실패</td>
</tr>
<tr>
<td style="text-align: center;">ES0002</td>
<td>(SSO 서버) 서버 초기화 오류</td>
<td style="text-align: center;">ES0003</td>
<td>(SSO 서버) 필수 파라미터 정보 없음</td>
</tr>
<tr>
<td style="text-align: center;">ES0004</td>
<td>(SSO 서버) 연동시스템 정보 없음</td>
<td style="text-align: center;">ES0005</td>
<td>(SSO 서버) 연동시스템 식별코드 정보 없음</td>
</tr>
<tr>
<td style="text-align: center;">ES0006</td>
<td>(SSO 서버) ECC Key 생성 오류</td>
<td style="text-align: center;">ES0007</td>
<td>(SSO 서버) 전자서명 데이터 생성 오류</td>
</tr>
<tr>
<td style="text-align: center;">ES0008</td>
<td>(SSO 서버) 서버 공개키/개인키 정보 로드 오류</td>
<td style="text-align: center;">ES0009</td>
<td>(SSO 서버) 전자서명 검증 오류</td>
</tr>
<tr>
<td style="text-align: center;">ES0010</td>
<td>(SSO 서버) 공유키 생성 실패[Calculate Key]</td>
<td style="text-align: center;">ES0011</td>
<td>(SSO 서버) 정상적인 요청이 아님[Challenge]</td>
</tr>
<tr>
<td style="text-align: center;">ES0012</td>
<td>(SSO 서버) 서버 ECC Key 정보 로드 오류</td>
<td style="text-align: center;">ES0013</td>
<td>(SSO 서버) 데이터 암호화 오류</td>
</tr>
<tr>
<td style="text-align: center;">ES0014</td>
<td>(SSO 서버) 데이터 복호화 오류</td>
<td style="text-align: center;">ES0015</td>
<td>(SSO 서버) 사용자 정보 없음</td>
</tr>
<tr>
<td style="text-align: center;">ES0016</td>
<td>(SSO 서버) JSON 데이터 생성 오류</td>
<td style="text-align: center;">ES0017</td>
<td>(SSO 서버) 요청 정보 없음</td>
</tr>
<tr>
<td style="text-align: center;">ES0018</td>
<td>(SSO 서버) JSON 데이터 파싱 오류</td>
<td style="text-align: center;">ES0019</td>
<td>(SSO 서버) SSO 서버 시스템 오류</td>
</tr>
<tr>
<td style="text-align: center;">ES0020</td>
<td>(SSO 서버) 정상적인 요청이 아님</td>
<td style="text-align: center;">ES0021</td>
<td>(SSO 서버) 올바르지 않은 인증 토큰 정보[DATA]</td>
</tr>
<tr>
<td style="text-align: center;">ES0022</td>
<td>(SSO 서버) 올바르지 않은 인증 토큰 정보[SIGN]</td>
<td style="text-align: center;">ES0023</td>
<td>(SSO 서버) 올바르지 않은 인증 토큰 정보[ISS]</td>
</tr>
<tr>
<td style="text-align: center;">ES0024</td>
<td>(SSO 서버) 올바르지 않은 인증 토큰 정보[AUD]</td>
<td style="text-align: center;">ES0025</td>
<td>(SSO 서버) 올바르지 않은 인증 토큰 정보[IP]</td>
</tr>
<tr>
<td style="text-align: center;">ES0026</td>
<td>(SSO 서버) 올바르지 않은 인증 토큰 정보[BROWSER]</td>
<td style="text-align: center;">ES0027</td>
<td>(SSO 서버) 올바르지 않은 인증 토큰 정보[DATE]</td>
</tr>
<tr>
<td style="text-align: center;">ES0028</td>
<td>(SSO 서버) 올바르지 않은 인증 토큰 정보[SUB]</td>
<td style="text-align: center;">ES0029</td>
<td>(SSO 서버) 올바르지 않은 코드 정보[SSO_CODE]</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="content2" class="sub_content_wrap">
<h3 class="sub_s_title"> SSO 코드 요청</h3>
<div class="mt20 ml20">SSO 코드 요청 명세</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif">
// 인증 토큰으로 SSO 코드를 요청한다.
String com.ubintis.agt5.api.ApiAgentService.getSsoCode (String pni_token, String user_ip, String user_agent)
@param pni_token : 인증 토큰
@param user_ip : 사용자 아이피
@param user_agent : 사용자 User-Agent
@Return String : SSO 코드
(ex) 64BD24FAE5CF244825AD67F89D78ED73
// SSO코드가 ""일 경우 getErrorCode() 메서드를 통해 오류코드 획득
String com.ubintis.agt5.api.ApiAgentService.getErrorCode()
@Return String : 오류 코드
</pre>
</li>
</ul>
<div class="mt20 ml20">SSO 코드 요청 예제</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif">
String errorCode ="";
String pni_token = StrUtil.NVL( session.getAttribute( "pni_token" ) );
if( !"".equals( pni_token ) ) {
String user_ip = request.getRemoteAddr();
String user_agent = request.getHeader("User-Agent");
ApiAgentService apiAgentService = new ApiAgentService ();
String sso_code = apiAgentService.getSsoCode( pni_token, user_ip, user_agent );
if( "".equals( sso_code ) ) {
errorCode= apiAgentService.getErrorCode();
}
}
</pre>
</li>
</ul>
</div>
<div id="content3" class="sub_content_wrap">
<h3 class="sub_s_title"> 인증토큰 요청</h3>
<div class="mt20 ml20">인증 토큰 요청 명세</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif;">
// SSO 코드로 인증 토큰을 요청한다.
String com.ubintis.agt5.api.ApiAgentService.getToken (String sso_code, String user_ip, String user_agent)
@param sso_code : SSO 코드
@param user_ip : 사용자 아이피
@param user_agent : 사용자 User-Agent
@Return String : 인증 토큰
(ex) eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.N0M4OUQ0RDUxRjdCRDdEMTk1MjZCM0VCMkI4OTcxNzlBNzEzNzNBOUZCMzUwQTk3NzI3MzI3Q0Y2QTg5MTMxRUE0MTBCQzBBN0VBRT
FEODlFRTY3MDRDQkU2MDI2NUZFMzMzRjI3RDVEN0EzRTAyNjk2MEYyNzM0NkM0NzQzN0ZFODJCRDU0NzI5RDEwOTg3MDk1NDA0RkQ5OERGNEEyRjkyREUxQ0ZBQTdGNENDNTg2
OTU2MzU5Q0FGNEUwMDkyRkFBQkVCMzE3MkE4MDFCN0ZFNDAyOEQxRUU0NkRFRTBBODRERjBGRjc1OEVGNEU0RERERjFCQUIxNUI5MzY2MzUwNjg0NzI5QjdDNEE1NENBN0U3Nk
U1NEQ1M0EwQTdDOEVDNTM2QzkzNTREM0M5NzhFRDBGMzczOUFCNTNGNjU1RjlGNTNCQUM3NTY2QkYzQ0Y5REEyMzNEN0QyRUE4ODZBMzBCMjBFNDQ5M0EyOUIxM0JBMjQ4
ODBENjVGRjdC.M0Y3MEFGMzUyQjY4QThDQTJEOTM3RjdENzlCREJGQkQ3QTYxMTJCNEQ0MDZBNEY1NkY0OTEyOTcxMTZERDM2Rg
// 인증 토큰이 ""일 경우 getErrorCode() 메서드를 통해 오류코드 획득
String com.ubintis.agt5.api.ApiAgentService.getErrorCode()
@Return String : 오류 코드
</pre>
</li>
</ul>
<div class="mt20 ml20">인증 토큰 요청 예제</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif">
String errorCode = "";
String sso_code = StrUtil.NVL( request.getParameter( "sso_code" ) );
if( !"".equals( sso_code ) ) {
String user_ip = request.getRemoteAddr();
String user_agent = request.getHeader("User-Agent");
ApiAgentService apiAgentService = new ApiAgentService ();
String sso_code = apiAgentService.getToken( sso_code, user_ip, user_agent );
if( "".equals( sso_code ) ) {
errorCode= apiAgentService.getErrorCode();
}
}
</pre>
</li>
</ul>
</div>
<div id="content4" class="sub_content_wrap">
<h3 class="sub_s_title"> 사용자정보 요청</h3>
<div class="mt20 ml20">사용자 정보 요청 명세</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif;">
// 인증 토큰으로 사용자 정보를 조회한다.
String com.ubintis.agt5.api.ApiAgentService.getUserData (String pni_token, String user_ip, String user_agent)
@param pni_token : 인증 토큰
@param user_ip : 사용자 아이피
@param user_agent : 사용자 User-Agent
@Return JSON String : 사용자 정보
(ex) {"user_id":"ssotest"
,"user_nm":"테스트"
,"user_mbtlnum":"010-1234-1234"
,"user_email":"ssotest@passni.com"
,"user_data":null}
// 사용자 정보가 ""일 경우 getErrorCode() 메서드를 통해 오류코드 획득
String com.ubintis.agt5.api.ApiAgentService.getErrorCode()
@Return String : 오류 코드
</pre>
</li>
</ul>
<div class="mt20 ml20">사용자 정보 요청 예제</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif">
String errorCode = "";
String pni_token = StrUtil.NVL( session.getAttribute( "pni_token" ) );
if( !"".equals( pni_token ) ) {
String user_ip = request.getRemoteAddr();
String user_agent = request.getHeader("User-Agent");
ApiAgentService apiAgentService = new ApiAgentService ();
String user_data = apiAgentService.getUserData( pni_token, user_ip, user_agent );
if( "".equals( user_data ) ) {
errorCode= apiAgentService.getErrorCode();
}
}
</pre>
</li>
</ul>
</div>
<div id="content5" class="sub_content_wrap">
<h3 class="sub_s_title"> 로그인 체크</h3>
<div class="mt20 ml20">로그인 체크 명세</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif;">
// 인증 토큰으로 로그인 체크를 한다.
String com.ubintis.agt5.api.ApiAgentService.getLoginCheck (String pni_token)
@param pni_token : 인증 토큰
@Return JSON String : 로그인 체크 결과 정보
(ex) {"code":"SS0001"}
(ex) {"code":"SS0007","data":"192.168.124.163"} // data는 중복로그인 아이피
// "SS0001" : 정상 로그인, "SS0007" : 중복로그인, 이 외 값 : 로그아웃 상태
</pre>
</li>
</ul>
<div class="mt20 ml20">로그인 체크 예제</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif">
String pni_token = StrUtil.NVL( session.getAttribute( "pni_token" ) );
if( !"".equals( pni_token ) ) {
ApiAgentService apiAgentService = new ApiAgentService ();
String result_data = apiAgentService.getLoginCheck( pni_token );
}
</pre>
</li>
</ul>
</div>
<div id="content6" class="sub_content_wrap">
<h3 class="sub_s_title"> 연동시스템 조회</h3>
<div class="mt20 ml20">연동시스템 조회 명세</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif;">
// 연동시스템 목록을 조회한다. (자기 자신은 제외)
String com.ubintis.agt5.api.ApiDataService.getAgentList ()
@Return JSON String : 연동시스템 목록, 연동시스템이 없을 경우 "none"을 리턴
(ex) [{"agt_nm":"포탈시스템"
,"agt_id":"sso-portal"
,"sso_url":"https://pot.passni.com /passni5/sample/login_proc.jsp"}]
- agt_id(연동시스템 아이디)
- agt_nm(연동시스템 명)
- sso_url(SSO 연동 URL)
// 연동시스템 목록 정보가 ""일 경우 getErrorCode() 메서드를 통해 오류코드 획득
String com.ubintis.agt5.api.ApiDataService.getErrorCode()
@Return String : 오류 코드
</pre>
</li>
</ul>
<div class="mt20 ml20">연동시스템 조회 예제</div>
<ul class="qna_wrap mt20">
<li>
<pre style="font-family:NotoSansKR,NanumSquare,sans-serif">
String errorCode = "";
ApiDataService apiDataService = new ApiDataService ();
String strAgentList = apiDataService. getAgentList();
if( "".equals(strAgentList ) ) {
errorCode= apiDataService.getErrorCode();
}
</pre>
</li>
</ul>
</div>
</div>
</div>
</body>
</html>