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

22

我最近注意到在为给定的iOS客户端创建证书时有一个新选项。

该选项的标题为

Apple推送通知认证密钥(沙盒和生产环境)

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

一个认证密钥可用于多个应用程序,且不会过期。

如何设置此选项?

1个回答

16

基于Apple Push Notification token的身份验证是连接到APNs的提供者证书的替代方法。提供者API支持JSON Web Token(或JWT),这是一种开放标准,可用于将身份验证声明传递到APNs及推送消息。

要生成提供者令牌,请获取用于签署令牌的私钥,如在应用分发指南中介绍的创建通用提供者令牌中所述。您应该构造一个包含10个字符Key ID(kid)的头部的令牌。令牌声明部分包含Issuer(iss),这是一个10个字符的Team ID。您的团队ID和Key ID值可以从您的开发人员帐户中获取。声明还必须包含Issued At(iat),这是UTC时间中从Epoch开始的秒数,表示生成令牌的时间。令牌必须使用椭圆曲线数字签名算法(ECDSA)使用P-256曲线和SHA-256哈希算法(ES256)进行签名,并指定为算法键(alg)中的值。

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

若想了解如何生成签名的 JSON Web Token 及可用库列表,请参考https://jwt.io

这是一个用于为 JSON Web Token(或 JWT)签名的 Swift 库:kylef/JSONWebToken.swift

注意:APNs 仅支持使用 ES256 算法签名的提供商令牌。未加保护的 JWT 或使用其他算法签名的 JWT 将被拒绝,并返回指示无效提供商令牌的响应。

SOURCE : APPLE : 提供商身份验证令牌

WWDC 2016 - Session 724 : 基于令牌的身份验证

注:

最大的区别是密钥方式不会过期,而证书将在一年后过期。


创建“Apple Push Notification service SSL”生产证书是否需要“Apple Push Notification Authentication Key”? - Sujay
1
不,这是SSL证书的另一种解决方案。 - A J

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接