【发布时间】:2017-02-01 23:18:28
【问题描述】:
我最近在为给定的 iOS 客户端创建证书时发现了一个新选项。
选项的标题
Apple 推送通知身份验证密钥(沙盒和生产)
获取身份验证密钥以生成服务器端令牌。您可以使用 这些令牌作为您通知的证书的替代品 要求。
一个身份验证密钥可用于多个应用程序,但不能 过期。
如何进行设置?
【问题讨论】:
标签: ios iphone swift push-notification
我最近在为给定的 iOS 客户端创建证书时发现了一个新选项。
选项的标题
Apple 推送通知身份验证密钥(沙盒和生产)
获取身份验证密钥以生成服务器端令牌。您可以使用 这些令牌作为您通知的证书的替代品 要求。
一个身份验证密钥可用于多个应用程序,但不能 过期。
如何进行设置?
【问题讨论】:
标签: ios iphone swift push-notification
Apple Push Notification 基于令牌的身份验证是使用提供者证书连接到 APN 的替代方法。提供者 API 支持 JSON Web Token(或 JWT),一种开放标准,将身份验证声明与推送消息一起传递给 APN。
要生成提供者令牌,请获取用于签署 如在应用程序中创建通用提供程序令牌中所述的令牌 分发指南。您应该构造一个带有标头的令牌 包含 10 个字符的密钥 ID(孩子)。令牌声明部分 包含 Issuer (iss),它是一个 10 个字符的团队 ID。您的团队 ID 和 Key ID 值可以从您的开发者帐户中获取。这 索赔还应包含 Issued At (iat),即 生成令牌时距 UTC 纪元的秒数。令牌必须 使用椭圆曲线数字签名算法 (ECDSA) 进行签名 使用 P-256 曲线和 SHA-256 哈希算法 (ES256), 指定为算法键 (alg) 中的值。
{
"alg": "ES256",
"kid": "ABC123DEFG"
}
{
"iss": "DEF123GHIJ",
"iat": 1437179036
}
有关其他信息以及用于生成签名 JSON Web 令牌的可用库列表,请参阅https://jwt.io
这是一个用于签署 JSON Web Token(或 JWT)的快速库:kylef/JSONWebToken.swift
注意:仅支持使用 ES256 算法签名的提供者令牌 通过 APNs。不安全的 JWT 或使用其他算法签名的 JWT 将 以指示无效提供者令牌的响应被拒绝。
来源:APPLE : Provider Authentication Tokens
WWDC 2016 - 会议 724:Token Based Authentication
PS:
最大的区别是Key Way不会过期,而不是Certificate会在一年后过期。
【讨论】: