-
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
Teleport Connect should offer reauthentication option for confirming device trust for web #43328
Comments
+1, just hit this on 16.1.4 |
FYI @ravicious @avatus. |
We forgot to wrap the call in |
At first I thought it was a trivial issue, but it requires more work than I expected. Because of that, we should the transform the "device trust confirm" dialog into a tab that would be opened automatically. Unfortunately, I don't have enough time currently to work this, I'm going to close the linked PR as it doesn't solve the issue (although adding |
Could we decide beforehand what dialog to show? For example, do a ping first then proceed to the "regular" device trust dialog if it's OK, but if it's not we show a login dialog with a brief explanation? Just brainstorming a few alternatives here, this is not UX advice ;) |
@gzdunek I was thinking about the idea of converting this modal to a tab. I wonder if #48813 enabled other approaches here. The problem here is that we'd like to show a regular modal (the login modal) while an important dialog is shown (the device trust modal). Converting the device trust modal into a separate tab does address this problem, but from a design and UX standpoint, what are we going to put in that tab? Just the same text and two buttons? I don't think it's necessarily bad, though it might seem kind of weird, given that we don't do this anywhere else in the app. It'd be good to have some input from the design team, but ultimately I think it's more important to address this problem at all rather than doing it in a perfect fashion UX-wise. But perhaps expanding On top of that, if we don't take any extra precautions, converting this modal into a tab means that data passed from the Web UI to Connect through the custom scheme URL would get saved on disk. Connect automatically saves the state of all open tabs on disk so that it's able to reopen tabs on the next launch. IIRC, the security model of Device Trust already accounts for this kind of data exfiltration. But it'd probably be a good idea to not persist this particular tab on disk in the first place. |
Yeah, I considered this, but since it sounded like a 30-minute fix, I thought I could focus more on improving the UX :p I can imagine that if I clicked "Authorize session" and saw a login dialog immediately, I could get confused: "What happened to the previous dialog? Is the session authorized? Will I have to repeat the process? Can I cancel it and I will be able to log in later?" Seeing the original action in the background tab feels more safe—you are sure it's not lost. What's more, the app makes you go through several dialogs when starting:
Another issue with a dialog is that showing only error states might look weird in these cases:
Yeah, probably. I know it’s not much, but I believe it could be similar to the Connect My Computer screen, which looks nice (especially the error states!). Tagging @roraback, do you have any thoughts on this? |
That makes sense to me. 👍 |
Here's a demo of web session authorization in a tab, instead of in a modal: device.trust.tab.movThe tab closes automatically with a small delay after the user clicks any of the buttons. |
FWIW, I'd assume that for the majority of the users the browser is going to cover the window with Connect. On success we could close the tab instantly and show a success notification saying something like "Web session successfully authorize". The notification would disappear after 5 seconds anyway. |
Expected behavior:
A user would get a re-login flow option if their Teleport Connect session ended.
Current behavior:
If the Teleport Connection session ended the user gets this error. The user then has cancel, relogin and restart the web device trust process.
Bug details:
The text was updated successfully, but these errors were encountered: