ExecProvider swallows interactive messages
**What happened (please include outputs or screenshots)**:
When using [kubelogin](https://github.com/Azure/kubelogin) as an ExecProvider in kube config, upon initial use, kubelogin prints a message to stderr of the form:
```
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code <device-code> to authenticate.
```
The current ExecProvider implementation swallows this message and blocks until the code times out and the kubelogin command returns (an exit code of 1).

**What you expected to happen**:
The ExecProvider implementation to provide some method to access the message such that it is either accessible to the python application to pass to a user, or passed to the user to action on some standard bus (stderr?).

**How to reproduce it (as minimally and precisely as possible)**:
Have kubelogin installed
Have a kube config setup with exec using kubelogin:
```yaml
<other config values>
users:
- name: aad-user
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1beta1
      command: kubelogin
      args: <kubelogin args depending on your azure auth setup>
```
*Don't authenticate through another means first (ie using kubectl)*
Attempt to auth using kubernetes library initially:
```python
from kubernetes import config

config.load_kube_config()
```

**Anything else we need to know?**:
I don't believe this is kubelogin specific, but rather any exec auth provider that prompts for user action will have the same issue. Let me know if I'm off basis and this should be a kubelogin issue instead tho :)

**Environment**:
kubernetes (python): 23.3.0
kubelogin: v0.0.10
Beyond that not environment specific
diff --git a/kubernetes/base/config/exec_provider.py b/kubernetes/base/config/exec_provider.py
index 08f0af2fb..3f9c8ca0d 100644
--- a/kubernetes/base/config/exec_provider.py
+++ b/kubernetes/base/config/exec_provider.py
@@ -57,11 +57,12 @@ class ExecProvider(object):
         self.cwd = cwd or None
 
     def run(self, previous_response=None):
+        is_interactive = sys.stdout.isatty()
         kubernetes_exec_info = {
             'apiVersion': self.api_version,
             'kind': 'ExecCredential',
             'spec': {
-                'interactive': sys.stdout.isatty()
+                'interactive': is_interactive
             }
         }
         if previous_response:
@@ -70,7 +71,8 @@ class ExecProvider(object):
         process = subprocess.Popen(
             self.args,
             stdout=subprocess.PIPE,
-            stderr=subprocess.PIPE,
+            stderr=sys.stderr if is_interactive else subprocess.PIPE,
+            stdin=sys.stdin if is_interactive else None,
             cwd=self.cwd,
             env=self.env,
             universal_newlines=True)
['kubernetes/base/config/exec_provider.py']