프로젝트

일반

사용자정보

서버 API 접근 보안 » 이력 » 개정판 13

개정판 12 (이름없음, 2021/07/15 04:53) → 개정판 13/24 (이름없음, 2021/08/05 03:31)

h1. 서버 API 접근 보안 

 h2(#wiki-id-API서버접근보안-API서버접근허가흐름도). API 서버 접근 허가 흐름도 

 * DID(Decentralized Identifier) + JWT(JSON Web Token) 기반 인증 
 ** 사용자 구분은 DID ( Decentralized Identity ) 로 하고 있으며 Hyperledger Indy ( https://www.hyperledger.org/use/hyperledger-indy ) 솔루션을 사용합니다 
 ** JWT (Jason Web Token : https://jwt.io/ ) 으로 API 접근 권한을 제한하고 있습니다. 

 !picture385-1.png! !picture798-1.png! 

 h2(#wiki-id-API서버접근보안-JWTaccesstoken발급과검증). JWT access token 발급과 검증 

 1) 인증서버(Auth Server)는 검증된 DID를  제출한 모바일 앱을 위하여 access token을 생성하여 반환합니다. 

 !picture413-1.png! 

 2) 모바일 앱은 API 서버에 요청을 보낼 때 access token을 헤더에 담아서 보냅니다. API 서버는 요청 메시지의 헤더에 있는 access token을 검증하고 자신이 발급한 것이 맞으면 요청을 수행하고 응답을 반환합니다. 

 !picture413-2.png! 

 h2. Access Token 발급 및 호출 

 API 를 호출하기 위해서는 Access Token 을 발급 받아야 하며 다음과 같은 흐름으로 호출합니다 

 !picture385-2.png! !Interaction%20Diagram%20for%20TNK.png! 

 1) indy SDK 가 포팅되어 있는 모바일에서 Did 를 생성하고 함께 나오는 verkey와 signature를 보관합니다. 

 2) /oauth/token를 통하여 access token 을 발급 받으며  파라미터로 did, verkey, signature 정보를 전달합니다. 

 3) /oauth/token API 외에 다른 API를 호출시에 X-AUTH-TOKEN 파라미터에 access token 를 포함하여 호출합니다. 

 ※ access token 은 6시간 유효 기간을 가지고 있어 만료된 후에는 재사용 불가합니다. 

   API 호출하기 위하여는 access token을 재발급 하여 호출합니다. 

 h2(#wiki-id-API서버접근보안-관련자료). 관련 자료 

 * "JSON Web Token (JWT)":https://tools.ietf.org/html/rfc7519
클립보드 이미지 추가 (최대 크기: 97.7 MB)