我最近在为给定 iOS 客户端创建证书时注意到一个新选项。
该选项的标题是
Apple 推送通知身份验证密钥(沙盒和生产)
获取身份验证密钥以生成服务器端令牌。您可以使用
这些令牌作为您通知的证书的替代品
要求。
一个身份验证密钥可以用于多个应用程序,并且不
到期。
如何进行设置呢?
基于 Apple 推送通知令牌的身份验证是使用提供商证书连接到 APN 的替代方法。提供商 API 支持 JSON Web 令牌(或 JWT)(一种开放标准),可将身份验证声明与推送消息一起传递到 APN。
要生成提供商令牌,请获取用于签名的私钥
令牌,如在应用程序中创建通用提供商令牌中所述
分发指南。您应该构造一个带有标头的令牌
包含 10 个字符的密钥 ID(孩子)。代币声明部分
包含发行者 (iss),它是一个 10 个字符的团队 ID。您的团队 ID
密钥 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 https://jwt.io
这是一个用于签署 JSON Web Token(或 JWT)的快速库:kylef/JSONWebToken.swift https://github.com/kylef/JSONWebToken.swift
注意:仅支持使用 ES256 算法签名的提供商令牌
通过 APN。不安全的 JWT 或使用其他算法签名的 JWT 将被
拒绝并返回指示无效提供商令牌的响应。
来源 :苹果:提供商身份验证令牌 https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingwithAPNs.html
WWDC 2016 - 第 724 场会议:基于令牌的身份验证 https://developer.apple.com/videos/play/wwdc2016/724/
PS:
最大的区别是The Key Way不会过期,而Certificate会在一年后过期。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)