-
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 16 Web Test Plan #42119
Comments
FYI, i copied and pasted the latest from this PR: #36846 |
After doing this, the cluster details that we fetch from the auth server are removed (so for example, the unified view gets stuck in the loading state). We shouldn't overwrite a cluster in the state if it is connected. |
|
@capnspacehook i think we removed the ability to upload multiple files when MFA is required. is that correct? If so, we can remove this test plan item |
The change that was made was only allowing one in-flight file transfer request at a time for moderated SSH sessions. In non-moderated sessions multiple files should be able to be uploaded whether MFA is required or not AFAIK |
Thanks @capnspacehook . @gzdunek , if multiple upload works without MFA, we can check this one off. I'll write an issue to do something along the lines of preventing the UI from allowing multiple upload if MFA is enabled, and/or showing a message to the user stating so. Thanks |
@avatus uploading multiple files works fine when per-session MFA is disabled. With per-session MFA enabled, Web UI has similar problems to Connect.
|
i cannot add or delete trusted devices via the UI but it doesn't look like we ever could? Devices can be enrolled/removed via |
Web UI
Main
For main, test with a role that has access to all resources.
As you go through testing, click on any links you come across to make sure they work (no 404) and are up to date.
Trusted Cluster (leafs) (@avatus)
The following features should allow users to view resources in trusted clusters.
There should be a cluster dropdown for:
/web/cluster/<cluster-name>/console/nodes
)Top Bar Nav (@rudream)
Resources
(unified resources),Access Management
,Access Requests
,Active Sessions
,Notification Bell
anduser settings menu
User Settings Menu (@rudream)
second_factor
set tooff
disables adding devicesUnified Resources (@avatus )
Add Resource
button correctly sends to the resource discovery pageforward_agent: true
under theoptions
section of your role, and then test that yourteleport certs show up when you run
ssh-add -l
on the node.Launch
button for applications correctly send to the appLaunch
button for AWS apps correctly renders an IAM role selection windowConnect
renders the dialog with correct informationConnect
renders the dialog with correct informationConnect
renders a login selection and that the logins are completely in viewActive Sessions
Access Management Side Nav (@rudream)
Session Recordings (@rudream)
Audit log (@rudream)
details
buttonUsers (@rudream)
All actions should require re-authn with a webauthn device.
Invite, Reset, and Login Forms (@rudream)
For each, test the invite, reset, and login flows
second_factor
type tooff
second_factor
type tootp
, requires otpsecond_factor
type towebauthn
, requires hardware keysecond_factor
type toon
, requires a MFA deviceAuth Connectors
For help with setting up auth connectors, check out the [Quick GitHub/SAML/OIDC Setup Tips]
All actions should require re-authn with a webauthn device.
Roles (@rudream)
All actions should require re-authn with a webauthn device.
Enroll New Integration (aka Plugins) (@kimlisa)
self-hosted plugins
andmachine id
cards link out to the correct docsno-code integrations
renders formEnroll new resources using Discover Wizard @kimlisa
Use Discover Wizard to enroll new resources and access them:
Access Lists @kimlisa
Not available for OSS
Admin refers to users with access_list RBAC defined:
Session & Identity Locks
Locked By
andStart Date
are still shown with those fields empty.Trusted Devices
Managed Clusters (@avatus)
root
pillAccess Requests
Not available for OSS
Access Request Notification Routing Rule (cloud only) @kimlisa
Creating Access Requests (Role Based) (@avatus)
Create a role with limited permissions
allow-roles-and-nodes
. This role allows you to see the Role screen and ssh into all nodes.Create another role with limited permissions
allow-users-with-short-ttl
. This role session expires in 4 minutes, allows you to see Users screen, and denies access to all nodes.Create a user that has no access to anything but allows you to request roles:
allow-roles-and-nodes
andallow-users-with-short-ttl
are listedCreating Access Requests (Resource Based) (@avatus)
Create a role with access to searcheable resources (apps, db, kubes, nodes, desktops). The template
searcheable-resources
is below.Create a user that has no access to resources, but allows you to search them:
searcheable-resources
rulesViewing & Approving/Denying Requests (@avatus)
Create a user with the role
reviewer
that allows you to review all requests, and delete them.Assuming Approved Requests (Role Based) (@avatus)
allow-roles-and-nodes
allows you to see roles screen and ssh into nodesallow-roles-and-nodes
, verify that assumingallow-users-short-ttl
allows you to see users screen, and denies access to nodesswitching back
goes back to your default static roleallow-users-short-ttl
role, the user is automatically logged out after the expiry is met (4 minutes)Assuming Approved Requests (Search Based) (@avatus)
Assuming Approved Requests (Both) (@avatus)
Access Request Waiting Room (@avatus)
Strategy Reason
Create the following role:
request_prompt
settingsend request
, pending dialogue rendersStrategy Always
With the previous role you created from
Strategy Reason
, changerequest_access
toalways
:Logout
and clicking goes back to the login screenStrategy Optional
With the previous role you created from
Strategy Reason
, changerequest_access
tooptional
:Web Terminal (aka console) (@rudream)
ctrl+[1...9]
(alt on linux/windows)require_session_mfa
and:Terminal Node List Tab (@rudream)
Terminal Session Tab (@rudream)
$ sudo apt-get install mc
$ mc
Cloud (@rudream)
From your cloud staging account, change the field
teleportVersion
to the test version.Dashboard Tenants (self-hosted license)
Recovery Code Management
Invite/Reset
Recovery Flow: Add new mfa device
Recovery Flow: Change password
Recovery Email
RBAC (@rudream)
Create a role, with no
allow.rules
defined:Add Server, Application, Databases, Kubernetes
button in each respective viewServers
,Apps
,Databases
, andKubernetes
are listed underoptions
button inManage Clusters
Note: User has read/create access_request access to their own requests, despite resource settings
Add the following under
spec.allow.rules
to enable read access to the audit log:Audit Log
andSession Recordings
is accessibleAdd the following to enable read access to recorded sessions
Add the following to enable read access to the roles
Add the following to enable read access to the auth connectors
Add the following to enable read access to users
Add the following to enable read access to trusted clusters
Teleport Connect
(
auth_service.authentication
in the cluster config):type: local
,second_factor: "off"
type: local
,second_factor: "otp"
type: local
,second_factor: "webauthn"
,type: local
,second_factor: "webauthn"
, log in passwordlessly with hardware keytype: local
,second_factor: "webauthn"
, log in passwordlessly with touch IDtype: local
,second_factor: "optional"
, log in without MFAtype: local
,second_factor: "optional"
, log in with OTPtype: local
,second_factor: "optional"
, log in with hardware keytype: local
,second_factor: "on"
, log in with OTPtype: local
,second_factor: "on"
, log in with hardware keytype: local
,second_factor: "on"
, log in with passwordless authcapabilities to multiple users.
parens. Or set up the connectors on a local enterprise cluster following the guide from
our wiki.
clusters).
workspace should have no impact on the original shell session.
TELEPORT_PROXY
andTELEPORT_CLUSTER
should pin the session to the correct cluster.TELEPORT_HOME
should point to~/Library/Application Support/Teleport Connect/tsh
.PATH
should include/Applications/Teleport Connect.app/Contents/Resources/bin
.(only for local terminals).
$ sudo apt-get install mc
$ mc
$ exit
command.process under it.
echo $KUBECONFIG
and check if it points to the file within Connect's app data directory.kubectl get pods -A
and verify that the command succeeds. Then create a pod withkubectl apply -f https://k8s.io/examples/application/shell-demo.yaml
and exec into it withkubectl exec --stdin --tty shell-demo -- /bin/bash
. Verify that the shell works.ClusterRoleBinding
ink8s
for the admin role.
Then you need to add the k8s group (which maps to the k8s admin role in
ClusterRoleBinding
) tokubernetes_groups
of your Teleport role.properly.
assigned works.
~/Library/Application Support/Teleport Connect/tsh
doesn't crash the app.~/Library/Application Support/Teleport Connect/app_state.json
but not thetsh
dir doesn't crash the app.remember previous tabs (they should be cleared on logout).
connection tracker and choose said db connection from it. Verify that the newly opened tab uses
the same db name and port.
the app. Verify that the app doesn't ask you about restoring previous tabs.
belong to.
paginated too.
spec.allow.logins
andspec.allow.db_users
.Cmd+[1...9]
.elements.
the workspace of that cluster automatically.
(by switching to another cluster) and return to the previous workspace.
that Connect simply changes the workspace to that of that cluster.
the modal when asked for credentials. Verify that the cluster was still added and is visible in
the profile selector.
clusters.
expected.
workspace of that root cluster.
the search bar.
by clicking one of the buttons or by pressing Escape does not close the search bar.
the cert to expire. Enter a search term that usually returns some results.
results.
and shows "No matching results found".
resources by entering the search field and pressing enter. Verify that no unrecoverable
error was raised (that is, the app still works). Then restart the app and verify that it was
restarted gracefully (no unrecoverable error on restart, the user can continue using the
app).
Trying to open a second tab with the same pair should just switch you to the already
existing tab.
user. Go back to Connect and change the database name and port. Both actions should not
return an error.
Click "Connect" to show a list of db users. Now remove access to that db. Go back to Connect
and choose a username. Verify that a recoverable error is shown and the user can continue
using the app.
tsh proxy db
with the same port, start theapp. Verify that the app doesn't crash and the db connection tab shows you the error
(address in use) and offers a way to retry creating the connection.
1m
(
spec.options.max_session_ttl
).another connection to the local db proxy.
select now();
, the client shouldbe able to automatically reinstantiate the connection.
see if it connects without problems. You might need to resync the cluster again in case
they managed to expire.
the cert to expire, then attempt to make a connection through the proxy; log in.
does not have permissions. Confirm database user and name").
databases view.
proxy, then without logging in proceed to connect to the second proxy.
progress.
Created Access Requests (Role Based)
from the Web UI testplan and then verify the tasks below.allow-roles-and-nodes
andallow-users-with-short-ttl
are listedstate)
suggested_reviewers wasn't defined)
Created Access Requests (Search Based)
from the Web UI testplan and then verify the tasks below.searcheable-resources
rulesstate)
suggested_reviewers wasn't defined)
proxy_service.ui.show_resources
toaccessible_only
.Viewing & Approving/Denying Requests
from the Web UI testplan and then verify the tasks below.your review stamp (green checkmark) and message box
(red cross)
allow-roles-and-nodes
allows you to see roles screen and ssh intonodes
allow-roles-and-nodes
, verify that assumingallow-users-short-ttl
allows you to see users screen, and denies access to nodes
expires
switching back
goes back to your default static roleallow-users-short-ttl
role, the user is automatically loggedout after the expiry is met (4 minutes)
viewing
again
⋮
> Open Config File opens theapp_config.json
file in your editor.terminal.fontFamily
."keymap.tab1": "ABC"
)."keymap.tab1": not a string
).tsh ls --headless --user=<username> --proxy=<proxy>
. The cluster needs to have webauthn enabled for it to work.closed automatically.
closed automatically.
second one after closing the modal for the first request.
the second one after closing the modal for the first request.
MFA.
kubectl exec --stdin --tty shell-demo -- /bin/bash
mentioned above toverify that Kube access is working with MFA.
connect to it.
are shown in the UI.
tail -F ~/Library/Application\ Support/Teleport\ Connect/logs/cleanup.log
) and thenkill -s KILL <agent PID>
.SIGKILL.
with connection. Verify that the app kills the agent after the agent is not able to join the
cluster within the timeout.
manually stopped before exiting the app.
~/Library/Application\ Support/Teleport\ Connect/logs
.works properly after that.
Open every possible document. Close the app. Start the current alpha. Reopen the tabs. Verify that
the app was able to reopen the tabs without any errors.
The text was updated successfully, but these errors were encountered: