mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
Merge pull request #4710 from Infisical/chore/cli-login-docs-update
docs: enhance login documentation
This commit is contained in:
@@ -9,22 +9,93 @@ infisical login
|
|||||||
|
|
||||||
### Description
|
### Description
|
||||||
|
|
||||||
The CLI uses authentication to verify your identity. When you enter the correct email and password for your account, a token is generated and saved in your system Keyring to allow you to make future interactions with the CLI.
|
The CLI uses authentication to verify your identity. You can authenticate using:
|
||||||
|
- **Browser Login** (default): Opens a browser for authentication
|
||||||
|
- **Direct Login**: Provide email and password via flags or environment variables for non-interactive workflows
|
||||||
|
- **Interactive CLI Login**: Use the `--interactive` flag to enter credentials via CLI prompts
|
||||||
|
|
||||||
|
When authenticated, a token is generated and saved in your system Keyring to allow you to make future interactions with the CLI.
|
||||||
|
|
||||||
To change where the login credentials are stored, visit the [vaults command](./vault).
|
To change where the login credentials are stored, visit the [vaults command](./vault).
|
||||||
|
|
||||||
If you have added multiple users, you can switch between the users by using the [user command](./user).
|
If you have added multiple users, you can switch between the users by using the [user command](./user).
|
||||||
|
|
||||||
<Info>
|
<Info>
|
||||||
When you authenticate with **any other method than `user`**, an access token will be printed to the console upon successful login. This token can be used to authenticate with the Infisical API and the CLI by passing it in the `--token` flag when applicable.
|
**JWT Token Output:**
|
||||||
|
- For **user authentication** with the `--plain --silent` flags: outputs only the JWT access token (useful for scripting)
|
||||||
Use flag `--plain` along with `--silent` to print only the token in plain text when using a machine identity auth method.
|
- For **machine identity authentication**: an access token is always printed to the console
|
||||||
|
|
||||||
|
Use the `--plain` flag to print only the token in plain text and the `--silent` flag to disable update alerts.
|
||||||
|
|
||||||
|
Both flags are ideal for capturing the token in environment variables or CI/CD pipelines.
|
||||||
</Info>
|
</Info>
|
||||||
|
|
||||||
### Authentication Methods
|
### Authentication Methods
|
||||||
|
|
||||||
The Infisical CLI supports multiple authentication methods. Below are the available authentication methods, with their respective flags.
|
The Infisical CLI supports two main categories of authentication: User Authentication and Machine Identity Authentication.
|
||||||
|
|
||||||
|
#### User Authentication
|
||||||
|
|
||||||
|
User authentication is designed for individual developers and supports multiple login flows.
|
||||||
|
|
||||||
|
<AccordionGroup>
|
||||||
|
<Accordion title="User">
|
||||||
|
The User authentication method allows you to log in with your email and password. This method supports three different login flows:
|
||||||
|
|
||||||
|
- **Browser Login** (default): Opens a browser for authentication
|
||||||
|
- **Direct Login**: Provide credentials via flags or environment variables for CI/CD
|
||||||
|
- **Interactive CLI Login**: Enter credentials via CLI prompts using `--interactive`
|
||||||
|
|
||||||
|
<ParamField query="Flags">
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="email" type="string" optional>
|
||||||
|
Your email address. Required for direct login along with `--password`.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="password" type="string" optional>
|
||||||
|
Your password. Required for direct login along with `--email`.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="interactive" type="boolean" optional>
|
||||||
|
Force interactive CLI login instead of browser-based authentication.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="plain" type="boolean" optional>
|
||||||
|
Output only the JWT token (useful for scripting and CI/CD).
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
<AccordionGroup>
|
||||||
|
<Accordion title="Browser Login (Default)">
|
||||||
|
```bash
|
||||||
|
infisical login
|
||||||
|
```
|
||||||
|
</Accordion>
|
||||||
|
<Accordion title="Direct Login (CI/CD)">
|
||||||
|
```bash
|
||||||
|
infisical login --email=user@example.com --password=your-password
|
||||||
|
|
||||||
|
# Or using environment variables
|
||||||
|
export INFISICAL_EMAIL="user@example.com"
|
||||||
|
export INFISICAL_PASSWORD="your-password"
|
||||||
|
infisical login
|
||||||
|
```
|
||||||
|
</Accordion>
|
||||||
|
<Accordion title="Interactive CLI Login">
|
||||||
|
```bash
|
||||||
|
infisical login --interactive
|
||||||
|
```
|
||||||
|
</Accordion>
|
||||||
|
<Accordion title="Plain Token Output (Useful for scripting and CI/CD)">
|
||||||
|
```bash
|
||||||
|
export INFISICAL_TOKEN=$(infisical login --email=user@example.com --password=your-password --plain --silent)
|
||||||
|
```
|
||||||
|
</Accordion>
|
||||||
|
</AccordionGroup>
|
||||||
|
</Accordion>
|
||||||
|
</AccordionGroup>
|
||||||
|
|
||||||
|
#### Machine Identity Authentication
|
||||||
|
|
||||||
|
Machine identity authentication methods are designed for automated systems, services, and CI/CD pipelines.
|
||||||
|
|
||||||
<AccordionGroup>
|
<AccordionGroup>
|
||||||
<Accordion title="Universal Auth">
|
<Accordion title="Universal Auth">
|
||||||
@@ -237,7 +308,7 @@ The Infisical CLI supports multiple authentication methods. Below are the availa
|
|||||||
Run the `login` command with the following flags to obtain an access token:
|
Run the `login` command with the following flags to obtain an access token:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
infisical login --method=jwt-auth --jwt=<jwt> --machine-identity-id=<machine-identity-id>
|
infisical login --method=jwt-auth --jwt=<jwt-token> --machine-identity-id=<machine-identity-id>
|
||||||
```
|
```
|
||||||
</Step>
|
</Step>
|
||||||
</Steps>
|
</Steps>
|
||||||
@@ -262,7 +333,8 @@ The login command supports a number of flags that you can use for different auth
|
|||||||
- `gcp-id-token`: Login using a GCP ID token native auth.
|
- `gcp-id-token`: Login using a GCP ID token native auth.
|
||||||
- `gcp-iam`: Login using a GCP IAM.
|
- `gcp-iam`: Login using a GCP IAM.
|
||||||
- `aws-iam`: Login using an AWS IAM native auth.
|
- `aws-iam`: Login using an AWS IAM native auth.
|
||||||
- `oidc-auth`: Login using oidc auth.
|
- `oidc-auth`: Login using OIDC auth.
|
||||||
|
- `jwt-auth`: Login using a plain JWT token.
|
||||||
|
|
||||||
</Accordion>
|
</Accordion>
|
||||||
<Accordion title="--client-id">
|
<Accordion title="--client-id">
|
||||||
@@ -330,22 +402,153 @@ The login command supports a number of flags that you can use for different auth
|
|||||||
</Tip>
|
</Tip>
|
||||||
|
|
||||||
</Accordion>
|
</Accordion>
|
||||||
</AccordionGroup>
|
<Accordion title="--email">
|
||||||
|
|
||||||
<Accordion title="--oidc-jwt">
|
|
||||||
```bash
|
```bash
|
||||||
infisical login --oidc-jwt=<oidc-jwt-token>
|
infisical login --email=<email> --password=<password>
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Description
|
#### Description
|
||||||
The JWT provided by an identity provider for OIDC authentication.
|
User email address. Required if you want to do a non-interactive login when the **--method** flag is set to **user**. Must be used together with the `--password` flag.
|
||||||
|
|
||||||
<Tip>
|
<Tip>
|
||||||
The `oidc-jwt` flag can be substituted with the `INFISICAL_OIDC_AUTH_JWT` environment variable.
|
You can omit the **--method=user** if you want as it's the default method.
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
The `email` flag can be substituted with the `INFISICAL_EMAIL` environment variable.
|
||||||
</Tip>
|
</Tip>
|
||||||
|
|
||||||
</Accordion>
|
</Accordion>
|
||||||
|
<Accordion title="--password">
|
||||||
|
```bash
|
||||||
|
infisical login --email=<email> --password=<password>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Description
|
||||||
|
User password. Required if you want to do a non-interactive login when the **--method** flag is set to **user**. Must be used together with the `--email` flag.
|
||||||
|
|
||||||
|
<Warning>
|
||||||
|
For security in CI/CD environments, prefer using the `INFISICAL_PASSWORD` environment variable instead of passing the password as a command-line flag.
|
||||||
|
</Warning>
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
You can omit the **--method=user** if you want as it's the default method.
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
The `password` flag can be substituted with the `INFISICAL_PASSWORD` environment variable.
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
</Accordion>
|
||||||
|
<Accordion title="--interactive">
|
||||||
|
```bash
|
||||||
|
infisical login --interactive
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Description
|
||||||
|
Forces interactive CLI login where you'll be prompted to enter your email and password in the terminal, instead of opening a browser.
|
||||||
|
|
||||||
|
</Accordion>
|
||||||
|
<Accordion title="--plain">
|
||||||
|
```bash
|
||||||
|
infisical login --email=<email> --password=<password> --plain
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Description
|
||||||
|
When used with direct user login or machine identity authentication, outputs only the JWT access token without any additional formatting. This is useful for scripting and CI/CD pipelines where you need to capture the token.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Example: Capture token in a variable
|
||||||
|
export INFISICAL_TOKEN=$(infisical login --email=<email> --password=<password> --plain --silent)
|
||||||
|
```
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
Use it alongside the `silent` flag to disable all messages in the console except from the access token.
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
</Accordion>
|
||||||
|
<Accordion title="--jwt">
|
||||||
|
```bash
|
||||||
|
infisical login --jwt=<jwt-token> --machine-identity-id=<machine-identity-id>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Description
|
||||||
|
The JWT provided by an identity provider for OIDC or plain JWT authentication. This is required if the `--method` flag is set to `oidc-auth` or `jwt-auth`.
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
The `jwt` flag can be substituted with the `INFISICAL_JWT` environment variable.
|
||||||
|
</Tip>
|
||||||
|
|
||||||
|
</Accordion>
|
||||||
|
</AccordionGroup>
|
||||||
|
|
||||||
|
### User Authentication Examples
|
||||||
|
|
||||||
|
The following examples demonstrate different ways to authenticate as a user with the Infisical CLI.
|
||||||
|
|
||||||
|
<AccordionGroup>
|
||||||
|
<Accordion title="Browser Login (Default)">
|
||||||
|
By default, running `infisical login` without any flags opens your browser for authentication.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Opens browser for authentication
|
||||||
|
infisical login
|
||||||
|
```
|
||||||
|
|
||||||
|
The browser will open to the Infisical login page, and upon successful authentication, the CLI will be automatically authenticated.
|
||||||
|
|
||||||
|
</Accordion>
|
||||||
|
|
||||||
|
<Accordion title="Direct Login (Non-Interactive)">
|
||||||
|
Direct login is ideal for CI/CD pipelines and automation scripts where browser-based authentication is not possible.
|
||||||
|
|
||||||
|
#### Using Command-Line Flags
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Basic direct login (defaults to US Cloud)
|
||||||
|
infisical login --email user@example.com --password "your-password"
|
||||||
|
|
||||||
|
# EU Cloud (Custom domain)
|
||||||
|
infisical login --email user@example.com --password "your-password" --domain https://eu.infisical.com
|
||||||
|
|
||||||
|
# Output only JWT token for scripting
|
||||||
|
export INFISICAL_TOKEN=$(infisical login --email user@example.com --password "your-password" --plain --silent)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Using Environment Variables (Recommended for CI/CD)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Set credentials as environment variables
|
||||||
|
export INFISICAL_EMAIL="user@example.com"
|
||||||
|
export INFISICAL_PASSWORD="your-password"
|
||||||
|
|
||||||
|
# Login without additional flags
|
||||||
|
infisical login
|
||||||
|
|
||||||
|
# Or with plain output for token capture
|
||||||
|
export INFISICAL_TOKEN=$(infisical login --plain --silent)
|
||||||
|
```
|
||||||
|
</Accordion>
|
||||||
|
|
||||||
|
<Accordion title="Interactive CLI Login">
|
||||||
|
Interactive login prompts you to enter credentials in the terminal instead of opening a browser.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Force interactive CLI login
|
||||||
|
infisical login --interactive
|
||||||
|
```
|
||||||
|
|
||||||
|
You'll be prompted to enter:
|
||||||
|
- Email address
|
||||||
|
- Password
|
||||||
|
|
||||||
|
</Accordion>
|
||||||
|
|
||||||
|
</AccordionGroup>
|
||||||
|
|
||||||
|
<Tip>
|
||||||
|
If you have SSO enabled, we recommend using the default browser login.
|
||||||
|
</Tip>
|
||||||
|
|
||||||
### Machine Identity Authentication Quick Start
|
### Machine Identity Authentication Quick Start
|
||||||
|
|
||||||
@@ -367,9 +570,9 @@ In this example we'll be using the `universal-auth` method to login to obtain an
|
|||||||
```
|
```
|
||||||
</Step>
|
</Step>
|
||||||
|
|
||||||
<Step title="Fetch all secrets from an evironment">
|
<Step title="Fetch all secrets from an environment">
|
||||||
```bash
|
```bash
|
||||||
infisical secrets --projectId=<your-project-id --env=dev --recursive
|
infisical secrets --projectId=<your-project-id> --env=dev --recursive
|
||||||
```
|
```
|
||||||
|
|
||||||
This command will fetch all secrets from the `dev` environment in your project, including all secrets in subfolders.
|
This command will fetch all secrets from the `dev` environment in your project, including all secrets in subfolders.
|
||||||
|
|||||||
Reference in New Issue
Block a user