私は最近、特定のiOSクライアント用の証明書を作成するときに新しいオプションに気付きました。
オプションのタイトルは
Apple Push Notification Authentication Key(Sandbox&Production)
サーバー側トークンを生成する認証キーを取得します。これらのトークンは、通知リクエストの証明書の代替として使用できます。
1つの認証キーは複数のアプリに使用でき、有効期限はありません。
これをどのように設定しますか?
Apple Push Notificationトークンベースの認証は、プロバイダー証明書を使用してAPNに接続する代わりになります。プロバイダーAPIは、オープンな標準であるJSON Web Token(またはJWT)をサポートし、プッシュメッセージとともに認証クレームをAPNに渡します。
プロバイダートークンを生成するには、アプリ配布ガイドのユニバーサルプロバイダートークンの作成の説明に従って、トークンに署名するための秘密キーを取得します。 10文字のキーID(子供)を含むヘッダーを持つトークンを作成する必要があります。トークンクレーム部分には、10文字のチームIDである発行者(iss)が含まれています。チームIDとキーIDの値は、開発者アカウントから取得できます。クレームには、トークンが生成されたときのUTCのエポックからの秒数であるIssued At(iat)も含まれます。トークンは、アルゴリズムキー(alg)の値として指定されたP-256カーブとSHA-256ハッシュアルゴリズム(ES256)を使用する楕円曲線デジタル署名アルゴリズム(ECDSA)で署名する必要があります。
{
"alg": "ES256",
"kid": "ABC123DEFG"
}
{
"iss": "DEF123GHIJ",
"iat": 1437179036
}
署名付きJSON Webトークンを生成するために利用可能なライブラリのリストと追加情報については、 https://jwt.io を参照してください
これはSwift JSON Web Token(またはJWT)に署名するためのライブラリ: kylef/JSONWebToken.Swift
注:APNでは、ES256アルゴリズムで署名されたプロバイダートークンのみがサポートされます。安全でないJWTまたは他のアルゴリズムで署名されたJWTは、無効なプロバイダートークンを示す応答で拒否されます。
SOURCE: Apple:プロバイダー認証トークン
WWDC 2016-セッション724: トークンベースの認証
PS:
最大の違いは、証明書が1年後に失効するよりもキーウェイが失効しないことです。