Ověřování založené na tokenech (HTTP/2) pro APNS

Přehled

Tento článek vysvětluje, jak používat nový protokol APNS HTTP/2 s ověřováním na základě tokenů.

Mezi klíčové výhody použití nového protokolu patří:

  • Generování tokenů je relativně jednoduché (ve srovnání s certifikáty)
  • Žádná další data vypršení platnosti – máte kontrolu nad ověřovacími tokeny a jejich odvoláním.
  • Datové části teď můžou být až 4 kB.
  • Synchronní zpětná vazba
  • Používáte nejnovější protokol Společnosti Apple – certifikáty stále používají binární protokol, který je označen k vyřazení.

Tento nový mechanismus lze provést ve dvou krocích:

  • Získejte potřebné informace z portálu účtu Apple Developer.
  • Nakonfigurujte centrum oznámení s novými informacemi.

Služba Notification Hubs je teď nastavená tak, aby používala nový ověřovací systém s APNS.

Upozorňujeme, že pokud jste migrovali z používání přihlašovacích údajů certifikátu pro APNS, vlastnosti tokenu přepíší váš certifikát v našem systému, ale vaše aplikace bude dál bez problémů přijímat oznámení.

Získání ověřovacích informací od Společnosti Apple

Pokud chcete povolit ověřování na základě tokenů, potřebujete následující vlastnosti ze svého účtu Apple Developer:

Identifikátor klíče

Identifikátor klíče můžete získat ze stránky Klíče v části Certifikáty, Identifikátory a profily ve vašem účtu Apple Developer:

Certificates

Identifiers

Identifikátor aplikace a název aplikace

Název a identifikátor aplikace jsou také k dispozici na stránce Certifikáty, Identifikátory a Profily v účtu vývojáře:

Certificates and IDs

Konfigurace prostřednictvím sady .NET SDK nebo webu Azure Portal

Centrum můžete nakonfigurovat tak, aby používalo ověřování na základě tokenů pomocí naší nejnovější klientské sady SDK nebo na webu Azure Portal. Pokud chcete na portálu povolit ověřování na základě tokenů, přihlaste se k webu Azure Portal a přejděte na panel Nastavení > Apple (APNS) centra oznámení. Výběrem tokenuz vlastnosti Režim ověřování aktualizujte centrum všemi příslušnými vlastnostmi tokenu.

Configure token

  • Zadejte vlastnosti, které jste získali ze svého účtu Apple Developer.
  • Zvolte režim aplikace (produkční nebo sandbox).
  • Kliknutím na tlačítko Uložit aktualizujte přihlašovací údaje služby APNS.

Přihlašovací údaje založené na tokenech se skládají z následujících polí:

  • ID klíče: Identifikátor privátního klíče vygenerovaného na portálu pro vývojáře Apple, 2USFGKSKLTnapříklad .
  • ID týmu: Označuje se také jako "Předpona" nebo "Předpona aplikace". Toto je identifikátor organizace na portálu Apple Developer Portal; například S4V3D7CHJR.
  • ID sady prostředků: Označuje se také jako ID aplikace. Toto je identifikátor sady pro aplikaci; například com.example.myapp. Všimněte si, že pro jednu aplikaci můžete použít jenom jeden klíč. Tato hodnota se při odesílání oznámení mapuje na hlavičku apns-topic HTTP a slouží k cílení na konkrétní aplikaci. Hodnotu apns-topic explicitně nelze nastavit.
  • Token: Označuje se také jako "Klíč" nebo "Privátní klíč". Získáte ho ze souboru .p8 vygenerovaného na portálu apple developer. Klíč musí mít povolený APNS (který je při generování klíče vybraný na portálu Apple Developer Portal). Hodnota musí mít při zadávání do portálu NH Portal nebo rozhraní API pro záhlaví a zápatí PEM od ní odříznuté.
  • Koncový bod: Toto je přepínač v okně portálu Notification Hubs a pole řetězce v rozhraní API. Platné hodnoty jsou https://api.development.push.apple.com:443/3/device nebo https://api.sandbox.push.apple.com:443/3/device. Služba Notification Hubs používá tuto hodnotu pro produkční nebo sandboxové prostředí pro odesílání oznámení. Musí se shodovat s nárokem aps-environment v aplikaci, jinak se vygenerované tokeny zařízení APNS neshodují s prostředím a oznámení se neposílají.

Tady je ukázka kódu ilustrující správné použití:

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

Další kroky