2016-09-24 123 views
19

我最近注意到为给定的iOS客户端创建证书时发现了一个新选项。苹果推送通知身份验证密钥(沙盒与制作)

选项的题目是

苹果推送通知认证密钥(沙盒&生产)

获得认证密钥生成服务器端的令牌。您可以使用 这些令牌作为通知 请求的证书的替代方案。

一个验证密钥可以用于多个应用程序,并且不会 到期。

如何设置?

回答

15

Apple推送通知令牌认证是使用提供商证书连接到APN的替代方法。提供程序API支持JSON Web Token(或JWT)(一种开放标准),以将身份验证声明与推送消息一起传递给APN。

要生成令牌供应商,获得在创建通用提供Tokenin应用 分发指南描述签署 令牌的私钥。你应该构造一个标题为 的令牌,其中包含一个10个字符的密钥ID(kid)。令牌声明部分 包含发行人(iss),其是10个字符的团队ID。您的团队ID 和密钥ID值可以从您的开发者帐户获得。该索赔还应包含Issued At(iat),这是生成令牌时来自Epoch的 秒的UTC数。令牌 使用椭圆曲线数字签名算法(ECDSA) 使用指定为算法密钥(alg)中的值的P-256曲线和SHA-256哈希算法(ES256), 进行签名。

{ 
    "alg": "ES256", 
    "kid": "ABC123DEFG" 
} 
{ 
    "iss": "DEF123GHIJ", 
    "iat": 1437179036 
} 

与用于生成签名的JSON网络令牌可用库列表以及其他信息,请参阅https://jwt.io

这是一个迅速图书馆签署您的JSON网络令牌(或JWT):kylef/JSONWebToken.swift

注意:APNs只支持使用ES256算法签名的提供商令牌 。使用其他算法签名的不安全JWT或JWT将被拒绝,并显示一个指示无效提供程序令牌的响应。

来源:APPLE : Provider Authentication Tokens

WWDC 2016 - 会话724:Token Based Authentication

+0

是 “苹果推送通知认证密钥” 必须创造 “苹果推送通知服务SSL” 生产证书? – Sujay

+1

不,这是SSL证书的替代解决方案。 –