Uwierzytelnianie oparte na tokenach (HTTP/2) dla usługi APNS

Omówienie

W tym artykule wyjaśniono, jak używać nowego protokołu HTTP/2 usługi APNS z uwierzytelnianiem opartym na tokenach.

Najważniejsze korzyści wynikające z używania nowego protokołu obejmują:

  • Generowanie tokenów jest stosunkowo proste (w porównaniu z certyfikatami)
  • Nie ma więcej dat wygaśnięcia — masz kontrolę nad tokenami uwierzytelniania i ich odwoływaniem
  • Ładunki mogą teraz mieć maksymalnie 4 KB
  • Synchroniczne opinie
  • Korzystasz z najnowszego protokołu firmy Apple — certyfikaty nadal używają protokołu binarnego, który jest oznaczony do wycofania

Za pomocą tego nowego mechanizmu można wykonać w dwóch krokach:

  • Uzyskaj niezbędne informacje z portalu konta dewelopera firmy Apple.
  • Skonfiguruj centrum powiadomień przy użyciu nowych informacji.

Usługa Notification Hubs jest teraz ustawiona na korzystanie z nowego systemu uwierzytelniania w usłudze APNS.

Należy pamiętać, że jeśli przeprowadzono migrację z używania poświadczeń certyfikatu dla usługi APNS, właściwości tokenu zastępują certyfikat w naszym systemie, ale aplikacja będzie nadal bezproblemowo otrzymywać powiadomienia.

Uzyskiwanie informacji o uwierzytelnianiu od firmy Apple

Aby włączyć uwierzytelnianie oparte na tokenach, potrzebne są następujące właściwości z konta dewelopera firmy Apple:

Identyfikator klucza

Identyfikator klucza można uzyskać ze strony Klucze w obszarze Certyfikaty, Identyfikatory i profile na koncie dewelopera firmy Apple:

Certificates

Identifiers

Identyfikator aplikacji i nazwa aplikacji

Nazwa i identyfikator aplikacji są również dostępne na stronie Certyfikaty, Identyfikatory i profile na koncie dewelopera:

Certificates and IDs

Konfigurowanie za pomocą zestawu .NET SDK lub witryny Azure Portal

Centrum można skonfigurować tak, aby używało uwierzytelniania opartego na tokenach przy użyciu naszego najnowszego zestawu SDK klienta lub w witrynie Azure Portal. Aby włączyć uwierzytelnianie oparte na tokenach w portalu, zaloguj się do witryny Azure Portal i przejdź do panelu Ustawienia > Apple (APNS) centrum powiadomień. Wybierz pozycję Token z właściwości Tryb uwierzytelniania, aby zaktualizować centrum przy użyciu wszystkich odpowiednich właściwości tokenu.

Configure token

  • Wprowadź właściwości pobrane z konta dewelopera firmy Apple.
  • Wybierz tryb aplikacji (produkcja lub piaskownica).
  • Kliknij przycisk Zapisz, aby zaktualizować poświadczenia usługi APNS.

Poświadczenia oparte na tokenach składają się z następujących pól:

  • Identyfikator klucza: identyfikator klucza prywatnego wygenerowanego w portalu dla deweloperów firmy Apple, 2USFGKSKLTna przykład .
  • Identyfikator zespołu: nazywany również "Prefiksem" lub "Prefiksem aplikacji". Jest to identyfikator organizacji w portalu dla deweloperów firmy Apple; na przykład S4V3D7CHJR.
  • Identyfikator pakietu: nazywany również identyfikatorem aplikacji. Jest to identyfikator pakietu dla aplikacji; na przykład com.example.myapp. Należy pamiętać, że dla jednej aplikacji można użyć tylko jednego klucza. Ta wartość jest mapowania na apns-topic nagłówek HTTP podczas wysyłania powiadomienia i jest używana do kierowania do określonej aplikacji. Nie można ustawić wartości jawnie apns-topic .
  • Token: nazywany również kluczem "klucz" lub "klucz prywatny". Jest to uzyskiwane z pliku p8 wygenerowanego w portalu dla deweloperów firmy Apple. Klucz musi mieć włączoną usługę APNS (która jest wybrana w portalu dla deweloperów firmy Apple podczas generowania klucza). Wartość musi mieć nagłówek/stopkę PEM rozłożoną z niego po podaniu go do portalu/interfejsu API NH.
  • Punkt końcowy: jest to przełącznik w bloku portalu usługi Notification Hubs i pole ciągu w interfejsie API. Prawidłowe wartości to https://api.development.push.apple.com:443/3/device i https://api.sandbox.push.apple.com:443/3/device. Usługa Notification Hubs używa tej wartości dla środowiska produkcyjnego lub piaskownicy do wysyłania powiadomień. To musi być zgodne z aps-environment uprawnieniem w aplikacji, w przeciwnym razie wygenerowane tokeny urządzenia APNS nie są zgodne ze środowiskiem, a powiadomienia nie będą wysyłane.

Oto przykładowy kod ilustrujący prawidłowe użycie:

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);

Następne kroki