Bagikan melalui


Keunikan SPN dan UPN

Penulis: Justin Turner, Teknisi Eskalasi Dukungan Senior dengan grup Windows

Catatan

Konten ini ditulis oleh teknisi dukungan pelanggan Microsoft, dan ditujukan untuk administrator berpengalaman dan arsitek sistem yang mencari penjelasan teknis yang lebih dalam tentang fitur dan solusi di Windows Server 2012 R2 daripada topik di TechNet biasanya disediakan. Namun, itu belum mengalami lolos pengeditan yang sama, sehingga beberapa bahasa mungkin tampak kurang dipoles daripada apa yang biasanya ditemukan di TechNet.

Gambaran Umum

Pengendali Domain yang menjalankan Windows Server 2012 R2 memblokir pembuatan nama perwakilan layanan duplikat (SPN) dan nama prinsipal pengguna (UPN). Ini termasuk jika pemulihan atau reanimasi objek yang dihapus atau penggantian nama objek akan menghasilkan duplikat.

Latar belakang

Nama Prinsipal Layanan Duplikat (SPN) umumnya terjadi dan mengakibatkan kegagalan autentikasi dan dapat menyebabkan pemanfaatan CPU LSASS yang berlebihan. Tidak ada metode dalam kotak untuk memblokir penambahan SPN atau UPN duplikat. *

Duplikat nilai UPN memutus sinkronisasi antara AD lokal dan Office 365.

*Setspn.exe umumnya digunakan untuk membuat SPN baru, dan secara fungsional dibangun ke dalam versi yang dirilis dengan Windows Server 2008 yang menambahkan pemeriksaan duplikat.

Tabel SEQ Tabel \* ARABIC 1: Keunikan UPN dan SPN

Fitur Komentar
Keunikan UPN UPN duplikat memutuskan sinkronisasi akun AD lokal dengan layanan berbasis ID Microsoft Entra seperti Office 365.
Keunikan SPN Kerberos memerlukan SPN untuk autentikasi bersama. SPN duplikat mengakibatkan kegagalan autentikasi.

Untuk informasi selengkapnya tentang persyaratan keunikan untuk UPN dan SPN, lihat Batasan Keunikan.

Gejala

Kode kesalahan 8467 atau 8468 atau heks, simbolis, atau string yang setara dicatat dalam berbagai dialog di layar dan dalam peristiwa ID 2974 di log peristiwa Layanan Direktori. Upaya untuk membuat UPN atau SPN duplikat hanya diblokir dalam keadaan berikut:

  • Penulisan diproses oleh DC Windows Server 2012 R2

Tabel SEQ Tabel \* ARABIC 2: Kode kesalahan keunikan UPN dan SPN

Decimal Hex Simbolis String
8647 21C7 ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST Operasi gagal karena nilai SPN yang disediakan untuk penambahan/modifikasi tidak unik di seluruh forest.
8648 21C8 ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST Operasi gagal karena nilai UPN yang disediakan untuk penambahan/modifikasi tidak unik di seluruh hutan.

Pembuatan pengguna baru gagal jika UPN tidak unik

DSA.msc

Nama masuk pengguna yang Anda pilih sudah digunakan di perusahaan ini. Pilih nama log masuk lain, lalu coba lagi.

Cuplikan layar yang memperlihatkan pesan yang mengatakan nama masuk yang Anda pilih sudah digunakan.

Ubah akun yang sudah ada:

Nama masuk pengguna yang ditentukan sudah ada di perusahaan. Tentukan yang baru, baik dengan mengubah awalan atau memilih akhiran yang berbeda dari daftar.

Cuplikan layar yang memperlihatkan pesan yang mengatakan nama masuk yang Anda gunakan sudah ada di perusahaan.

Pusat Administratif Direktori Aktif (DSAC.exe)

Upaya untuk membuat pengguna baru di Pusat Administratif Direktori Aktif dengan UPN yang sudah ada mengembalikan kesalahan berikut.

Cuplikan layar yang memperlihatkan pesan yang mengatakan bahwa pengguna baru tidak dibuat.

Gambar GAMBAR SEQ \* Kesalahan ARABIC 1 ditampilkan di Pusat Administratif AD saat pembuatan pengguna baru gagal karena UPN duplikat

Sumber Peristiwa 2974: ActiveDirectory_DomainService

Cuplikan layar yang memperlihatkan

Gambar Gambar SEQ \* ID Peristiwa ARABIC 2974 dengan kesalahan 8648

Peristiwa 2974 mencantumkan nilai yang diblokir dan daftar satu atau beberapa objek (hingga 10) yang sudah berisi nilai tersebut. Dalam gambar berikut, Anda dapat melihat bahwa nilai dhunt@blue.contoso.com atribut UPN sudah ada pada empat objek lain. Karena ini adalah fitur baru di Windows Server 2012 R2, pembuatan UPN dan SPN duplikat yang tidak disengaja di lingkungan campuran masih akan terjadi ketika DC tingkat bawah memproses upaya penulisan.

Cuplikan layar yang memperlihatkan ID Peristiwa ARABIC 2974 dengan kesalahan 8648.

Gambar SEQ Gambar \* ARABIC 3 Peristiwa 2974 memperlihatkan semua objek yang berisi UPN duplikat

Tip

Tinjau ID peristiwa 2974 secara berkala untuk:

  • mengidentifikasi upaya untuk membuat UPN atau SPN duplikat
  • mengidentifikasi objek yang sudah berisi duplikat

8648 = "Operasi gagal karena nilai UPN yang disediakan untuk penambahan/modifikasi tidak unik di seluruh hutan."

SetSPN:

Setspn.exe memiliki deteksi SPN duplikat bawaan karena rilis Windows Server 2008 saat menggunakan opsi "-S ". Namun, Anda dapat melewati deteksi SPN duplikat dengan menggunakan opsi "-A ". Pembuatan SPN duplikat diblokir saat menargetkan DC Windows Server 2012 R2 menggunakan SetSPN dengan opsi -A. Pesan kesalahan yang ditampilkan sama dengan pesan yang ditampilkan saat menggunakan opsi -S: "SpN Duplikat ditemukan, operasi pembatalan!"

ADSIEDIT:

Operation failed. Error code: 0x21c8
The operation failed because UPN value provided for addition/modification is not unique forest-wide.
000021C8: AtrErr: DSID-03200BBA, #1: 0: 000021C8: DSID-03200BBA, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 90290 (userPrincipalName)

Cuplikan layar yang menunjukkan bahwa operasi gagal dengan kode kesalahan 0x21c8.

Gambar Gambar SEQ \* Pesan Kesalahan ARABIC 4 ditampilkan di ADSIEdit saat penambahan UPN duplikat diblokir

Windows PowerShell

Windows Server 2012 R2:

Cuplikan layar yang memperlihatkan pesan yang menunjukkan bahwa operasi gagal.

PowerShell yang berjalan dari Server 2012 menargetkan Windows Server 2012 R2 DC:

Cuplikan layar yang memperlihatkan kesalahan yang tidak diketahui.

DSAC.exe berjalan pada Windows Server 2012 yang menargetkan Windows Server 2012 R2 DC:

Cuplikan layar yang memperlihatkan kesalahan pembuatan pengguna pada non-Windows Server 2012 R2 saat menargetkan Windows Server 2012 R2 DC.

Gambar GAMBAR SEQ \* Kesalahan pembuatan pengguna DSAC ARABIC 5 pada non-Windows Server 2012 R2 saat menargetkan Windows Server 2012 R2 DC

Cuplikan layar yang memperlihatkan kesalahan modifikasi pengguna pada non-Windows Server 2012 R2 saat menargetkan Windows Server 2012 R2 DC.

Gambar GAMBAR SEQ \* Kesalahan modifikasi pengguna DSAC ARABIC 6 pada non-Windows Server 2012 R2 saat menargetkan Windows Server 2012 R2 DC

Pemulihan objek yang akan mengakibatkan UPN duplikat gagal:

Cuplikan layar yang memperlihatkan cara memulihkan objek.

Cuplikan layar yang menunjukkan bahwa operasi gagal karena nilai UPN yang disediakan untuk penambahan/modifikasi tidak unik di seluruh hutan.

Tidak ada peristiwa yang dicatat ketika objek gagal dipulihkan karena UPN /SPN duplikat.

UPN objek harus unik agar dapat dipulihkan.

  1. Identifikasi UPN yang ada pada objek di Keranjang Sampah

  2. Mengidentifikasi semua objek yang memiliki nilai yang sama

  3. Menghapus UPN duplikat

Identifikasi UPN yang bertentangan pada objek yang dihapusGunakan repadmin.exe

Repadmin /showattr DCName "DN of deleted objects container" /subtree /filter:"(msDS-LastKnownRDN=<NAME>)" /deleted /atts:userprincipalname
repadmin /showattr DCName "CN=Deleted Objects,DC=blue,DC=contoso,DC=com" /subtree /filter:"(msDS-LastKnownRDN=Dianne Hunt2)" /deleted /atts:userprincipalname

C:\>repadmin /showattr winbluedc1 "cn=deleted objects,dc=blue,dc=contoso,dc=com" /subtree /filter:"(msds-lastknownrdn=Dianne Hunt2)" /deleted /atts:userprincipalname
DN: CN=Dianne Hunt2\0ADEL:dd3ab8a4-3005-4f2f-814f-d6fc54a1a1c0,CN=Deleted Object
s,DC=blue,DC=contoso,DC=com
    1> userPrincipalName: dhunt@blue.contoso.com

Untuk mengidentifikasi semua objek dengan UPN yang sama:Menggunakan Repadmin.exe

repadmin /showattr WinBlueDC1 "DC=blue,DC=contoso,DC=com" /subtree /filter:"(userPrincipalName=dhunt@blue.contoso.com)" /deleted /atts:DN

C:\>repadmin /showattr winbluedc1 "dc=blue,dc=contoso,dc=com" /subtree /filter:"(userPrincipalName=dhunt@blue.contoso.com)" /deleted /atts:DN
DN: CN=Administrator,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser1,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser10,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser100,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=Dianne Hunt,OU=Marketing,DC=blue,DC=contoso,DC=com
DN: CN=Dianne Hunt2\0ADEL:dd3ab8a4-3005-4f2f-814f-d6fc54a1a1c0,CN=Deleted Objects,DC=blue,DC=contoso,DC=com

Tip

Parameter /deleted yang sebelumnya tidak terdokumentasi di repadmin.exe digunakan untuk menyertakan objek yang dihapus dalam tataan hasil

  • Buka Pusat Administratif Direktori Aktif dan navigasikan ke Pencarian Global

  • Pilih tombol radio Konversi ke LDAP

  • Jenis (userPrincipalName=ConflictingUPN)

    • Ganti ConflictingUPN dengan UPN aktual yang berkonflik
  • Pilih Terapkan

Cuplikan layar yang memperlihatkan halaman Pencarian Global.

Menggunakan Windows PowerShell

Get-ADObject -LdapFilter "(userPrincipalName=dhunt@blue.contoso.com)" -IncludeDeletedObjects -SearchBase "DC=blue,DC=Contoso,DC=com" -SearchScope Subtree -Server winbluedc1.blue.contoso.com

Keunikan SPN dan UPN

Jika objek perlu dipulihkan, Anda harus menghapus UPN duplikat dari objek lain. Hanya untuk satu objek, cukup mudah untuk menggunakan ADSIEdit untuk menghapus duplikat. Jika ada beberapa objek dengan duplikat, maka Windows PowerShell mungkin menjadi alat yang lebih baik untuk digunakan.

Untuk menghapus atribut UserPrincipalName menggunakan Windows PowerShell:

Cuplikan layar yang memperlihatkan operasi gagal dengan kode kesalahan 0x21c7.

Catatan

Atribut userPrincipalName adalah atribut bernilai tunggal, sehingga prosedur ini hanya akan menghapus UPN duplikat.

SpN Duplikat

Cuplikan layar yang memperlihatkan pesan kesalahan yang ditampilkan di ADSIEdit saat penambahan SPN duplikat diblokir.

Gambar Gambar SEQ \* Pesan Kesalahan ARABIC 8 ditampilkan di ADSIEdit saat penambahan SPN duplikat diblokir

Masuk ke log peristiwa Layanan Direktori adalah ID peristiwa ActiveDirectory_DomainService 2974.

Operation failed. Error code: 0x21c7
The operation failed
The attribute value provided is not unique in the forest or partition. Attribute:
servicePrincipalName Value=<SPN>
<Object DN> Winerror: 8467

Cuplikan layar yang memperlihatkan kesalahan yang dicatat saat pembuatan SPN duplikat diblokir.

Gambar Gambar SEQ \* Kesalahan ARABIC 9 dicatat saat pembuatan SPN duplikat diblokir

Alur kerja

  • Jika DC == GC

    • Tidak diperlukan panggilan offbox, kueri dapat dipenuhi secara lokal

    • Kasus UPN

      • Mengkueri indeks UPN di seluruh hutan lokal untuk UPN yang disediakan (userPrincipalName; indeks global)

        • Jika entri dikembalikan == 0 -> tulis berlanjut

        • Jika entri dikembalikan !=0 -> penulisan gagal

          • Kejadian dicatat

          • Juga mengembalikan kesalahan yang diperluas:

            • 8648:

              ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST

    • Kasus SPN

      • Mengkueri indeks SPN di seluruh hutan lokal untuk SPN yang disediakan (servicePrincipalName; indeks global)

        • Jika entri dikembalikan == 0 -> tulis berlanjut

        • Jika entri dikembalikan !=0 -> penulisan gagal

          • Kejadian dicatat

          • Juga mengembalikan kesalahan yang diperluas:

            • 8647:

              ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST

  • Jika DC != GC

    • Panggilan offbox yang diinginkan tetapi tidak penting, yaitu, ini adalah pemeriksaan keunikan upaya terbaik

      • Periksa hasil terhadap DIT lokal hanya jika GC tidak dapat ditemukan

      • Peristiwa yang dicatat untuk menunjukkan

    • Kasus UPN

      • Kirim kueri LDAP terhadap GC terdekat? mengkueri indeks UPN di seluruh hutan GC untuk UPN yang disediakan (userPrincipalName; indeks global)

        • Jika entri dikembalikan == 0 -> tulis berlanjut

        • Jika entri dikembalikan !=0 -> penulisan gagal

          • Kejadian dicatat

          • Juga mengembalikan kesalahan yang diperluas:

            • 8648:

              ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST

    • Kasus SPN

      • Kirim kueri LDAP terhadap GC terdekat? mengkueri indeks SPN di seluruh hutan GC untuk SPN yang disediakan (servicePrincipalName; indeks global)

        • Jika entri dikembalikan == 0 -> tulis berlanjut

        • Jika entri dikembalikan !=0 -> penulisan gagal

          • Kejadian dicatat

          • Juga mengembalikan kesalahan yang diperluas:

            • 8647:

              ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST

Ketika objek yang dihapus direanimasi, nilai SPN atau UPN yang ada diperiksa keunikannya. Jika duplikat ditemukan, permintaan gagal.

  • Untuk perubahan atribut tertentu seperti Nama Host DNS, Nama Akun SAM, dll., ketika modifikasi dibuat, SPN diperbarui sesuai. Dalam prosesnya, SPN usang dihapus dan SPN baru dibangun dan ditambahkan ke database. Modifikasi atribut yang diperlukan di mana jalur ini dipicu adalah:

    • ATT_DNS_HOST_NAME

    • ATT_MS_DS_ADDITIONAL_DNS_HOST_NAME

    • ATT_SAM_ACCOUNT_NAME

    • ATT_MS_DS_ADDITIONAL_SAM_ACCOUNT_NAME

    • ATT_SERVER_REFERENCE_BL

    • ATT_USER_ACCOUNT_CONTROL

Jika salah satu nilai SPN baru adalah duplikat, kami gagal modifikasi. Dari daftar di atas, atribut penting adalah ATT_DNS_HOST_NAME (Nama mesin) dan ATT_SAM_ACCOUNT_NAME (Nama Akun SAM).

Coba Ini: Menjelajahi keunikan SPN dan UPN

Ini adalah yang pertama dari beberapa aktivitas "Coba Ini" dalam modul. Tidak ada panduan lab terpisah untuk modul ini. Aktivitas Coba Ini adalah aktivitas bentuk bebas yang memungkinkan Anda menjelajahi materi pelajaran di lingkungan lab. Anda memiliki opsi untuk mengikuti perintah atau keluar dari skrip dan membuat aktivitas Anda sendiri.

Catatan

  • Ini adalah yang pertama dari beberapa aktivitas "Coba Ini".
  • Tidak ada panduan lab terpisah untuk modul ini.
  • Kegiatan Coba Ini pada dasarnya adalah kegiatan bentuk bebas yang memungkinkan Anda menjelajahi materi pelajaran di lingkungan lab.
  • Anda memiliki opsi untuk mengikuti perintah atau keluar dari skrip dan membuat aktivitas Anda sendiri.
  • Meskipun tidak semua bagian memiliki perintah Coba Ini , Anda masih dianjurkan untuk menjelajahi konten pelajaran di lab jika sesuai.

Bereksperimenlah dengan keunikan SPN dan UPN. Ikuti perintah ini, atau selesaikan perintah Anda sendiri.

  1. Membuat pengguna baru dengan UPN

  2. Membuat akun dengan SPN

  3. Buat pengguna baru dengan UPN yang sudah ditentukan sebelumnya atau ubah UPN akun yang ada. Lakukan hal yang sama untuk SPN di akun lain

    1. Mengisi akun pengguna yang sudah ada dengan UPN yang sudah digunakan

      1. Menggunakan PowerShell, ADSIEDIT, atau Pusat Administratif Direktori Aktif (DSAC.exe)
    2. Mengisi akun yang sudah ada dengan SPN yang sudah digunakan

      1. Menggunakan Windows PowerShell, ADSIEDIT, atau SetSPN
  4. Amati kesalahan

Opsional

  1. Verifikasi dengan instruktur ruang kelas bahwa tidak masalah untuk mengaktifkan Keranjang Sampah AD di Pusat Administratif Direktori Aktif. Jika demikian, lanjutkan ke langkah berikutnya.

  2. Mengisi UPN pada akun pengguna

  3. Menghapus akun

  4. Isi akun lain dengan UPN yang sama dengan akun yang dihapus

  5. Mencoba menggunakan GUI Keranjang Sampah untuk memulihkan akun

  6. Bayangkan Anda telah disajikan dengan kesalahan yang Anda lihat di langkah sebelumnya. (dan tidak memiliki riwayat langkah-langkah yang baru saja Anda lakukan) Tujuan Anda adalah menyelesaikan pemulihan akun. Lihat buku kerja, misalnya, langkah-langkah.