-
Notifications
You must be signed in to change notification settings - Fork 92
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
Populate with earthaccess.login
guide in User Guide Authentications docs
#862
Open
andypbarrett
wants to merge
15
commits into
main
Choose a base branch
from
update-authentications-docs
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
21392be
added layout for authentication user guide
f4c7fac
update authentication and add netrc and env var instructions
b78e041
add links
c5f0e9c
add text to direct to other capabilities
b1a1453
fix conflicts
c06fbfb
Update docs/user_guide/authenticate.md
andypbarrett 7dd4f69
Update docs/user_guide/authenticate.md
andypbarrett 138c123
Update docs/user_guide/authenticate.md
andypbarrett a6f27d1
Update docs/user_guide/authenticate.md
andypbarrett ffc66f3
Update docs/user_guide/authenticate.md
andypbarrett 9bf70a5
Update docs/user_guide/authenticate.md
andypbarrett 205e3bf
Update docs/user_guide/authenticate.md
andypbarrett 4343230
Update docs/user_guide/authenticate.md
andypbarrett f28a1e6
add amonition wrt netrc on untrusted machines
6ed6f55
add text to clarify setting env vars for linux shells
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,11 +1,157 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||
# Authentication | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Introduces the `earthaccess.login` method for managing Earthdata Login and cloud credentials. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
You can use `earthaccess` to search for datasets and data without needing to log in. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
However, to access (download or stream) NASA Earth science data, whether from one of the NASA | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Distributed Active Archive Centers (DAACs) or from NASA Earthdata Cloud, you need | ||||||||||||||||||||||||||||||||||||||||||||||||||||
an Earthdata Login account. You can register for a free Earthdata Login (EDL) account [here](https://urs.earthdata.nasa.gov/). | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
!!! note "This Page is a Work in Progress" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Once you have an Earthdata Login account, you may use the `earthaccess.login` method to manage Earthdata Login credentials and, when you are working with cloud-hosted data, cloud credentials. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
We are reorganizing and updating the documentation, so not all pages are complete. If you are looking for information about authenticating using earthaccess see the | ||||||||||||||||||||||||||||||||||||||||||||||||||||
How-Tos and Tutorials in links below. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
`earthaccess.login` offers three methods of logging in (or authenticating) using EDL: | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
* [Quick start](../quick-start.md) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
* [How-To Authenticate with earthaccess](../howto/authenticate.md) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
* [a manual login method](#login-manually), where you enter EDL username and password manually | ||||||||||||||||||||||||||||||||||||||||||||||||||||
* an automatic login method using EDL credentials stored in a [`.netrc`](#login-using-a-netrc) file | ||||||||||||||||||||||||||||||||||||||||||||||||||||
* an automatic login method using EDL credentials stored in [environment variables](#login-using-environment-variables). | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
By default, `earthaccess.login()` will look for a `.netrc` or environment variables first. If neither of these are found, it will prompt you to enter your username and password. The three methods are described in detail below. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
`earthaccess.login` can also be used to login to [different endpoints](#accessing-different-endpoints) and [get S3 credentials](#using-earthaccess-to-get-credentials). | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
## Login Manually | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
If you have not created a `.netrc` file or `EARTHDATA_USERNAME` and `EARTHDATA_PASSWORD` environment variables, you can use the following approach to login. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
>>> import earthaccess | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
>>> auth = earthaccess.login() | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter your Earthdata Login username: your_username | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Enter your Earthdata password: | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
You don't need to assign the result of `earthaccess.login()` to a variable but doing so enables access session information. These are discussed in [Accessing Session Information](). | ||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Setting `strategy=interactive` will force a manual login. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
## Login using a `.netrc` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
andypbarrett marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
!!! warning "Do not use this strategy on untrusted machines or with shared accounts" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
`earthaccess` does not currently support encrypted `.netrc` files. This strategy of writing credentials in plain text to disk | ||||||||||||||||||||||||||||||||||||||||||||||||||||
should not be used on untrusted machines or shared user accounts. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
### Creating a `.netrc` file | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
#### Using `earthaccess.login` to create a `.netrc` file | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
You can use `earthaccess.login` to create a `.netrc` for you. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
earthaccess.login(persist=True) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
You will then be prompted for your Earthdata Login username and password. A `.netrc` (or `_netrc`) file will be created automatically. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
#### Manually creating a `.netrc` file for Earthdata Login Credentials | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
=== "MacOS" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Type the following on your command line, replacing `<username>` and `<password>` with your | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Earthdata Login credentials. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "machine urs.earthdata.nasa.gov login <username> password <password>" >> $HOME/.netrc | ||||||||||||||||||||||||||||||||||||||||||||||||||||
chmod 600 $HOME/.netrc | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
=== "Linux" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Type the following on your command line, replacing `<username>` and `<password>` with your | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Earthdata Login credentials. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "machine urs.earthdata.nasa.gov login <username> password <password>" >> $HOME/.netrc | ||||||||||||||||||||||||||||||||||||||||||||||||||||
chmod 600 $HOME/.netrc | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+56
to
+72
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
=== "Windows" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
In a `CMD` session, create a `%HOME%` environment variable. The following line | ||||||||||||||||||||||||||||||||||||||||||||||||||||
creates `%HOME%` from the path in `%USERPROFILE%`, which looks something like | ||||||||||||||||||||||||||||||||||||||||||||||||||||
`C:\Users\"username"`. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
setx HOME %USERPROFILE% | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
You now need to create a `_netrc` file in `%HOME%`. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
echo "machine urs.earthdata.nasa.gov login <username> password <password>" >> %HOME%\_netrc | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
## Login using environment variables | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Alternatively, Earthdata Login credentials can be created as environment variables `EARTHDATA_USERNAME` and `EARTHDATA_PASSWORD`. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
=== "MacOS" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
If you want to set the environment variables for the current shell session, type the following on the command line. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
export EARTHDATA_USERNAME="username" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
export EARTHDATA_PASSWORD="password" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
If you want to set these environmental variables permanently, add these two lines to the appropriate configuration files for your operating system. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
=== "Linux" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
If you want to set the environment variables for the current shell session, type the following on the command line. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
export EARTHDATA_USERNAME="username" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
export EARTHDATA_PASSWORD="password" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
If you use `bash` and would like to set these environmental variables permanently, add these two lines to your `~/.profile` file: | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
EARTHDATA_USERNAME="username" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
EARTHDATA_PASSWORD="password" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
For other shells, use the recommended method to persistently set these environment variables for whichever shell you use. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
=== "Windows" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
To set the environment variables for the current `CMD` session, type the following: | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
setx EARTHDATA_USERNAME "username" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
setx EARTHDATA_PASSWORD "password" | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
To set these environmental variables permanantly | ||||||||||||||||||||||||||||||||||||||||||||||||||||
1. Open the start menu. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
2. Search for the "Advanced System Settings" control panel and click on it. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
3. Click on the "Environment Variables" button toward the bottom of the screen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
4. Follow the prompts to add the variable to the user table. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
## Accessing different endpoints | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
### Earthdata User Acceptance Testing (UAT) endpoint | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
If your EDL account is authorized to access the User Acceptance Testing (UAT) system, | ||||||||||||||||||||||||||||||||||||||||||||||||||||
you can set earthaccess to work with its EDL and CMR endpoints | ||||||||||||||||||||||||||||||||||||||||||||||||||||
by setting the `system` argument at login, as follows: | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
```python | ||||||||||||||||||||||||||||||||||||||||||||||||||||
import earthaccess | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
earthaccess.login(system=earthaccess.UAT) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
## Using `earthaccess` to get S3 credentials | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
`earthaccess.login` is a very convenient way to manage and provide Earthdata Login credentials. `earthaccess.login` can also be used to obtain S3 credentials to access NASA Earthdata Cloud. If you use `earthaccess` to access data in the cloud, you do not have to use this option, `earthaccess` handles this. However, if you are using other packages, such as `h5coro`, `earthaccess` can save a lot of time. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||
import earthaccess | ||||||||||||||||||||||||||||||||||||||||||||||||||||
import xarray as xr | ||||||||||||||||||||||||||||||||||||||||||||||||||||
import h5coro | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
auth = earthaccess.login() | ||||||||||||||||||||||||||||||||||||||||||||||||||||
s3_credentials = auth.get_s3_credentials(daac="NSIDC") | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
s3url_atl23 = 'nsidc-cumulus-prod-protected/ATLAS/ATL23/001/2023/03/' \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||
'01/ATL23_20230401000000_10761801_001_01.h5' | ||||||||||||||||||||||||||||||||||||||||||||||||||||
ds = xr.open_dataset(s3url_atl23, engine='h5coro', | ||||||||||||||||||||||||||||||||||||||||||||||||||||
group='/mid_latitude/beam_1', | ||||||||||||||||||||||||||||||||||||||||||||||||||||
credentials=s3_credentials) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
``` |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.