簡介
APNs(Apple Push Notification service =APNs)是Apple推送通知服務(wù)漾根。
2016年的WWDC泰涂,蘋果上線了token驗(yàn)證的推送方式,通過獲得一個(gè)認(rèn)證密鑰(APNs Auth Key)(p8秘鑰文件)去生成服務(wù)器端token辐怕,并且token非常容易生成逼蒙,可以使用這些token令牌代替推送證書。一個(gè)認(rèn)證密鑰可用于多個(gè)應(yīng)用程序并且永遠(yuǎn)不過期寄疏。
認(rèn)證方式
TLS(是“Transport Layer Security”的縮寫)是牢,中文叫做“傳輸層安全協(xié)議”僵井。新的APNs協(xié)議基于HTTP/2,舊推送是使用Universal Push Notification Client SSL 證書驳棱,新推送是使用Token認(rèn)證批什。
1.1、基于證書的信任認(rèn)證
建立連接工作的步驟如下:
1)Provider通過TLS向APNs發(fā)起安全請求蹈胡。 Provider就是我們自己程序的后臺服務(wù)器(或者是第三方的推送服務(wù)器)
2)APNs返回一個(gè)證書給Provider渊季。
3)Provider驗(yàn)證APNs的證書,驗(yàn)證通過后罚渐,返回Apple提供的證書(通過蘋果開發(fā)者賬號創(chuàng)建的推送證書)給APNs却汉。
4)APNs驗(yàn)證Provider返回的證書,從而確認(rèn)連接請求來自于合法的Provider并建立TLS連接荷并。
上述步驟完成后合砂,信任連接建立,Provider服務(wù)器可以發(fā)送基于證書的遠(yuǎn)程推送消息請求給APNs源织。
1.2翩伪、基于Token的信任認(rèn)證
建立連接工作的步驟如下:
1)Provider通過TLS向APNs發(fā)起安全請求。
2)APNs返回一個(gè)證書給Provider谈息。
以上兩步完成后缘屹,信任連接建立,Provider服務(wù)器可以發(fā)送基于Token的遠(yuǎn)程推送消息請求給APNs侠仇。
3)Provider驗(yàn)證APNs的證書轻姿,然后Provider發(fā)送的每個(gè)消息請求必須攜帶上JWT 認(rèn)證的 Token。
4)APNs驗(yàn)證Provider返回的證書逻炊,并返回請求的結(jié)果互亮。
注意事項(xiàng)(權(quán)限和使用期限)
傳統(tǒng)的推送證書,每個(gè)App需要單獨(dú)配置兩個(gè)(開發(fā)環(huán)境和生產(chǎn)環(huán)境)證書余素。推送證書的有限期為1年(生產(chǎn)的推送證書比開發(fā)的推送證書多一個(gè)月)豹休,過期之后需要重新配置。
新的token驗(yàn)證推送桨吊,一個(gè)認(rèn)證密鑰可用于多個(gè)App服務(wù)威根,而且永遠(yuǎn)不會過期。但是該密鑰生成后视乐,在網(wǎng)站上只允許下載一下医窿,要保管好下載的.p8 密鑰文件。
對于一個(gè)開發(fā)者賬號管理著多個(gè)App炊林,并且部分App迭代周期大于1年,這種新的推送認(rèn)證方式大大地減少了管理證書人員的工作量卷要。