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:
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.
.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.
- 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şlerapns-topic
ve belirli bir uygulamayı hedeflemek için kullanılır. değeriniapns-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
veyahttps://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 yetkilendirmeyleaps-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);