Aracılığıyla paylaş


APNS için belirteç tabanlı (HTTP/2) kimlik doğrulaması

Genel Bakış

Bu makalede, belirteç tabanlı kimlik doğrulaması ile yeni APNS HTTP/2 protokollerinin nasıl kullanılacağı açıklanmaktadır.

Yeni protokolü kullanmanın temel avantajları şunlardır:

  • Belirteç oluşturma nispeten basittir (sertifikalarla karşılaştırıldığında)
  • Daha fazla süre sonu tarihi yok – kimlik doğrulama belirteçlerinizi ve bunların iptalini siz denetlersiniz
  • Yüklerin boyutu artık 4 KB'a kadar çıkabiliyor
  • Zaman uyumlu geri bildirim
  • Apple'ın en son protokolündesiniz – sertifikalar yine de kullanımdan kaldırılmak üzere işaretlenmiş ikili protokolü kullanır

Bu yeni mekanizmayı kullanmak iki adımda gerçekleştirilebilir:

  • Apple Geliştirici hesabı portalından gerekli bilgileri alın.
  • Bildirim hub'ınızı yeni bilgilerle yapılandırın.

Notification Hubs artık APNS ile yeni kimlik doğrulama sistemini kullanacak şekilde ayarlanmıştır.

APNS için sertifika kimlik bilgilerini kullanarak geçiş yaparsanız belirteç özelliklerinin sistemimizdeki sertifikanızın üzerine yazıldığını ancak uygulamanızın sorunsuz bir şekilde bildirim almaya devam ettiğini unutmayın.

Apple'dan kimlik doğrulama bilgilerini alma

Belirteç tabanlı kimlik doğrulamasını etkinleştirmek için Apple Geliştirici hesabınızdaki aşağıdaki özelliklere ihtiyacınız vardır:

Anahtar tanımlayıcısı

Anahtar tanımlayıcısı, Apple Geliştirici hesabınızdaki Sertifikalar, Tanımlayıcılar ve Profiller altındaki Anahtarlar sayfasından alınabilir:

Certificates

Identifiers

Uygulama tanımlayıcısı ve uygulama adı

Uygulama adı ve tanımlayıcısı, geliştirici hesabının Sertifikalar, Tanımlayıcılar ve Profiller sayfasında da kullanılabilir:

Certificates and IDs

.NET SDK'sı veya Azure portalı aracılığıyla yapılandırma

Hub'ınızı en son istemci SDK'mızı kullanarak veya Azure portalında belirteç tabanlı kimlik doğrulaması kullanacak şekilde yapılandırabilirsiniz. Portalda belirteç tabanlı kimlik doğrulamasını etkinleştirmek için Azure portalında oturum açın ve bildirim hub'ınızın Ayarlar > Apple (APNS) paneline gidin. Hub'ınızı tüm ilgili belirteç özellikleriyle güncelleştirmek için Kimlik Doğrulama Modu özelliğinden Belirteç'i seçin.

Configure token

  • Apple Geliştirici hesabınızdan aldığınız özellikleri girin.
  • Uygulama modunu (Üretim veya Korumalı Alan) seçin.
  • APNS kimlik bilgilerinizi güncelleştirmek için Kaydet düğmesine tıklayın.

Belirteç tabanlı kimlik bilgileri aşağıdaki alanlardan oluşur:

  • Anahtar Kimliği: Apple Geliştirici portalında oluşturulan özel anahtarın tanımlayıcısı; örneğin, 2USFGKSKLT.
  • Ekip Kimliği: "Ön Ek" veya "Uygulama Ön Eki" olarak da adlandırılır. Bu, Apple Geliştirici portalındaki kuruluşun tanımlayıcısıdır; örneğin, S4V3D7CHJR.
  • Paket Kimliği: "Uygulama Kimliği" olarak da adlandırılır. Bu, uygulamanın paket tanımlayıcısıdır; örneğin, com.example.myapp. Bir uygulama için yalnızca bir anahtar kullanabileceğinizi unutmayın. Bu değer, bildirim gönderirken HTTP üst bilgisine eşler apns-topic ve belirli bir uygulamayı hedeflemek için kullanılır. değerini apns-topic açıkça ayarlayamazsınız.
  • Belirteç: "Anahtar" veya "Özel Anahtar" olarak da adlandırılır. Bu, Apple Geliştirici portalında oluşturulan .p8 dosyasından elde edilir. Anahtarın APNS etkin olmalıdır (anahtar oluşturulurken Apple Geliştirici portalında seçilir). Değeri NH Portalına/API'sine sağladığınızda, değerden PEM üst bilgisi/alt bilgisi çıkarılmış olmalıdır.
  • Uç nokta: Bu, Notification Hubs portalı dikey penceresindeki bir iki durumlu düğme ve API'deki bir dize alanıdır. Geçerli değerler https://api.development.push.apple.com:443/3/device veya https://api.sandbox.push.apple.com:443/3/device şeklindedir. Notification Hubs, bildirim göndermek için üretim veya korumalı alan ortamı için bu değeri kullanır. Bunun uygulamadaki yetkilendirmeyle aps-environment eşleşmesi gerekir, aksi takdirde oluşturulan APNS cihaz belirteçleri ortamla eşleşmez ve bildirimler gönderilemez.

Doğru kullanımı gösteren bir kod örneği aşağıda verilmiştir:

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

Sonraki adımlar