-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MFA for App Access - tsh
for cloud apps
#40985
Conversation
1d23890
to
183df95
Compare
c142f56
to
d7cceca
Compare
4466b09
to
bfbc259
Compare
f7a443e
to
5f03cc4
Compare
commands * Fix the same intended functionality for tsh proxy db
5f03cc4
to
fef5471
Compare
// Requests to IPs have no server names. Default to CA. | ||
r.certsByHost[""] = &caTLSCert |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How does the blank host correlate to an IP?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We use the TLS ServerName SNI as the name of the host, so the host name for all IP addresses is "". This is preserved from CertGenListener
from which most of this logic is derived.
…tatus a retryable error; cache profile status in appInfo.
4d3dc78
to
2bd62ae
Compare
6438bb6
to
24f4130
Compare
@zmb3 Can I get a flaky test skip? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/excludeflake *
/excludeflake * |
* Add generic app proxy implementation. * Incorporate forwarding proxy in generic app proxy. * Utilize cert checker middleware for http local proxies. * Use generalized local proxy app for aws. * Use generalized local proxy app for azure. * Use generalized local proxy app for gcp. * Refactor, simplify, and unify app logic logic for app, proxy app, and cloud commands. * * Load existing app certs before reissuing new certs for proxy app commands * Fix the same intended functionality for tsh proxy db * Fix hardware key test for tsh app login. * Remove unused code. * Fix merge conflict. * Address Gavin's comments. * Restore RetryWithRelogin for app commands by making missing profile status a retryable error; cache profile status in appInfo. * Address Tim's comments. * Remove read lock. * Add tests to CertChecker and LocalCertGenerator. * Fix lint.
* Add generic app proxy implementation. * Incorporate forwarding proxy in generic app proxy. * Utilize cert checker middleware for http local proxies. * Use generalized local proxy app for aws. * Use generalized local proxy app for azure. * Use generalized local proxy app for gcp. * Refactor, simplify, and unify app logic logic for app, proxy app, and cloud commands. * * Load existing app certs before reissuing new certs for proxy app commands * Fix the same intended functionality for tsh proxy db * Fix hardware key test for tsh app login. * Remove unused code. * Fix merge conflict. * Address Gavin's comments. * Restore RetryWithRelogin for app commands by making missing profile status a retryable error; cache profile status in appInfo. * Address Tim's comments. * Remove read lock. * Add tests to CertChecker and LocalCertGenerator. * Fix lint.
Adds MFA for Cloud App access support with:
(2) and (3) are important for users with a low
max_session_ttl
setting, which is common in per-session MFA setups.Many refactors were required to obtain feature parity with
tsh proxy app
and avoid duplicated logins and other accumulated cruft in the previous implementation.TODO:
tsh apps login awsconsole && tsh aws ...
to avoid re-logins