現象
次のような状況で問題が発生します。
-
管理者は、フォーム ベース認証 (FBA) で Microsoft Forefront 脅威管理ゲートウェイ (TMG) 2010 のセットアップを持っています。
-
ユーザーの識別名 (DN) 属性には、スラッシュ (/) と Active Directory ライトウェイト ディレクトリ アクセス プロトコル LDAP で定義されている特殊な文字が含まれています。
-
ユーザーが自分のパスワードを変更しようとするとします。
このシナリオでは、パスワードの変更が適切に行われ、次の一般的なエラー メッセージが表示されます。
ユーザー名または古いパスワードが正しくないか、新しいパスワードが複雑さの最小要件を満たしていません。もう一度やり直してください。
さらに、TMG 2010 でのトレースは、LDAP 要求で特殊文字をエスケープするために、無効が 0x80005000 (E_ADS_BAD_PATHNAME) または 0x80072032 (ERROR_DS_INVALID_DN_SYNTAX) によって失敗したことを示します。
原因
DN 属性では、Active Directory の特殊文字、スラッシュ文字が含まれている任意の Active Directory ユーザー アカウントには、この問題が発生します。
解決方法
この更新プログラムを適用した後、Forefront 脅威管理ゲートウェイ 2010 Service Pack 2 のプログラムのロールアップ 4をインストールするには、この問題を解決するには、 objectGUID属性を使用して、ではなく脅威管理ゲートウェイを構成することができます。識別名この資料に記載されている問題を解決するのには Active Directory LDAP パス内の属性です。この機能を有効にするには、次の手順を実行します。
-
コピーし、メモ帳に次のスクリプトを貼り付けると、それを"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 = 1Sub SetValue()' Create the root obect.Dim root ' The FPCLib.FPC root objectSet root = CreateObject("FPC.Root")'Declare the other objects needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Obtain references to the array object' and the network rules collection.Set array = curArray Set VendorSets = array.VendorParametersSetsOn Error Resume NextSet VendorSet = VendorSets.Item( SE_VPS_GUID )If Err.Number <> 0 ThenErr.Clear' Add the itemSet VendorSet = VendorSets.Add( SE_VPS_GUID )CheckErrorWScript.Echo "New VendorSet added... " & VendorSet.NameElseWScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)End IfIf VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.ClearVendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckErrorElseVendorSets.Save false, trueCheckErrorIf Err.Number = 0 ThenWScript.Echo "Done with " & SE_VPS_NAME & ", saved!"End IfEnd IfElseWScript.Echo "Done with " & SE_VPS_NAME & ", no change!"End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.DescriptionErr.ClearEnd IfEnd SubSetValue
-
脅威管理ゲートウェイのアレイ メンバーのいずれかのスクリプトを実行します。脅威管理ゲートウェイの構成を同期するときは、スクリプトの変更を有効になります。ファイアウォール サービスの再起動は、変更を反映するために必要ではありません。
-
変更を元に戻すし、元の動作に戻り、には、スクリプトで次の行を見つけます。
Const SE_VPS_VALUE = 1
-
その行を次のように変更します。
Const SE_VPS_VALUE = 0
-
スクリプトを保存し、アレイ メンバーのいずれかのスクリプトを実行します。
回避策
この問題を回避するには、ユーザーの DN の属性から、スラッシュ、または Active Directory の特殊文字を削除します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細情報
Active Directory 属性の特殊文字のエスケープは、次のとおりです。
-
コンマ ()
-
円記号 (\)
-
シャープ記号 (#)
-
プラス記号 (+)
-
小なり記号 (<)
-
大なり記号)
-
セミコロン (;)
-
クォーテーション マーク (')
-
等号 (=)
-
先頭または末尾の空白
ユーザー アカウントの属性の例:
sAMAccountName: JeffSmithdisplayName: Jeff Smith/TMGdistinguishedName: CN = Smith\、ジェフと TMG、OU = サポート, DC = Fabrikam, DC = com注意事項
-
DN に円記号のエスケープ文字 (\) が自動的に追加します。
-
このユーザー アカウントの識別名属性には、Active Directory の特殊文字のコンマ (,) とスラッシュ (/) の両方が含まれています。
関連情報
詳細については、以下を参照してください。
用語使用すると、ソフトウェア更新プログラムを記述するを参照してください。