Symptomer
Tenk deg følgende:
-
En administrator har skjemabasert godkjenning (FBA) definert i Microsoft Forefront Threat Management Gateway (TMG) 2010.
-
Unikt navn (DN)-attributtet for en bruker viser en skråstrek (/) og en Active Directory Lightweight Directory Access Protocol LDAP-definerte spesialtegn.
-
Brukeren prøver å endre passordet sitt.
I dette scenariet for endring av passord er ikke vellykket, og brukeren mottar følgende generelle feilmelding:
Enten brukernavnet eller gammelt passord er ikke gyldig, eller det nye passordet oppfyller ikke minimumskravene til kompleksitet. Prøv på nytt.
I tillegg bety sporing i TMG 2010 at ADsOpenObject mislyktes med 0x80005000 (E_ADS_BAD_PATHNAME) eller 0x80072032 (ERROR_DS_INVALID_DN_SYNTAX) fordi spesialtegn i LDAP-forespørselen escape-tegn.
Årsak
Dette problemet oppstår for en hvilken som helst Active Directory-brukerkontoen som DN-attributtet inneholder en Active Directory-spesialtegn og en skråstrek.
Oppløsning
Hvis du vil løse dette problemet, installerer du samleoppdatering 4 for Forefront Threat Management Gateway 2010 Service Pack 2.
Når du har installert denne oppdateringen, kan du konfigurere Threat Management Gateway for å bruke attributtet objectGUID i stedet for DistinguishedName -attributt i Active Directory LDAP-banen for å løse problemet som er beskrevet i denne artikkelen. Følg denne fremgangsmåten hvis du vil aktivere denne funksjonaliteten:
-
Kopier og Lim inn følgende skript i Notisblokk, og deretter lagrer den med navnet "EnableKB2888619.vbs":
set curArray = CreateObject("FPC.Root").GetContainingArray()Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"
Const SE_VPS_NAME = "UseObjectGUIDInLDAPADsPath"
Const SE_VPS_VALUE = 1
Sub SetValue()
' Create the root obect.
Dim root ' The FPCLib.FPC root object
Set root = CreateObject("FPC.Root")
'Declare the other objects needed.
Dim array ' An FPCArray object
Dim VendorSets ' An FPCVendorParametersSets collection
Dim VendorSet ' An FPCVendorParametersSet object
' Obtain references to the array object
' and the network rules collection.
Set array = curArray
Set VendorSets = array.VendorParametersSets
On Error Resume Next
Set VendorSet = VendorSets.Item( SE_VPS_GUID )
If Err.Number <> 0 Then
Err.Clear
' Add the item
Set VendorSet = VendorSets.Add( SE_VPS_GUID )
CheckError
WScript.Echo "New VendorSet added... " & VendorSet.Name
Else
WScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)
End If
If VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then
Err.Clear
VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE
If Err.Number <> 0 Then
CheckError
Else
VendorSets.Save false, true
CheckError
If Err.Number = 0 Then
WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"
End If
End If
Else
WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"
End If
End Sub
Sub CheckError()
If Err.Number <> 0 Then
WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
Err.Clear
End If
End Sub
SetValue
-
Kjør skriptet på ett av medlemmene Threat Management Gateway matrise. Skriptet endringen trer i kraft når du synkroniserer Threat Management Gateway-konfigurasjon. Brannmur service omstart er ikke nødvendig for at endringen skal tre i kraft.
-
Hvis du vil tilbakestille endringene og gå tilbake til den opprinnelige virkemåten, kan du finne følgende linje i skriptet:
Const SE_VPS_VALUE = 1
-
Slik endrer du denne linjen:
Const SE_VPS_VALUE = 0
-
Lagre skriptet, og deretter kjøre skriptet på ett av medlemmene matrise.
Løsningen
Du kan omgå dette problemet ved å fjerne skråstrek eller Active Directory-spesialtegn fra DN-attributtet for brukeren.
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Hvis du vil ha mer informasjon
Escape spesialtegn i Active Directory-attributter er som følger:
-
Komma ()
-
Omvendt skråstrek (\)
-
Nummertegn (#)
-
Plusstegnet (+)
-
Mindre enn-tegnet (<)
-
Større enn logg)
-
Semikolon (;)
-
Anførselstegn (")
-
Likhetstegnet (=)
-
Innledende eller etterfølgende mellomrom
Eksempel på brukerattributter konto:
sAMAccountName: JeffSmith
displayName: Jeff Smith / TMG
distinguishedName: CN = Smith\, Jeff / TMG, OU = støtte, DC = Fabrikam, DC = com
Notater
-
En escape omvendt skråstrek (\) legges automatisk til det unike navnet.
-
Attributtet distinguishedName for denne kontoen inneholder både Active Directory spesialtegn komma (,) og en skråstrek (/).
Referanser
Hvis du vil ha mer informasjon, se følgende:
Se terminologien som Microsoft bruker til å beskrive oppdateringer av programvare.