web-dev-qa-db-fra.com

Apple Clé d'authentification de notification push (bac à sable et production)

J'ai récemment remarqué une nouvelle option lors de la création d'un certificat pour un client iOS donné.

L'option est intitulée

Clé d'authentification de notification push Apple (Sandbox & Production)

Obtenez une clé d'authentification pour générer des jetons côté serveur. Vous pouvez utiliser ces jetons comme alternative aux certificats pour vos demandes de notification.

Une clé d'authentification peut être utilisée pour plusieurs applications et n'expire pas.

Comment procéder pour mettre cela en place?

22
William Bing Hua

L'authentification basée sur les jetons Apple Push Notification est une alternative à l'utilisation de certificats de fournisseur pour se connecter aux APN. L'API du fournisseur prend en charge JSON Web Token (ou JWT), une norme ouverte, pour transmettre les revendications d'authentification aux APN avec le message Push.

Pour générer un jeton de fournisseur, obtenez une clé privée pour signer le jeton, comme décrit dans Création d'un guide de distribution d'application Tokenin pour fournisseur universel. Vous devez construire un jeton avec en-tête contenant un identifiant de clé à 10 caractères (enfant). La partie des revendications de jeton contient l'émetteur (iss) qui est un ID d'équipe à 10 caractères. Vos valeurs Team ID et Key ID peuvent être obtenues à partir de votre compte de développeur. Les revendications doivent également contenir Issued At (iat), qui est le nombre de secondes de Epoch en UTC lorsque le jeton a été généré. Le jeton doit être signé avec l'algorithme de signature numérique à courbe elliptique (ECDSA) à l'aide de la courbe P-256 et de l'algorithme de hachage SHA-256 (ES256), spécifié en tant que valeur dans la clé d'algorithme (alg).

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

Pour plus d'informations ainsi que la liste des bibliothèques disponibles pour générer des jetons Web JSON signés, reportez-vous à https://jwt.io

Il s'agit d'une bibliothèque Swift pour signer votre jeton Web JSON (ou JWT): kylef/JSONWebToken.Swift

Remarque: Seuls les jetons des fournisseurs signés avec l'algorithme ES256 sont pris en charge par les APN. Le JWT non sécurisé ou le JWT signé avec d'autres algorithmes sera rejeté avec une réponse indiquant un jeton de fournisseur non valide.

SOURCE: Apple: jetons d'authentification du fournisseur

WWDC 2016 - Session 724: authentification basée sur les jetons

PS:

La plus grande différence est que The Key Way ne sera pas expiré que le certificat expirera après un an.

15
gunjot singh