Uh oh!
There was an error while loading. Please reload this page.
[release/6.0] disable sending NT Authority in TLS handshake if specific trust was specified - #61713
Conversation
Co-authored-by: Cory Nelson <phrosty@gmail.com>
ghost
commented
Nov 17, 2021
Tagging subscribers to this area: @dotnet/ncl, @vcsjones |
danmoseley
commented
Dec 2, 2021
wfurt
commented
Dec 2, 2021
The actual change is scoped to if(certificateContext?.Trust?._sendTrustInHandshake==true)flags|=Interop.SspiCli.SCH_CREDENTIALS.Flags.SCH_CRED_NO_SYSTEM_MAPPER;That is new API added in 6.0 and AAD is only one user at the moment AFAIK. Impact on existing users would be possible only if there is some new bug in the hashing that comes with this change. (to treat the context with trust as different (separate small bug)) |
wfurt
commented
Dec 2, 2021
One more note that when we implement this on Linux/macOS, there will not be any "NT Authority". So this also makes it more consistent across (future) platforms) |
danmoseley
commented
Dec 3, 2021
Approved offline by Steve |
karelz
commented
Dec 10, 2021
@safern just curious why is it marked as NO MERGE? |
safern
commented
Dec 10, 2021
It is because the branch is closed, so we can't merge servicing fixes to the branch yet. We will be able to merge it next week when we open the branch. |
karelz
commented
Dec 15, 2021
Thanks @safern. I was just surprised that it is used for external reasons. I would naively expect that the label is property of the PR -- i.e. it is not approved yet, or is not ready. I would expect readiness of branch to be tracked externally as it is about timing. Also, using it this way means all servicing PRs should be labeled this way (which they are not), which would be probably not very useful - it is basically global boolean. |
safern
commented
Dec 15, 2021
No worries. Thanks for explaining the confusion, I'll try to be consistent either way for next servicing release. |
Backport of #60988 to release/6.0
Fixes#60949
/cc @wfurt
Customer Impact
This impacts ability to send custom trust list in TLS handshake. This feature was requested by AAD Gateway and it is new in 6.0. By default, SslStream/Schannel sends extra synthetic entry in the CA list. Would be generally fine, but it breaks use case when AAD Gateway tries to send empty list. Since there is extra entry, TLS Handshake fails with .NET clients.
Testing
This was tested manually and customer (AAD Gateway) verified with 7.0 daily build.
Risk
Small. The change is scoped to disable the option only when the new API is in use.
cc: @avparuch