CLI Menu

Command Line Interface (CLI) CLI QuickStart GuideCommand Line Interface (CLI) ExamplesUsing the CLI with High Assurance Resources

Overview

High assurance resources require that users authenticate with specific identities or identity providers within a certain period of time.

Globus Auth maintains a session containing the identities and timestamps of authentications to an instance of the CLI. This session is associated with the browser session used for authentication, but is separate from any other sessions used to access high assurance resources.

This doc will go over the CLI commands needed to use the CLI’s session to access high assurance resources, along with errors that will be given by the CLI when a high assurance resource requires re-authentication.

Logging in

The CLI’s session is created on log in, and the identity you use to log in is added to the session.

$ globus login

Logging out

After you have finished using the Globus CLI with high assurance resources you should always log out with the globus logout command.

$ globus logout

This closes the CLI’s session and revokes all tokens used for authorizing the CLI to act on your behalf. If you are ever unsure if your logout was successful you should check the status of the CLI’s consents at https://auth.globus.org/consents and revoke any unwanted consents.

Viewing the CLI’s session

You can view the CLI’s session state with the globus session show command which lists all identities in the CLI’s current session along with each identity’s most recent authentication time.

$ globus session show
For information on your primary identity or full identity set see
  globus whoami

Username          | ID                                   | Auth Time
------------------| ------------------------------------ | --------------------
user@domain1.org  | e8d90b08-9a5f-11e8-914b-9cb6d0d9fd63 | 2018-08-29 14:49 CDT
user@domain2.org  | fac363a4-9a5f-11e8-914b-9cb6d0d9fd63 | 2018-08-29 15:01 CDT

As hinted by the command, this output is similar to the globus whoami command, but will not show identities that are not in session even if they are in your identity set.

If you need your session id for debugging purposes, it can be found in the output of globus session show --format json.

Updating the CLI’s session

You can update the CLI’s session state with the globus session update command.

globus session update takes one or more identities in user@domain or UUID format, and starts an authentication flow that adds or refreshes them in the CLI’s session. These identities must already be in your identity set.

$ globus session update user@domain1.org user@domain2.org
You are running globus session update, which should automatically open a
browser window for you to authenticate with specific identities.
If this fails or you experience difficulty, try globus session update
--no-local-server
---
Created new window in existing browser session.

You have successfully updated your CLI session.
Use globus session show to see the updated session.

If you are ever unsure which of your linked identities grant you access to a specific high assurance resource, you can use the --all option to start an authentication flow with each of your linked identities.

Understanding Errors from High Assurance Resources

Whenever an action you attempt is denied because your session state is not sufficient, the service will do its best to determine which of your identities you need to re-authenticate with to gain access.

For example a globus ls that fails because an identity is not in session:

$ globus ls 2b598208-9a6c-11e8-914b-9cb6d0d9fd63
The resource you are trying to access requires you to re-authenticate with specific identities.
message: Session reauthentication required (Globus Transfer)
Please run

    globus session update e8d90b08-9a5f-11e8-914b-9cb6d0d9fd63

to re-authenticate with the required identities

It is possible that the recommended globus session update command will list more identities than required, and if the action touches multiple high assurance resources it is possible that you will get back separate errors from each resource before being able to proceed.

If none of your linked identities would give you access to the resource, you will not receive a recommended globus session update command. If this happens, first check that you are using the correct identity set by running globus whoami --linked-identities, then confirm with the resource owner that one of those identities has been given access to the resource.


© 2010- The University of Chicago Legal