Bagikan melalui


Autentikasi berbasis token (HTTP/2) untuk APNS

Gambaran Umum

Artikel ini menjelaskan cara menggunakan protokol APNS HTTP/2 baru dengan autentikasi berbasis token.

Manfaat utama menggunakan protokol baru meliputi:

  • Pembuatan token relatif sederhana (dibandingkan dengan sertifikat)
  • Tidak ada lagi tanggal kedaluwarsa - Anda mengendalikan token autentikasi Anda dan pencabutannya
  • Payload sekarang bisa sampai 4 KB
  • Umpan balik sinkron
  • Anda berada di protokol terbaru Apple - sertifikat masih menggunakan protokol biner, yang ditandai untuk penghentian

Menggunakan mekanisme baru ini dapat dilakukan dalam dua langkah:

  • Dapatkan informasi yang diperlukan dari portal akun Apple Developer.
  • Konfigurasikan hub notifikasi Anda dengan informasi baru.

Microsoft Azure Notification Hubs sekarang diatur untuk menggunakan sistem autentikasi baru dengan APNS.

Perhatikan bahwa jika Anda bermigrasi dari menggunakan informasi masuk sertifikat untuk APNS, properti token menimpa sertifikat Anda di sistem kami, tetapi aplikasi Anda terus menerima pemberitahuan dengan mulus.

Mendapatkan informasi autentikasi dari Apple

Untuk mengaktifkan autentikasi berbasis token, Anda memerlukan properti berikut dari akun Apple Developer Anda:

Pengidentifikasi kunci

Pengidentifikasi kunci dapat diperoleh dari halaman Kunci di bawah Sertifikat, Pengidentifikasi, &Profil, di akun Apple Developer Anda:

Certificates

Identifiers

Pengidentifikasi aplikasi dan nama aplikasi

Nama aplikasi dan pengidentifikasi juga tersedia di halamanSertifikat, Pengidentifikasi &Profil di akun pengembang:

Certificates and IDs

Konfigurasikan melalui .NET SDK atau portal Microsoft Azure

Anda dapat mengonfigurasi hub Anda untuk menggunakan autentikasi berbasis token menggunakan SDK klien terbarukami, atau di portal Microsoft Azure. Untuk mengaktifkan autentikasi berbasis token di portal, masuk ke portal Microsoft Azure dan buka panel Pengaturan > Apple (APNS) hub notifikasi Anda. Pilih Token dari properti Mode Autentikasi untuk memperbarui hub Anda dengan semua properti token yang relevan.

Configure token

  • Masukkan properti yang Anda ambil dari akun Developer Apple Anda.
  • Pilih mode aplikasi(Produksi atau Sandbox).
  • Klik tombol Simpan untuk memperbarui informasi masuk APNS Anda.

Informasi masuk berbasis token terdiri dari bidang berikut:

  • ID Kunci: Pengidentifikasi kunci privat yang dihasilkan di portal Pengembang Apple; misalnya, 2USFGKSKLT.
  • ID Tim: Disebut juga "Awalan" atau "Awalan Aplikasi." ID ini adalah pengidentifikasi untuk organisasi di portal Pengembang Apple; misalnya, S4V3D7CHJR.
  • ID Bundel: Juga disebut "ID Aplikasi". Ini adalah pengidentifikasi bundel untuk aplikasi; misalnya, com.example.myapp. Perhatikan bahwa Anda hanya dapat menggunakan satu kunci untuk satu aplikasi. Nilai ini memetakan ke apns-topicheader HTTP saat mengirim pemberitahuan, dan digunakan untuk menargetkan aplikasi tertentu. Anda tidak dapat menetapkan nilai apns-topic secara eksplisit.
  • Token: Disebut juga "Kunci" atau "Kunci Privat." Token ini diperoleh dari file .p8 yang dihasilkan di portal Pengembang Apple. Kunci harus mengaktifkan APNS (yang dipilih di portal Pengembang Apple saat menghasilkan kunci). Nilai harus memiliki header/footer PEM yang dilucuti saat Anda memasoknya ke Portal/API NH.
  • Titik Akhir: Ini adalah pengalih di bilah portal Notification Hubs, dan bidang string di API. Nilai yang valid adalah https://api.development.push.apple.com:443/3/device atau https://api.sandbox.push.apple.com:443/3/device. Microsoft Azure Notification Hubs menggunakan nilai ini untuk lingkungan produksi atau sandbox, untuk mengirim pemberitahuan. Ini harus aps-environment sesuai dengan penetapan di aplikasi, jika tidak token perangkat APNS yang dihasilkan tidak cocok dengan lingkungan, dan pemberitahuan gagal dikirim.

Berikut adalah contoh kode yang mengilustrasikan penggunaan yang benar:

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

Langkah berikutnya