--- page_title: "Provider: Auth0" description: |- The Auth0 provider is used to interact with Auth0 applications and APIs. --- # Auth0 Provider The Auth0 provider is used to interact with the [Auth0 Management API](https://auth0.com/docs/api/management/v2) in order to configure an Auth0 Tenant. It provides resources that allow you to create and manage clients, resource servers, client grants, connections, email providers and templates, rules and rule variables, users, roles, tenants, custom domains, and many more, as part of a Terraform deployment. Use the navigation to the left to read about the available resources and data sources. ## Example Usage ```terraform provider "auth0" { domain = "" client_id = "" client_secret = "" debug = "" } ``` ```terraform provider "auth0" { domain = "" client_id = "" client_assertion_private_key = file("") client_assertion_signing_alg = "" debug = "" } ``` ~> Hard-coding credentials into any Terraform configuration is not recommended, and risks secret leakage should this file ever be committed to a public version control system. See [Environment Variables](#environment-variables) for a better alternative. ## Schema ### Optional - `api_token` (String) Your Auth0 [management api access token](https://auth0.com/docs/security/tokens/access-tokens/management-api-access-tokens). It can also be sourced from the `AUTH0_API_TOKEN` environment variable. It can be used instead of `client_id` + `client_secret`. If both are specified, `api_token` will be used over `client_id` + `client_secret` fields. - `audience` (String) Your Auth0 audience when using a custom domain. It can also be sourced from the `AUTH0_AUDIENCE` environment variable. - `cli_login` (Boolean) While toggled on, the API token gets fetched from the keyring for the given domain - `client_assertion_private_key` (String) The private key used to sign the client assertion JWT. It can also be sourced from the `AUTH0_CLIENT_ASSERTION_PRIVATE_KEY` environment variable. - `client_assertion_signing_alg` (String) The algorithm used to sign the client assertion JWT. It can also be sourced from the `AUTH0_CLIENT_ASSERTION_SIGNING_ALG` environment variable. - `client_id` (String) Your Auth0 client ID. It can also be sourced from the `AUTH0_CLIENT_ID` environment variable. - `client_secret` (String) Your Auth0 client secret. It can also be sourced from the `AUTH0_CLIENT_SECRET` environment variable. - `custom_domain_header` (String) When specified, this header is added to requests targeting a set of pre-defined whitelisted URLs Global setting overrides all resource specific `custom_domain_header` value - `debug` (Boolean) Enables HTTP request and response logging when TF_LOG=DEBUG is set. It can also be sourced from the `AUTH0_DEBUG` environment variable. - `domain` (String) Your Auth0 domain name. It can also be sourced from the `AUTH0_DOMAIN` environment variable. - `dynamic_credentials` (Boolean) Indicates whether credentials will be dynamically passed to the provider from other terraform resources. ## Environment Variables You can provide your credentials via the `AUTH0_DOMAIN`, `AUTH0_CLIENT_ID` and `AUTH0_CLIENT_SECRET` or `AUTH0_API_TOKEN` or `AUTH0_DOMAIN`, `AUTH0_CLIENT_ID`, `AUTH0_CLIENT_ASSERTION_PRIVATE_KEY` and `AUTH0_CLIENT_ASSERTION_SIGNING_ALG` environment variables, respectively. ```terraform provider "auth0" {} ``` ### Example Usage with Client Secret ```shell AUTH0_DOMAIN="" \ AUTH0_CLIENT_ID="" \ AUTH0_CLIENT_SECRET="" \ terraform plan ``` ### Example Usage with Private JWT ```shell AUTH0_DOMAIN="" \ AUTH0_CLIENT_ID="" \ AUTH0_CLIENT_ASSERTION_PRIVATE_KEY="" \ AUTH0_CLIENT_ASSERTION_SIGNING_ALG="" \ terraform plan ``` ## Importing resources To import Auth0 resources, you will need to know their ID. You can use the [Auth0 API Explorer](https://auth0.com/docs/api/management/v2) to find your resource ID.