Programming/Mac & iOS

[iOS] APNS JWT (JSON Web Token)

MB Brad KWON 2016. 12. 19. 10:23
    Apple이 JWT (JSON Web Token)을 활용하여 인증서 만료없이 사용할 수 있는 방법을 공개했다. WWDC 2016 session 724를 통해 언급 했었다. JWT는 JSON Web Token으로 기존의 XML 기반의 signature를 JSON으로 교체하여 페이로드/파싱를 경량화하고 기존 JSON의 범용성을 갖춘 새로운 방식의 토큰이다. Apple은 APNS를 사용하는 데 있어 이 방식을 추가로 제공하게 됬다. 

    기존 APNS는 App ID와 APNS 인증서를 연동하여 서버에서 인증서를 사용하려 APNS 서버로 푸시를 전송하는 방식이었다. 그래서 인증서의 만료 기간에 따라 서버의 APNS 인증서를 교체 해줘야하는 번거로움이 있었다. 이를 해결하기 위한 방안이 여러개 나왔고, Fast lane에서 제공하는 Pem 같은 것이 있다. 그럼 JWT를 활용한 APNS 인증 방식은 기존 방식과 무엇이 다른가?

    기존 방식은 아래의 그림처럼 APNS 인증서를 통하여 인증을 거친 후, 인증이 완료된 TLS connection을 이용하여 push notificaiton을 요청하는 방식이었다. 이 방식에서는 각 App ID 별로 APNS 인증서를 관리해줘야 했고 각 인증서의 만료 시기에 따라 교체했어야 했다.



    반면, JWT를 활용한 방식은 Apple에서 발급한 토큰을 이용하여 App ID와 인증서와 상관없이 오로지 토큰을 사용하여 APNS 서버에 push notification을 요청할 수 있는 방식이다. 동작 방식은 아래와 같다. push notification을 요청하고자 하는 app 정보 및 push 정보를 JWT와 함께 APNS 서버로 요청한다.







'Programming > Mac & iOS' 카테고리의 다른 글

[iOS] Library & Framework in iOS  (1) 2017.01.31
[iOS] WKWebView (instead of UIWebView)  (0) 2017.01.19
[iOS] What's new in iOS 10  (0) 2016.06.27
[iOS] Alcatraz : Xcode 패키지 매니저  (0) 2016.05.25
[iOS] '=='과 'isEqual:'의 차이  (0) 2016.05.18