Jogkivonatalapú (HTTP/2) hitelesítés APNS-hez
Áttekintés
Ez a cikk bemutatja, hogyan használhatja az új APNS HTTP/2 protokollt jogkivonatalapú hitelesítéssel.
Az új protokoll használatának fő előnyei a következők:
- A jogkivonat létrehozása viszonylag egyszerű (a tanúsítványokhoz képest)
- Nincs több lejárati dátum – Ön felügyeli a hitelesítési jogkivonatokat és azok visszavonását
- A hasznos adatok mostantól akár 4 KB-osak is lehetnek
- Szinkron visszajelzés
- Ön az Apple legújabb protokollját használja – a tanúsítványok továbbra is a bináris protokollt használják, amely elavuláshoz van megjelölve
Az új mechanizmus használata két lépésben végezhető el:
- Szerezze be a szükséges információkat az Apple Developer-fiók portáljáról.
- Konfigurálja az értesítési központot az új információkkal.
A Notification Hubs mostantól úgy van beállítva, hogy az új hitelesítési rendszert használja az APNS-sel.
Vegye figyelembe, hogy ha az APNS tanúsítvány-hitelesítő adatainak használatával migrált, a jogkivonat tulajdonságai felülírják a tanúsítványt a rendszerünkben, de az alkalmazás továbbra is zökkenőmentesen fogadja az értesítéseket.
Hitelesítési adatok beszerzése az Apple-től
A jogkivonatalapú hitelesítés engedélyezéséhez az Alábbi tulajdonságokra van szüksége az Apple Developer-fiókjából:
Kulcsazonosító
A kulcsazonosító az Apple Developer-fiókjában a Tanúsítványok, Azonosítók & profilok csoport Kulcsok lapján szerezhető be:
Alkalmazásazonosító és alkalmazásnév
Az alkalmazás neve és azonosítója a fejlesztői fiók Tanúsítványok, Azonosítók & profilok lapján is elérhető.
Konfigurálás a .NET SDK-val vagy az Azure Portalon
A központot úgy konfigurálhatja, hogy jogkivonatalapú hitelesítést használjon a legújabb ügyféloldali SDK-val vagy az Azure Portalon. A jogkivonatalapú hitelesítés portálon való engedélyezéséhez jelentkezzen be az Azure Portalra, és lépjen az értesítési központ Beállítások > Apple (APNS) paneljére. Válassza ki a Token lehetőséget a Hitelesítési mód tulajdonságból, és frissítse a központot az összes releváns jogkivonat-tulajdonsággal.
- Adja meg az Apple Developer-fiókjából lekért tulajdonságokat.
- Válassza ki az alkalmazás módot (éles vagy tesztkörnyezet).
- Kattintson a Mentés gombra az APNS hitelesítő adatainak frissítéséhez.
A jogkivonat-alapú hitelesítő adatok a következő mezőkből állnak:
- Kulcsazonosító: Az Apple Fejlesztői portálon létrehozott titkos kulcs azonosítója, például
2USFGKSKLT
. - Csapatazonosító: "Előtagnak" vagy "Alkalmazáselőtagnak" is nevezik. Ez a szervezet azonosítója az Apple Fejlesztői portálon; például
S4V3D7CHJR
. - Csomagazonosító: Más néven "alkalmazásazonosító". Ez az alkalmazás csomagazonosítója; például
com.example.myapp
. Vegye figyelembe, hogy csak egy alkalmazáshoz használhat egy kulcsot. Ez az érték leképezi aapns-topic
HTTP-fejlécet egy értesítés küldésekor, és az adott alkalmazás megcélzására szolgál. Nem állíthatja be explicit módon azapns-topic
értéket. - Token: Más néven "Kulcs" vagy "Titkos kulcs". Ez az Apple Fejlesztői portálon létrehozott .p8 fájlból származik. A kulcsnak engedélyeznie kell az APNS-t (amely a kulcs létrehozásakor az Apple Fejlesztői portálon van kiválasztva). Az értéknek le kell vennie a PEM-fejlécet/élőlábat róla, amikor az NH Portalnak/API-nak adja meg.
- Végpont: Ez egy kapcsoló a Notification Hubs portál paneljén, és egy sztringmező az API-ban. Az érvényes értékek a következők:
https://api.development.push.apple.com:443/3/device
vagyhttps://api.sandbox.push.apple.com:443/3/device
. A Notification Hubs ezt az értéket az éles vagy tesztkörnyezetben használja az értesítések küldéséhez. Ennek meg kell egyeznie azaps-environment
alkalmazás jogosultságával, ellenkező esetben a létrehozott APNS-eszközjogkivonatok nem egyeznek meg a környezettel, és az értesítések nem küldhetőek el.
Íme egy kódminta, amely a helyes használatot szemlélteti:
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);