1. 인증(토큰 발급)

- 1.token 발급 요청
-
-
Token 발급 요청 예시
https://apigateway.kisti.re.kr/tokenrequest.do?accounts=
AES256 {
mac_address : 40-8D-5C-7D-DF-4E,
datetime: 20200929182955
}
&client_id=KxVwdBN7OVtnbS3F0s7S1MD
https://apigateway.kisti.re.kr/tokenrequest.do?accounts=tG26p5Im22Z6RxbB2n7mwxLtpWeZuPhHqcV4eZH0NN6G4407t0CblLa9xzYKQplOpKDr2eal41HJHSeT0ChRzQ= =&client_id=KxVwdBN7OVtnbS3F0s7S1MD
-
- 2.신청기관 정보 확인
-
- client_id 값으로 신청기관 식별 후 인증에 필요한 mac address, ip 주소리스트, 인증키 값을 가져옴
- 신청기관의 인증키를 암호화 키로 accounts의 값에 대해서 복호화 진행함
- json data에서 mac_address 값을 가져온 후 비교해서 일치 여부 확인함
- 요청 서버IP 주소 확인 후 신청기관 IP 주소 여부 확인함
- 일치 하면 token 발급을 위한 인증 통과 됨, token 발급함
* accounts 정보 생성 – 신청기관 식별을 위한 정보
- Client(신청기관) 에서 이용신청 시 제출한 인증요청정보 mac address, ip 발급받은 인증키를 이용
- mac address, 현재일시 값을 json data로 변환
- json data를 발급받은 인증키로 AES256 암호화 실행
- 암호화 결과값을 accounts parameter로 API Gateway 서버로 전달함
- 3.Access Token, Refresh Token 생성
-
- 신청기관 정보 확인 후 32Byte token 2개 발행
- 한 개는 Access Token용(사용기한:2시간)
- 한 개는 Refresh Token용(사용기한:2주)
- 4.Access Token, Refresh Token 발급 (json data)
-
-
예제
{
"access_token": "HVBVuQgjIRUGHE5CBOiKRGC",
"access_token_expire": "2020-10-08T19:15:21.981",
"refresh_token": "euIChI80BQWWCJEiwTHWCrG",
"refresh_token_expire": "2020-10-22T19:15:21.981",
"client_id": "KxVwdBN7OVtnbS3F0s7S1MD",
"issued_at": "2020-10-08T17:15:22.083"
}
- access_token : access_token 값
- access_token_expire : access_token 만료일시 (발행일시로 부터 2시간)
- refresh_token : refresh_token 값
- refresh_token_expire : efresh_token 만료일시 (발행일시로 부터 2주)
- client_id : token 요청한 신청기관 식별ID
- issued_at : token 발행일시
위의 token 발행정보를 API Gateway DB내에 저장 관리함
-