1. Application Access Token 인증 활용 범위
프로젝트 사이트에서 AUD플랫폼 보고서 및 i-PORTAL을 임베디드 할 때 사용
외부 사이트에서 AUD플랫폼 에서 제공하는 Rest API를 사용할 때 사용
2. Application Access Token 인증을 위한 준비 사항
1) AUD플랫폼의 Repository DB에 MTX_AUTH_AP_INFO 테이블 추가 필요(이미 있을 경우 필요 없음)
Create Table(PostgreSQL)
-- [Admin > Repository 테이블 점검]에서 Repository Script 내려받기를 이용하여 사이트에 맞는 Database를 사용 하세요 CREATE TABLE MTX_AUTH_AP_INFO ( APP_ID VARCHAR(50) NOT NULL, APP_NAME VARCHAR(50) NULL, APP_SSH_PUB_KEY VARCHAR(2000) NULL, APP_SECRET_KEY VARCHAR(255) NOT NULL, CREATE_DATE TIMESTAMP NOT NULL, EXPIRE_DATE TIMESTAMP NULL, CONSTRAINT MTX_AUTH_AP_INFO_UNIQUE UNIQUE (APP_ID) ); CREATE INDEX MTX_AUTH_AP_INFO_APP_ID_IDX ON MTX_AUTH_AP_INFO USING BTREE (APP_ID);
2) 프로젝트 사이트와 AUD플랫폼의 Domain name 이 동일 해야 함(Application Access Token은 쿠기에 공유 되기 때문에 발생하는 제약 입니다.)
3. Application Access Token 인증 절차
1) SSH키 발급 방법
등록된 Application 정보로 AP 인증 토큰(bimatrix_ap_accessToken)을 발급 한 후 AUD 플랫폼에서 제공하는 Rest API 호출 및 보고서 연동 기능.
타 시스템에서 AUD 플랫폼에서 제공하는 보고서 및 PORTAL을 임베디드 형식으로 구성이 가능합니다.
- 타 시스템과 AUD 플랫폼의 도메인 주소가 다르더라도 CORS 등록된 Application 도메인인 경우에는 CORS 형태로 외부 타 시스템에 임베디드 처리 가능.
AP 인증 토큰 발급 API
1. AUD 플랫폼에 등록한 Application용 클라이언트 아이디와 클라이언트 시크릿를 인증 정보로 설정하여 Application 인증 JWT 토큰 발급
- 클라이언트에서 해당 인증 토큰 발급은 제한됩니다. 보안상 클라이언트 인증 정보가 확인될 소지 방지.
- 타 시스템 포탈에서 최초 1회 인증 토큰 발급 후 만료되었거나 유효하지 않은 토큰일 경우 클라이언트 아이디와 클라이언트 시크릿 정보를 이용하여 인증 토큰을 재발급 합니다.
- 발급한 토큰은 타 시스템 쿠키에 등록하여 사용합니다 . (쿠키 key = bimatrix_ap_accessToken)
요청 URL | 메서드 | Header 설정 | 응답 형식 | 설명 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{AUD서버 주소}/api/auth/sign/ap/token | POST | 서버 영역에서 API 호출 시에 Request Header로 설정하여 전달
| String | AUD 플랫폼에서 발급된 SSH Private.pem 인증서를 이용하여 Secret Key를 서명한 후에 Header에 Secret Key를 설정하여 전달하여 인증 후 전달된 사용자 또는 클라이언트 아이디로 AUD 플랫폼에서 사용 가능한 인증 토큰 발급. 해당 JWT 인증 토큰을 통해 AUD 플랫폼의 기능 연동을 지원 |
2. 발급받은 AUD플랫폼 JWT 토큰을 타 시스템 내 쿠키에 설정하여 자동으로 토큰이 정상 토큰이면 갱신 가능.
Rest API 호출만으로 사용할 경우에는 호출시마다 Header에 설정하여 api 조회도 가능
클라이언트에서 API 호출 시에 CORS 옵션 추가하여 API 호출
ex) fetch를 통한 호출 시fetch(biServerUrl + apiUrl, { method: 'POST', // 또는 'POST', 'GET' headers: { 'Content-Type': 'application/json', 'bimatrix_ap_accessToken':'발급받은 AUD플랫폼 인증 JWT 토큰값' }, credentials: 'include', // 쿠키를 포함하여 요청하려면 사용 body: JSON.stringify(params) }) .then(response => { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); // 응답을 JSON으로 변환 }) .then(data => { alert(JSON.stringify(data)); }) .catch(error => { console.error('There has been a problem with your fetch operation:', error); alert('데이터를 가져오는데 실패했습니다.'); });
(i-AUD) Sample 예제 소스 및 연동 소스
AUD7 플랫폼 패키지 500 버전의 2025년 3월 이후부터 기본 기능으로 적용되어 배포됩니다.
- VS_ , VN_ 전역 파라메터를 AUD 보고서 영역으로 넘기려면 샘플 jsp 호출 시에 request parameter로 VS_ , VN_ 로 시작하는 형식으로 전달하면 보고서 영역까지 전달