Plugin Options

Usage

Using plugins via CLI

Plugins can be configured via CLI options, using argparse’s ArgumentParser. This is commonly used to produce client tooling that communicates with OpenStack APIs and therefore needs to allow authentication. For example, openstackclient allows configuration using CLI options.

When using auth plugins via CLI you can specify parameters via CLI options or via environment configuration, with CLI options superseding environment configuration. CLI options are specified with the pattern --os- and the parameter name. For example, to use the password plugin via CLI options you can specify:

openstack --os-auth-type password \
          --os-auth-url http://keystone.example.com:5000/ \
          --os-username myuser \
          --os-password mypassword \
          --os-project-name myproject \
          --os-default-domain-name mydomain \
          operation

Environment variables are specified using the pattern OS_ followed by the uppercase parameter name replacing - with _. Using the password example again:

export OS_AUTH_TYPE=password
export OS_AUTH_URL=http://keystone.example.com:5000/
export OS_USERNAME=myuser
export OS_PASSWORD=mypassword
export OS_PROJECT_NAME=myproject
export OS_DEFAULT_DOMAIN_NAME=mydomain

Using plugins via clouds.yaml

Plugins can be configured via clouds.yaml files, which are supported by openstacksdk. When using a clouds.yaml, you specify the plugin name as auth_type within the cloud entry and then specify all plugin options within the auth key of the cloud entry. For example, to use the password plugin for a cloud entry mycloud in a clouds.yaml file you can specify:

clouds:
  mycloud:
    auth_type: password
    auth:
      auth_url: http://keystone.example.com:5000/
      username: myuser
      password: mypassword
      project_name: myproject
      default_domain_name: mydomain

Using plugins via config file

Plugins can be configured using INI-style configuration file, using oslo.config. This is commonly used to allow OpenStack service to talk to each other though it can be used for any service that wishes to authenticate against Keystone and uses oslo.config. For example, this configuration style is used to allow the Compute service (Nova) to talk to the Networking service (Neutron), Block Storage service (Cinder), and others.

When using the plugins via config file you define the plugin name as auth_type. The options of the plugin are then specified while replacing - with _ to be valid in configuration.

For example to use the password plugin in a config file you would specify:

[section]
auth_type = password
auth_url = http://keystone.example.com:5000/
username = myuser
password = mypassword
project_name = myproject
default_domain_name = mydomain

Using plugins via other mechanisms

Beyond the three configuration mechanisms described here, different services may implement loaders in their own way and you should consult their relevant documentation. However, the same auth options will always be available.

Built-in Plugins

This is a listing of all included plugins and the options that they accept. Plugins are listed alphabetically and not in any order of priority.

admin_token

Authenticate with an existing token and a known endpoint.

This plugin is primarily useful for development or for use with identity service ADMIN tokens. Because this token is used directly there is no fetching a service catalog or determining scope information and so it cannot be used by clients that expect use this scope information.

Because there is no service catalog the endpoint that is supplied with initialization is used for all operations performed with this plugin so must be the full base URL to an actual service.


endpoint:

The endpoint that will always be used

CLI options:

--os-endpoint, --os-url

Environment variables:

OS_ENDPOINT, OS_URL

token:

The token that will always be used

CLI options:

--os-token

Environment variables:

OS_TOKEN

http_basic

Use HTTP Basic authentication to perform requests.

This can be used to instantiate clients for services deployed in standalone mode.

There is no fetching a service catalog or determining scope information and so it cannot be used by clients that expect to use this scope information.


endpoint:

The endpoint that will always be used

CLI options:

--os-endpoint

Environment variables:

OS_ENDPOINT

password:

User’s password

CLI options:

--os-password

Environment variables:

OS_PASSWORD

username:

Username

CLI options:

--os-username, --os-user-name

Environment variables:

OS_USERNAME, OS_USER_NAME

none

Use no tokens to perform requests.

This can be used to instantiate clients for services deployed in noauth/standalone mode.

There is no fetching a service catalog or determining scope information and so it cannot be used by clients that expect to use this scope information.


endpoint:

The endpoint that will always be used

CLI options:

--os-endpoint

Environment variables:

OS_ENDPOINT

password

Authenticate with a username and password.

Authenticate to the identity service using the provided username and password. This is the standard and most common form of authentication.

As a generic plugin this plugin is identity version independent and will discover available versions before use. This means it expects to be provided an unversioned URL to operate against.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

default-domain-id:

Optional domain ID to use with v3 and v2 parameters. It will be used for both the user and project domain in v3 and ignored in v2 authentication.

CLI options:

--os-default-domain-id

Environment variables:

OS_DEFAULT_DOMAIN_ID

default-domain-name:

Optional domain name to use with v3 API and v2 parameters. It will be used for both the user and project domain in v3 and ignored in v2 authentication.

CLI options:

--os-default-domain-name

Environment variables:

OS_DEFAULT_DOMAIN_NAME

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

password:

User’s password

CLI options:

--os-password

Environment variables:

OS_PASSWORD

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id, --os-tenant-id

Environment variables:

OS_PROJECT_ID, OS_TENANT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name, --os-tenant-name

Environment variables:

OS_PROJECT_NAME, OS_TENANT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

user-domain-id:

User’s domain id

CLI options:

--os-user-domain-id

Environment variables:

OS_USER_DOMAIN_ID

user-domain-name:

User’s domain name

CLI options:

--os-user-domain-name

Environment variables:

OS_USER_DOMAIN_NAME

user-id:

User id

CLI options:

--os-user-id

Environment variables:

OS_USER_ID

username:

Username

CLI options:

--os-username, --os-user-name

Environment variables:

OS_USERNAME, OS_USER_NAME

token

Given an existing token rescope it to another target.

Use the Identity service’s rescope mechanism to get a new token based upon an existing token. Because an auth plugin requires a service catalog and scope information it is often easier to fetch a new token based on an existing one than validate and reuse the one you already have.

As a generic plugin this plugin is identity version independent and will discover available versions before use. This means it expects to be provided an unversioned URL to operate against.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

default-domain-id:

Optional domain ID to use with v3 and v2 parameters. It will be used for both the user and project domain in v3 and ignored in v2 authentication.

CLI options:

--os-default-domain-id

Environment variables:

OS_DEFAULT_DOMAIN_ID

default-domain-name:

Optional domain name to use with v3 API and v2 parameters. It will be used for both the user and project domain in v3 and ignored in v2 authentication.

CLI options:

--os-default-domain-name

Environment variables:

OS_DEFAULT_DOMAIN_NAME

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id, --os-tenant-id

Environment variables:

OS_PROJECT_ID, OS_TENANT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name, --os-tenant-name

Environment variables:

OS_PROJECT_NAME, OS_TENANT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

token:

Token to authenticate with

CLI options:

--os-token

Environment variables:

OS_TOKEN

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v2password

Authenticate with a username and password.

Authenticate to the identity service using the provided username and password. This is the standard and most common form of authentication.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

password:

Password to use

CLI options:

--os-password

Environment variables:

OS_PASSWORD

tenant-id:

Tenant ID

CLI options:

--os-tenant-id

Environment variables:

OS_TENANT_ID

tenant-name:

Tenant Name

CLI options:

--os-tenant-name

Environment variables:

OS_TENANT_NAME

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

user-id:

User ID to login with

CLI options:

--os-user-id

Environment variables:

OS_USER_ID

username:

Username to login with

CLI options:

--os-username, --os-user-name

Environment variables:

OS_USERNAME, OS_USER_NAME

v2token

Given an existing token rescope it to another target.

Use the Identity service’s rescope mechanism to get a new token based upon an existing token. Because an auth plugin requires a service catalog and scope information it is often easier to fetch a new token based on an existing one than validate and reuse the one you already have.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

tenant-id:

Tenant ID

CLI options:

--os-tenant-id

Environment variables:

OS_TENANT_ID

tenant-name:

Tenant Name

CLI options:

--os-tenant-name

Environment variables:

OS_TENANT_NAME

token:

Token

CLI options:

--os-token

Environment variables:

OS_TOKEN

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3adfspassword

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

identity-provider:

Identity Provider’s name (mandatory)

CLI options:

--os-identity-provider

Environment variables:

OS_IDENTITY_PROVIDER

identity-provider-url:

An Identity Provider URL, where the SAML authentication request will be sent. (mandatory)

CLI options:

--os-identity-provider-url

Environment variables:

OS_IDENTITY_PROVIDER_URL

password:

Password (mandatory)

CLI options:

--os-password

Environment variables:

OS_PASSWORD

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

protocol:

Protocol for federated plugin (mandatory)

CLI options:

--os-protocol

Environment variables:

OS_PROTOCOL

service-provider-endpoint:

Service Provider’s Endpoint (mandatory)

CLI options:

--os-service-provider-endpoint

Environment variables:

OS_SERVICE_PROVIDER_ENDPOINT

service-provider-entity-id:

Service Provider’s SAML Entity ID (mandatory)

CLI options:

--os-service-provider-entity-id

Environment variables:

OS_SERVICE_PROVIDER_ENTITY_ID

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

username:

Username (mandatory)

CLI options:

--os-username

Environment variables:

OS_USERNAME

v3applicationcredential

Authenticate with an application credential.

Authenticate to the identity service using the provided application credential secret and ID or name. If a name is used, you must also provide a username and user domain to assist in lookup.


application_credential_id:

Application credential ID

CLI options:

--os-application_credential_id

Environment variables:

OS_APPLICATION_CREDENTIAL_ID

application_credential_name:

Application credential name

CLI options:

--os-application_credential_name

Environment variables:

OS_APPLICATION_CREDENTIAL_NAME

application_credential_secret:

Application credential auth secret (mandatory)

CLI options:

--os-application_credential_secret

Environment variables:

OS_APPLICATION_CREDENTIAL_SECRET

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

user-domain-id:

User’s domain ID

CLI options:

--os-user-domain-id

Environment variables:

OS_USER_DOMAIN_ID

user-domain-name:

User’s domain name

CLI options:

--os-user-domain-name

Environment variables:

OS_USER_DOMAIN_NAME

user-id:

User’s user ID

CLI options:

--os-user-id

Environment variables:

OS_USER_ID

username:

User’s username

CLI options:

--os-username, --os-user-name

Environment variables:

OS_USERNAME, OS_USER_NAME

v3fedkerb

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

identity-provider:

Identity Provider’s name (mandatory)

CLI options:

--os-identity-provider

Environment variables:

OS_IDENTITY_PROVIDER

mutual-auth:

Configures Kerberos Mutual Authentication

CLI options:

--os-mutual-auth

Environment variables:

OS_MUTUAL_AUTH

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

protocol:

Protocol for federated plugin (mandatory)

CLI options:

--os-protocol

Environment variables:

OS_PROTOCOL

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3kerberos

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

mutual-auth:

Configures Kerberos Mutual Authentication

CLI options:

--os-mutual-auth

Environment variables:

OS_MUTUAL_AUTH

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3multifactor

Authenticate using multiple factors.

Authenticate to the identity service using a combination of factors, such as username/password and a TOTP code.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

auth_methods:

Methods to authenticate with. (mandatory)

CLI options:

--os-auth_methods

Environment variables:

OS_AUTH_METHODS

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3oauth1

access-key:

OAuth Access Key (mandatory)

CLI options:

--os-access-key

Environment variables:

OS_ACCESS_KEY

access-secret:

OAuth Access Secret (mandatory)

CLI options:

--os-access-secret

Environment variables:

OS_ACCESS_SECRET

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

consumer-key:

OAuth Consumer ID/Key (mandatory)

CLI options:

--os-consumer-key

Environment variables:

OS_CONSUMER_KEY

consumer-secret:

OAuth Consumer Secret (mandatory)

CLI options:

--os-consumer-secret

Environment variables:

OS_CONSUMER_SECRET

v3oauth2clientcredential

Authenticate with an OAuth2.0 client credential.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

oauth2_client_id:

Client id for OAuth2.0 (mandatory)

CLI options:

--os-oauth2_client_id

Environment variables:

OS_OAUTH2_CLIENT_ID

oauth2_client_secret:

Client secret for OAuth2.0 (mandatory)

CLI options:

--os-oauth2_client_secret

Environment variables:

OS_OAUTH2_CLIENT_SECRET

oauth2_endpoint:

Endpoint for OAuth2.0 (mandatory)

CLI options:

--os-oauth2_endpoint

Environment variables:

OS_OAUTH2_ENDPOINT

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3oauth2mtlsclientcredential

Authenticate with an OAuth2.0 mTLS client credential.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

oauth2-client-id:

Client credential ID for OAuth2.0 Mutual-TLS Authorization (mandatory)

CLI options:

--os-oauth2-client-id

Environment variables:

OS_OAUTH2_CLIENT_ID

oauth2-endpoint:

Endpoint for OAuth2.0 Mutual-TLS Authorization (mandatory)

CLI options:

--os-oauth2-endpoint

Environment variables:

OS_OAUTH2_ENDPOINT

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3oidcaccesstoken

Authenticate with the OIDC Access Token flow.


access-token:

OAuth 2.0 Access Token (mandatory)

CLI options:

--os-access-token

Environment variables:

OS_ACCESS_TOKEN

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

identity-provider:

Identity Provider’s name (mandatory)

CLI options:

--os-identity-provider

Environment variables:

OS_IDENTITY_PROVIDER

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

protocol:

Protocol for federated plugin (mandatory)

CLI options:

--os-protocol

Environment variables:

OS_PROTOCOL

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3oidcauthcode

Authenticate with the OIDC Authorization Code flow.


access-token-endpoint:

OpenID Connect Provider Token Endpoint. Note that if a discovery document is being passed this option will override the endpoint provided by the server in the discovery document.

CLI options:

--os-access-token-endpoint

Environment variables:

OS_ACCESS_TOKEN_ENDPOINT

access-token-type:

OAuth 2.0 Authorization Server Introspection token type, it is used to decide which type of token will be used when processing token introspection. Valid values are: “access_token” or “id_token”

CLI options:

--os-access-token-type

Environment variables:

OS_ACCESS_TOKEN_TYPE

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

client-id:

OAuth 2.0 Client ID

CLI options:

--os-client-id

Environment variables:

OS_CLIENT_ID

client-secret:

OAuth 2.0 Client Secret

CLI options:

--os-client-secret

Environment variables:

OS_CLIENT_SECRET

code:

OAuth 2.0 Authorization Code (mandatory)

CLI options:

--os-code, --os-authorization-code

Environment variables:

OS_CODE, OS_AUTHORIZATION_CODE

discovery-endpoint:

OpenID Connect Discovery Document URL. The discovery document will be used to obtain the values of the access token endpoint and the authentication endpoint. This URL should look like https://idp.example.org/.well-known/openid-configuration

CLI options:

--os-discovery-endpoint

Environment variables:

OS_DISCOVERY_ENDPOINT

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

identity-provider:

Identity Provider’s name (mandatory)

CLI options:

--os-identity-provider

Environment variables:

OS_IDENTITY_PROVIDER

openid-scope:

OpenID Connect scope that is requested from authorization server. Note that the OpenID Connect specification states that “openid” must be always specified.

CLI options:

--os-openid-scope

Environment variables:

OS_OPENID_SCOPE

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

protocol:

Protocol for federated plugin (mandatory)

CLI options:

--os-protocol

Environment variables:

OS_PROTOCOL

redirect-uri:

OpenID Connect Redirect URL

CLI options:

--os-redirect-uri

Environment variables:

OS_REDIRECT_URI

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3oidcclientcredentials

Authenticate with the OIDC Client Credentials flow.


access-token-endpoint:

OpenID Connect Provider Token Endpoint. Note that if a discovery document is being passed this option will override the endpoint provided by the server in the discovery document.

CLI options:

--os-access-token-endpoint

Environment variables:

OS_ACCESS_TOKEN_ENDPOINT

access-token-type:

OAuth 2.0 Authorization Server Introspection token type, it is used to decide which type of token will be used when processing token introspection. Valid values are: “access_token” or “id_token”

CLI options:

--os-access-token-type

Environment variables:

OS_ACCESS_TOKEN_TYPE

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

client-id:

OAuth 2.0 Client ID

CLI options:

--os-client-id

Environment variables:

OS_CLIENT_ID

client-secret:

OAuth 2.0 Client Secret

CLI options:

--os-client-secret

Environment variables:

OS_CLIENT_SECRET

discovery-endpoint:

OpenID Connect Discovery Document URL. The discovery document will be used to obtain the values of the access token endpoint and the authentication endpoint. This URL should look like https://idp.example.org/.well-known/openid-configuration

CLI options:

--os-discovery-endpoint

Environment variables:

OS_DISCOVERY_ENDPOINT

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

identity-provider:

Identity Provider’s name (mandatory)

CLI options:

--os-identity-provider

Environment variables:

OS_IDENTITY_PROVIDER

openid-scope:

OpenID Connect scope that is requested from authorization server. Note that the OpenID Connect specification states that “openid” must be always specified.

CLI options:

--os-openid-scope

Environment variables:

OS_OPENID_SCOPE

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

protocol:

Protocol for federated plugin (mandatory)

CLI options:

--os-protocol

Environment variables:

OS_PROTOCOL

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3oidcdeviceauthz

Authenticate with the OAuth 2.0 Device Authorization flow.


access-token-endpoint:

OpenID Connect Provider Token Endpoint. Note that if a discovery document is being passed this option will override the endpoint provided by the server in the discovery document.

CLI options:

--os-access-token-endpoint

Environment variables:

OS_ACCESS_TOKEN_ENDPOINT

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

client-id:

OAuth 2.0 Client ID

CLI options:

--os-client-id

Environment variables:

OS_CLIENT_ID

client-secret:

OAuth 2.0 Client Secret

CLI options:

--os-client-secret

Environment variables:

OS_CLIENT_SECRET

code-challenge-method:

PKCE Challenge Method (RFC 7636)

CLI options:

--os-code-challenge-method

Environment variables:

OS_CODE_CHALLENGE_METHOD

device-authorization-endpoint:

OAuth 2.0 Device Authorization Endpoint. Note that if a discovery document is being passed this option will override the endpoint provided by the server in the discovery document.

CLI options:

--os-device-authorization-endpoint

Environment variables:

OS_DEVICE_AUTHORIZATION_ENDPOINT

discovery-endpoint:

OpenID Connect Discovery Document URL. The discovery document will be used to obtain the values of the access token endpoint and the authentication endpoint. This URL should look like https://idp.example.org/.well-known/openid-configuration

CLI options:

--os-discovery-endpoint

Environment variables:

OS_DISCOVERY_ENDPOINT

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

identity-provider:

Identity Provider’s name (mandatory)

CLI options:

--os-identity-provider

Environment variables:

OS_IDENTITY_PROVIDER

openid-scope:

OpenID Connect scope that is requested from authorization server. Note that the OpenID Connect specification states that “openid” must be always specified.

CLI options:

--os-openid-scope

Environment variables:

OS_OPENID_SCOPE

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

protocol:

Protocol for federated plugin (mandatory)

CLI options:

--os-protocol

Environment variables:

OS_PROTOCOL

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3oidcpassword

Authenticate with the OIDC Resource Owner Password Credentials flow.


access-token-endpoint:

OpenID Connect Provider Token Endpoint. Note that if a discovery document is being passed this option will override the endpoint provided by the server in the discovery document.

CLI options:

--os-access-token-endpoint

Environment variables:

OS_ACCESS_TOKEN_ENDPOINT

access-token-type:

OAuth 2.0 Authorization Server Introspection token type, it is used to decide which type of token will be used when processing token introspection. Valid values are: “access_token” or “id_token”

CLI options:

--os-access-token-type

Environment variables:

OS_ACCESS_TOKEN_TYPE

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

client-id:

OAuth 2.0 Client ID

CLI options:

--os-client-id

Environment variables:

OS_CLIENT_ID

client-secret:

OAuth 2.0 Client Secret

CLI options:

--os-client-secret

Environment variables:

OS_CLIENT_SECRET

discovery-endpoint:

OpenID Connect Discovery Document URL. The discovery document will be used to obtain the values of the access token endpoint and the authentication endpoint. This URL should look like https://idp.example.org/.well-known/openid-configuration

CLI options:

--os-discovery-endpoint

Environment variables:

OS_DISCOVERY_ENDPOINT

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

identity-provider:

Identity Provider’s name (mandatory)

CLI options:

--os-identity-provider

Environment variables:

OS_IDENTITY_PROVIDER

idp_otp_key:

A key to be used in the Identity Provider access token endpoint to pass the OTP value. E.g. totp

CLI options:

--os-idp_otp_key

Environment variables:

OS_IDP_OTP_KEY

openid-scope:

OpenID Connect scope that is requested from authorization server. Note that the OpenID Connect specification states that “openid” must be always specified.

CLI options:

--os-openid-scope

Environment variables:

OS_OPENID_SCOPE

password:

Password (mandatory)

CLI options:

--os-password

Environment variables:

OS_PASSWORD

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

protocol:

Protocol for federated plugin (mandatory)

CLI options:

--os-protocol

Environment variables:

OS_PROTOCOL

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

username:

Username (mandatory)

CLI options:

--os-username

Environment variables:

OS_USERNAME

v3password

Authenticate with a username and password.

Authenticate to the identity service using the provided username and password. This is the standard and most common form of authentication.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

password:

User’s password

CLI options:

--os-password

Environment variables:

OS_PASSWORD

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

user-domain-id:

User’s domain ID

CLI options:

--os-user-domain-id

Environment variables:

OS_USER_DOMAIN_ID

user-domain-name:

User’s domain name

CLI options:

--os-user-domain-name

Environment variables:

OS_USER_DOMAIN_NAME

user-id:

User’s user ID

CLI options:

--os-user-id

Environment variables:

OS_USER_ID

username:

User’s username

CLI options:

--os-username, --os-user-name

Environment variables:

OS_USERNAME, OS_USER_NAME

v3samlpassword

auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

identity-provider:

Identity Provider’s name (mandatory)

CLI options:

--os-identity-provider

Environment variables:

OS_IDENTITY_PROVIDER

identity-provider-url:

An Identity Provider URL, where the SAML2 authentication request will be sent. (mandatory)

CLI options:

--os-identity-provider-url

Environment variables:

OS_IDENTITY_PROVIDER_URL

password:

Password (mandatory)

CLI options:

--os-password

Environment variables:

OS_PASSWORD

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

protocol:

Protocol for federated plugin (mandatory)

CLI options:

--os-protocol

Environment variables:

OS_PROTOCOL

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

username:

Username (mandatory)

CLI options:

--os-username

Environment variables:

OS_USERNAME

v3token

Given an existing token rescope it to another target.

Use the Identity service’s rescope mechanism to get a new token based upon an existing token. Because an auth plugin requires a service catalog and scope information it is often easier to fetch a new token based on an existing one than validate and reuse the one you already have.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

token:

Token to authenticate with

CLI options:

--os-token

Environment variables:

OS_TOKEN

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

v3tokenlessauth

Authenticate without a token, using an X.509 certificate.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

v3totp

Authenticate with a Time-based One-Time Password.

Authenticate to the identity service using a time-based one-time password. This is typically used in combination with another plugin as part of a multi-factor configuration.


auth-url:

Authentication URL (mandatory)

CLI options:

--os-auth-url

Environment variables:

OS_AUTH_URL

domain-id:

Domain ID to scope to

CLI options:

--os-domain-id

Environment variables:

OS_DOMAIN_ID

domain-name:

Domain name to scope to

CLI options:

--os-domain-name

Environment variables:

OS_DOMAIN_NAME

passcode:

User’s TOTP passcode

CLI options:

--os-passcode

Environment variables:

OS_PASSCODE

project-domain-id:

Domain ID containing project

CLI options:

--os-project-domain-id

Environment variables:

OS_PROJECT_DOMAIN_ID

project-domain-name:

Domain name containing project

CLI options:

--os-project-domain-name

Environment variables:

OS_PROJECT_DOMAIN_NAME

project-id:

Project ID to scope to

CLI options:

--os-project-id

Environment variables:

OS_PROJECT_ID

project-name:

Project name to scope to

CLI options:

--os-project-name

Environment variables:

OS_PROJECT_NAME

system-scope:

Scope for system operations

CLI options:

--os-system-scope

Environment variables:

OS_SYSTEM_SCOPE

trust-id:

ID of the trust to use as a trustee use

CLI options:

--os-trust-id

Environment variables:

OS_TRUST_ID

user-domain-id:

User’s domain ID

CLI options:

--os-user-domain-id

Environment variables:

OS_USER_DOMAIN_ID

user-domain-name:

User’s domain name

CLI options:

--os-user-domain-name

Environment variables:

OS_USER_DOMAIN_NAME

user-id:

User’s user ID

CLI options:

--os-user-id

Environment variables:

OS_USER_ID

username:

User’s username

CLI options:

--os-username, --os-user-name

Environment variables:

OS_USERNAME, OS_USER_NAME

Additional Plugins

keystoneauth is designed to be pluggable and Python packages exist that provide additional plugins.