APNS 공급자 인증
공급자 인증을 수행하기 전에 JWT에 대해 자세히 알아봐야 한다.
JWT
- JWT 는 JSON 객체를 전달할 수 있고 여기에 서명하거나 암호화 할 수 있다.
- JWT 는 보통 2가지 경우에서 사용한다.
aaaaa.bbbb.cccccc
header payload signature
(1) JWT Header
- Typ : 토큰의 타입
- Alg : 알고리즘
{
"typ": "JWT",
"alg": "HS256“
}
(2) JWT Payload
{
"iss": "velopert.com", //등록된 클레임
"exp": "1485270000000", //등록된 클레임
"https://velopert.com/jwt_claims/is_admin": true, //공개된 클레임
"username": "velopert“ //비공개 클레임
}
- 클레임의 종류
iss: 토큰 발급자 (issuer)
sub: 토큰 제목 (subject)
aud: 토큰 대상자 (audience)
exp: 토큰의 만료시간 (expiraton), 시간은 NumericDate 형식으로 되어있어야 하며 (예: 1480849147370) 언제나 현재 시간보다 이후로 설정
nbf: Not Before 를 의미하며, 토큰의 활성 날짜와 비슷한 개념. 여기에도 NumericDate 형식으로 날짜를 지정하며, 이 날짜가 지나기 전까지는 토큰이 처리되지 않는다.
iat: 토큰이 발급된 시간 (issued at), 이 값을 사용하여 토큰의 age 가 얼마나 되었는지 판단 가능하다.
jti: JWT의 고유 식별자로서, 주로 중복적인 처리를 방지하기 위하여 사용됩니다. 일회용 토큰에 사용하면 유용하다.
(3) JWT Signature
- 서명 부분을 만들려면 인코딩 된 헤더, 인코딩 된 페이로드, 암호, 헤더에 지정된 알고리즘을 서명해야한다.
- 예를 들어 HMAC SHA256 알고리즘을 사용하려면 다음과 같은 방법으로 서명을 만든다.
{
base64_header + "." + base64_payload,
secret
) base64_endcoding
참고: https://jwt.io/
'Cloud & NoSQL & Middleware > Apns' 카테고리의 다른 글
APNS HTTP/2 토큰 방식 인증 (3) - Apns의 JWT Format 및 구현 (0) | 2018.06.12 |
---|---|
APNS HTTP/2 토큰 방식 인증 (2) - JWT 장/단점 (0) | 2018.06.11 |
Binary Provider API 구현 (0) | 2018.06.11 |
HTTP/2 - based Apns Provider API (0) | 2018.05.31 |
FeedbackService - Format, Packet (0) | 2018.05.29 |