Skip to content

Commit 0604d01

Browse files
ldapauth: Fix NTLM target domain override for unencrypted connections
1 parent 486ba82 commit 0604d01

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

ldapauth/ntlm.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func (n *ntlmNegotiator) Negotiate(domain string, worktation string) ([]byte, er
2929
}
3030

3131
func (n *ntlmNegotiator) ChallengeResponse(challenge []byte, username string, hash string) ([]byte, error) {
32-
if n.cert == nil {
32+
if n.cert == nil && n.overrideTargetName == "" {
3333
// no cert means no channel binding, so Azure/ntlmssp can handle
3434
// authentication alone.
3535
return ntlmssp.ProcessChallengeWithHash(challenge, username, hash)
@@ -64,9 +64,11 @@ func (n *ntlmNegotiator) ChallengeResponse(challenge []byte, username string, ha
6464
}
6565
}
6666

67-
// add channel bindings
68-
cm.TargetInfo.AddAvPair(ntlm.MsvChannelBindings, ChannelBindingHash(n.cert))
69-
cm.TargetInfo.AddAvPair(ntlm.MsvAvEOL, nil)
67+
if n.cert != nil {
68+
// add channel bindings
69+
cm.TargetInfo.AddAvPair(ntlm.MsvChannelBindings, ChannelBindingHash(n.cert))
70+
cm.TargetInfo.AddAvPair(ntlm.MsvAvEOL, nil)
71+
}
7072

7173
// make sure that the server cannot make cm.Bytes() panic by omitting the
7274
// version.

0 commit comments

Comments
 (0)