diff --git a/src/Microsoft.Data.SqlClient/netcore/ref/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netcore/ref/Microsoft.Data.SqlClient.csproj
index e6ffc2526b..d9a4222b36 100644
--- a/src/Microsoft.Data.SqlClient/netcore/ref/Microsoft.Data.SqlClient.csproj
+++ b/src/Microsoft.Data.SqlClient/netcore/ref/Microsoft.Data.SqlClient.csproj
@@ -32,6 +32,9 @@
+
+ $(MicrosoftIdentityClientBrokerVersion)
+
diff --git a/src/Microsoft.Data.SqlClient/netfx/ref/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/ref/Microsoft.Data.SqlClient.csproj
index 1d9c1985bd..bca9ec4fee 100644
--- a/src/Microsoft.Data.SqlClient/netfx/ref/Microsoft.Data.SqlClient.csproj
+++ b/src/Microsoft.Data.SqlClient/netfx/ref/Microsoft.Data.SqlClient.csproj
@@ -40,6 +40,9 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
+
+ $(MicrosoftIdentityClientBrokerVersion)
+
diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj
index e5630bc9c7..bd5c6b266f 100644
--- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj
+++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj
@@ -73,7 +73,7 @@
- $(DefineConstants);DEBUG;DBG;_DEBUG;_LOGGING;RESOURCE_ANNOTATION_WORK;
+ $(DefineConstants);DEBUG;DBG;_DEBUG;_LOGGING;RESOURCE_ANNOTATION_WORK;INTERACTIVE_AUTH;
Full
False
@@ -82,6 +82,12 @@
Pdbonly
True
+
+ $(DefineConstants);NETFRAMEWORK;
+
+
+ $(DefineConstants);INTERACTIVE_AUTH;
+
@@ -1069,6 +1075,21 @@
All
runtime; build; native; contentfiles; analyzers; buildtransitive
+
+ $(AzureIdentityVersion)
+
+
+ $(MicrosoftIdentityClientBrokerVersion)
+
+
+ $(MicrosoftIdentityModelProtocolsOpenIdConnectVersion)
+
+
+ $(MicrosoftIdentityModelJsonWebTokensVersion)
+
+
+ $(SystemBuffersVersion)
+
diff --git a/src/Microsoft.Data.SqlClient/src/Interop/Windows/Kernel32/Interop.GetConsoleWindow.cs b/src/Microsoft.Data.SqlClient/src/Interop/Windows/Kernel32/Interop.GetConsoleWindow.cs
new file mode 100644
index 0000000000..54208ee3b5
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/src/Interop/Windows/Kernel32/Interop.GetConsoleWindow.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Runtime.InteropServices;
+
+internal partial class Interop
+{
+ internal partial class Kernel32
+ {
+ [DllImport("kernel32.dll")]
+ internal static extern IntPtr GetConsoleWindow();
+ }
+}
diff --git a/src/Microsoft.Data.SqlClient/src/Interop/Windows/User32/Interop.GetAncestor.cs b/src/Microsoft.Data.SqlClient/src/Interop/Windows/User32/Interop.GetAncestor.cs
new file mode 100644
index 0000000000..868b18aeaf
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/src/Interop/Windows/User32/Interop.GetAncestor.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Runtime.InteropServices;
+
+
+internal partial class Interop
+{
+ internal partial class User32
+ {
+ internal enum GetAncestorFlags
+ {
+ GetParent = 1,
+ GetRoot = 2,
+ ///
+ /// Retrieves the owned root window by walking the chain of parent and owner windows returned by GetParent.
+ ///
+ GetRootOwner = 3
+ }
+
+ ///
+ /// Retrieves the handle to the ancestor of the specified window.
+ ///
+ /// A handle to the window whose ancestor is to be retrieved.
+ /// If this parameter is the desktop window, the function returns NULL.
+ /// The ancestor to be retrieved.
+ /// The return value is the handle to the ancestor window.
+ [DllImport("user32.dll", ExactSpelling = true)]
+ internal static extern IntPtr GetAncestor(IntPtr hwnd, GetAncestorFlags flags);
+ }
+}
+
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ActiveDirectoryAuthenticationProvider.Unix.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ActiveDirectoryAuthenticationProvider.Unix.cs
new file mode 100644
index 0000000000..53eb66e6e0
--- /dev/null
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ActiveDirectoryAuthenticationProvider.Unix.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Threading;
+
+namespace Microsoft.Data.SqlClient
+{
+ public sealed partial class ActiveDirectoryAuthenticationProvider : SqlAuthenticationProvider
+ {
+ private Func