Udostępnij za pośrednictwem


Kompresja identyfikatora SID zasobów w systemie Windows Server 2012 może powodować problemy z autoryzacją na urządzeniach, które nie obsługują kompresji identyfikatora SID zasobów

Ten artykuł pomaga rozwiązać problem występujący podczas uzyskiwania dostępu do udziałów plików hostowanych na urządzeniach, które nie obsługują kompresji identyfikatora SID zasobów.

Oryginalny numer KB: 2774190

Symptomy

Podczas uzyskiwania dostępu do udziałów plików hostowanych na urządzeniach, które nie obsługują kompresji identyfikatora SID zasobów, po wdrożeniu kontrolerów domeny systemu Windows Server 2012 można zaobserwować następujące objawy.

Połączenia z zamapowanych dysków sieciowych przy użyciu formatu \\servername\sharename\subfolder kończą się niepowodzeniem z powodu odmowy dostępu.

Uwaga 16.

Nawiązywanie połączenia z tą samą ścieżką przy użyciu adresu IP zawsze będzie działać.

Dostęp do zasobów kontrolowanych przez członkostwo w grupie zasobów zakończy się niepowodzeniem.

Przyczyna

Ten problem występuje w następujących warunkach:

  • Protokół Kerberos służy do uwierzytelniania sesji użytkownika na urządzeniu.
  • Bilet kerberos używany w konfiguracji sesji został wydany przez centrum dystrybucji kluczy z systemem Windows Server 2012.
  • Urządzenie docelowe nie rozumie kompresji identyfikatora SID zasobu, która jest nową funkcją protokołu Kerberos w systemie Windows Server 2012.
  • Kompresja identyfikatora SID zasobu może nie być rozumiana przez niektóre urządzenia NAS (urządzenia magazynujące dostęp do sieci).

Rozwiązanie

Istnieją dwa sposoby rozwiązania problemu z współdziałaniem kompresji identyfikatora SID zasobów Protokołu Kerberos.

Rozwiązanie 1: (preferowane)

Preferowaną rozwiązaniem dla współdziałania kompresji identyfikatora SID zasobu jest włączenie wyłączonego bitu kompresji grupy zasobów (0x80000) w msDS-SupportedEncryptionTypes atrybutu obiektu w usłudze Active Directory, który jest podmiotem zabezpieczeń reprezentującym kontekst zabezpieczeń usługi docelowej/urządzenia.

Aby utworzyć poprawną wartość, należy wykonać następujące kroki:

  1. Pobierz bieżącą wartość w atrybucie msDS-SupportedEncryptionTypes podmiotu zabezpieczeń.
  2. Wykonaj bitową wartość LUB na bieżącej wartości z 0x80000, aby obliczyć nową wartość.
  3. Zapisz nową wartość atrybutu msDS-SupportedEncryptionTypes podmiotu zabezpieczeń.

Alternatywnie możesz użyć następującego skryptu programu Windows PowerShell, aby wyłączyć kompresję identyfikatora SID zasobów dla danego podmiotu zabezpieczeń:

DisableKerbGroupCompression.ps1

#
#Script to Disable Kerberos Group SID Compression
#param( $principalName)$newValue = 0# Get the AD principal and value
$obj = get-adobject -Filter {(cn -like $principalName)} -Properties *
if($obj -eq $null)
{
Write-Host "Cannot find $principalName in the directory"
break
}$newValue = $value = $obj."msDS-SupportedEncryptionTypes"
$msgBefore =$msgAfter = "Resource group compression status on principal {0}: " -f $principalName
if( ($value -band 0x0080000) -eq 0)
{$msgBefore += "Enabled"}
else
{$msgBefore += "Disabled"}Write-Host $msgBeforeif( ($value -band 0x00080000) -eq 0) #enable the disable bit
{$newValue = $value -bor 0x00080000}if($newValue -ne $value) #update if values are different
{
Set-ADObject $obj -Replace @{"msDS-SupportedEncryptionTypes"=$newValue}if( ($newvalue -band 0x0080000) -eq 0)
{$msgAfter += "Enabled"}
else
{$msgAfter += "Disabled"}Write-Host $msgAfter
}
else
{ Write-Host "Resource group compression did not change."}

Składnia

DisableKerbGroupCompression.ps1 objectName

Rozwiązanie 2

Tej rozdzielczości należy używać tylko wtedy, gdy nie można użyć rozwiązania.

To rozwiązanie wyłącza kompresję identyfikatora SID zasobów na pojedynczym kontrolerze domeny systemu Windows Server 2012 (KDC). To ustawienie należy zastosować do każdego kontrolera domeny systemu Windows Server 2012, aby upewnić się, że kontrolery domeny nie wystawiają biletów korzystających z kompresji SID grupy zasobów.

Kompresja identyfikatora SID zasobu jest domyślnie włączona; można go jednak wyłączyć. Kompresję identyfikatora SID zasobów można wyłączyć w centrum dystrybucji kluczy systemu Windows Server 2012 przy użyciu wartości rejestru DisableResourceGroupsFields w kluczu HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Kdc\Parameters rejestru. Ta wartość rejestru ma typ wartości rejestru DWORD. Podczas ustawiania wartości rejestru na 1 należy całkowicie wyłączyć kompresję identyfikatora SID zasobu. Centrum dystrybucji kluczy odczytuje tę konfigurację podczas tworzenia biletu usługi. Po włączeniu bitu centrum dystrybucji kluczy nie używa kompresji identyfikatora SID zasobów podczas kompilowania biletu usługi.

Więcej informacji

Kompresja identyfikatora SID zasobu centrum dystrybucji kluczy

Uwierzytelnianie Kerberos wstawia identyfikatory zabezpieczeń (SID) podmiotu zabezpieczeń, historię identyfikatorów SID, wszystkie grupy, do których użytkownik jest członkiem, w tym grupy uniwersalne i grupy z domeny zasobów. Podmioty zabezpieczeń z zbyt dużą liczbą członkostw w grupach mają duży wpływ na rozmiar danych uwierzytelniania. Czasami dane uwierzytelniania są większe niż przydzielony rozmiar zgłoszony przez protokół Kerberos do aplikacji. Może to spowodować niepowodzenie uwierzytelniania w niektórych aplikacjach. Identyfikatory SID z domeny zasobów współużytkują tę samą część domeny identyfikatora SID. Te identyfikatory SID można skompresować, podając tylko identyfikator SID domeny zasobów raz dla wszystkich identyfikatorów SID w domenie zasobów.

Kontrolery KDC systemu Windows Server 2012 pomagają zmniejszyć rozmiar pac, korzystając z kompresji identyfikatora SID zasobów. Domyślnie centrum dystrybucji kluczy systemu Windows Server 2012 zawsze kompresuje identyfikatory SID zasobów. Aby skompresować identyfikatory SID zasobów, centrum dystrybucji kluczy przechowuje identyfikator SID domeny zasobów, do której należy zasób docelowy. Następnie wstawia tylko część RID każdego identyfikatora SID zasobu do części ResourceGroupIds danych uwierzytelniania.

Kompresja identyfikatora SID zasobu zmniejsza rozmiar każdego przechowywanego wystąpienia identyfikatora SID zasobu, ponieważ identyfikator SID domeny jest przechowywany raz, a nie z każdym wystąpieniem. Bez kompresji identyfikatora SID zasobu centrum dystrybucji kluczy wstawia wszystkie identyfikatory SID dodane przez domenę zasobów w części Extra-SID struktury PAC, która jest listą identyfikatorów SID. [MS-KILE]: Rozszerzenia protokołu Kerberos

Współdziałanie

Niektóre implementacje protokołu Kerberos mogą nie rozumieć kompresji grupy zasobów i dlatego nie są zgodne. W tych scenariuszach może być konieczne wyłączenie kompresji grupy zasobów, aby umożliwić centrum dystrybucji kluczy systemu Windows Server 2012 współdziałanie z implementacją protokołu Kerberos innej firmy.