Bagikan melalui


Bagaimana Layanan Mendaftarkan SPN-nya

Sebelum klien dapat menggunakan SPN untuk mengautentikasi instans layanan, SPN harus terdaftar di akun pengguna atau komputer yang akan digunakan instans layanan untuk masuk. Biasanya, pendaftaran SPN dilakukan oleh program penginstalan layanan yang berjalan dengan hak istimewa administrator domain.

Alat penginstal layanan yang menginstal instans layanan di komputer host biasanya melakukan prosedur berikut.

Untuk mendaftarkan SPN untuk instans layanan

  1. Panggil fungsi DsGetSpn untuk membuat satu atau beberapa SPN unik untuk instans layanan. Untuk informasi selengkapnya, lihat Format Nama untuk SPN Unik.
  2. Panggil fungsi DsWriteAccountSpn untuk mendaftarkan nama di akun masuk layanan.

DsWriteAccountSpn mendaftarkan SPN sebagai properti objek akun pengguna atau komputer di direktori. objek pengguna dan komputer memiliki atribut servicePrincipalName , yang merupakan atribut multinilai untuk menyimpan semua SPN yang terkait dengan akun pengguna atau komputer. Jika layanan berjalan di bawah akun pengguna, SPN disimpan di atribut servicePrincipalName dari akun tersebut. Jika layanan berjalan di akun LocalSystem, SPN disimpan di atribut servicePrincipalName dari akun komputer host layanan. Pemanggil DsWriteAccountSpn harus menentukan nama khusus objek akun tempat SPN disimpan.

Untuk memastikan bahwa SPN terdaftar aman, atribut servicePrincipalName tidak dapat ditulis secara langsung; hanya dapat ditulis dengan memanggil DsWriteAccountSpn. Pemanggil harus memiliki akses tulis ke atribut servicePrincipalName dari akun target. Biasanya, akses tulis diberikan secara default hanya untuk administrator domain. Namun, ada kasus khusus di mana sistem memungkinkan layanan yang berjalan di bawah akun LocalSystem untuk mendaftarkan SPN sendiri di akun komputer host layanan. Dalam hal ini, SPN yang ditulis harus memiliki formulir "<kelas> layanan/<host>" dan "<host>" harus nama DNS komputer lokal.

DsWriteAccountSpn juga dapat menghapus SPN dari akun. Parameter operasi menunjukkan apakah SPN akan ditambahkan ke akun, dihapus dari akun, atau digunakan untuk sepenuhnya mengganti semua SPN saat ini untuk akun tersebut. Saat instans layanan dihapus instalasinya, hapus SPN apa pun yang terdaftar untuk instans tersebut.

Untuk informasi selengkapnya dan contoh kode yang mendaftarkan atau membatalkan pendaftaran SPN layanan, lihat Mendaftarkan SPN untuk Layanan.

Layanan berbasis host yang menggunakan format SPN sederhana "<kelas<>/host> layanan", memiliki opsi untuk menggunakan fungsi DsServerRegisterSpn, yang membuat dan mendaftarkan SPN untuk instans layanan. DsServerRegisterSpn adalah fungsi pembantu yang memanggil DsGetSpn dan DsWriteAccountSpn.

Untuk informasi selengkapnya, lihat Akun Masuk Layanan.