Verificatie op basis van tokens (HTTP/2) voor APNS
Overzicht
In dit artikel wordt uitgelegd hoe u het nieuwe APNS HTTP/2-protocol gebruikt met verificatie op basis van tokens.
De belangrijkste voordelen van het gebruik van het nieuwe protocol zijn:
- Het genereren van tokens is relatief eenvoudig (vergeleken met certificaten)
- Geen vervaldatums meer: u hebt de controle over uw verificatietokens en hun intrekking
- Nettoladingen kunnen nu maximaal 4 kB zijn
- Synchrone feedback
- U bevindt zich in het nieuwste protocol van Apple: certificaten gebruiken nog steeds het binaire protocol, dat is gemarkeerd voor afschaffing
Het gebruik van dit nieuwe mechanisme kan in twee stappen worden uitgevoerd:
- Haal de benodigde informatie op via de Apple Developer-accountportal.
- Configureer uw Notification Hub met de nieuwe informatie.
Notification Hubs is nu ingesteld op het gebruik van het nieuwe verificatiesysteem met APNS.
Als u bent gemigreerd van het gebruik van certificaatreferenties voor APNS, overschrijven de tokeneigenschappen uw certificaat in ons systeem, maar uw toepassing blijft naadloos meldingen ontvangen.
Verificatiegegevens verkrijgen van Apple
Als u verificatie op basis van tokens wilt inschakelen, hebt u de volgende eigenschappen van uw Apple Developer-account nodig:
Sleutel-id
De sleutel-id kan worden verkregen via de pagina Sleutels onder Certificaten, Id's en profielen in uw Apple Developer-account:
Toepassings-id en toepassingsnaam
De naam en id van de toepassing zijn ook beschikbaar op de pagina Certificaten, Id's en profielen in het ontwikkelaarsaccount.
Configureren via de .NET SDK of Azure Portal
U kunt uw hub configureren voor het gebruik van verificatie op basis van tokens met behulp van onze nieuwste client-SDK of in Azure Portal. Als u verificatie op basis van tokens in de portal wilt inschakelen, meldt u zich aan bij Azure Portal en gaat u naar het deelvenster Instellingen > apple (APNS) van uw Notification Hub. Selecteer Token in de eigenschap Verificatiemodus om uw hub bij te werken met alle relevante tokeneigenschappen.
- Voer de eigenschappen in die u hebt opgehaald uit uw Apple Developer-account.
- Kies de toepassingsmodus (productie of sandbox).
- Klik op de knop Opslaan om uw APNS-referenties bij te werken.
Referenties op basis van tokens bestaan uit de volgende velden:
- Sleutel-id: id van de persoonlijke sleutel die is gegenereerd in de Apple Developer-portal,
2USFGKSKLT
bijvoorbeeld. - Team-id: ook wel het voorvoegsel of het app-voorvoegsel genoemd. Dit is de id voor de organisatie in de Apple Developer-portal; bijvoorbeeld
S4V3D7CHJR
. - Bundel-id: ook wel de 'app-id' genoemd. Dit is de bundel-id voor de toepassing; bijvoorbeeld
com.example.myapp
. Houd er rekening mee dat u slechts één sleutel voor één app kunt gebruiken. Deze waarde wordt toegewezen aan de HTTP-header bij hetapns-topic
verzenden van een melding en wordt gebruikt om de specifieke toepassing te targeten. U kunt de waarde nietapns-topic
expliciet instellen. - Token: ook wel de 'sleutel' of 'persoonlijke sleutel' genoemd. Dit wordt verkregen uit het .p8-bestand dat is gegenereerd op de Apple Developer-portal. Voor de sleutel moet APNS zijn ingeschakeld (die is geselecteerd in de Apple Developer-portal bij het genereren van de sleutel). De waarde moet de PEM-kop- en voettekst ervan hebben verwijderd wanneer u deze opgeeft aan de NH-portal/API.
- Eindpunt: dit is een wisselknop op de blade van de Notification Hubs-portal en een tekenreeksveld in de API. Geldige waarden zijn
https://api.development.push.apple.com:443/3/device
ofhttps://api.sandbox.push.apple.com:443/3/device
. Notification Hubs gebruikt deze waarde voor de productie- of sandboxomgeving voor het verzenden van meldingen. Dit moet overeenkomen met hetaps-environment
recht in de app, anders komen de APNS-apparaattokens die worden gegenereerd niet overeen met de omgeving en kunnen de meldingen niet worden verzonden.
Hier volgt een codevoorbeeld waarin het juiste gebruik wordt geïllustreerd:
NamespaceManager nm = NamespaceManager.CreateFromConnectionString(_endpoint);
string token = "YOUR PRIVATE KEY HERE";
string keyId = "YOUR KEY ID HERE";
string appName = "YOUR APP NAME HERE";
string appId = "YOUR APP ID HERE";
NotificationHubDescription desc = new NotificationHubDescription("PATH TO YOUR HUB");
desc.ApnsCredential = new ApnsCredential(token, keyId, appId, appName);
desc.ApnsCredential.Endpoint = @"https://api.development.push.apple.com:443/3/device";
nm.UpdateNotificationHubAsync(desc);