open-vault/website/source/api/system/auth.html.md
Jeff Escalante a3dfde5cec New Docs Website (#5535)
* conversion stage 1

* correct image paths

* add sidebar title to frontmatter

* docs/concepts and docs/internals

* configuration docs and multi-level nav corrections

* commands docs, index file corrections, small item nav correction

* secrets converted

* auth

* add enterprise and agent docs

* add extra dividers

* secret section, wip

* correct sidebar nav title in front matter for apu section, start working on api items

* auth and backend, a couple directory structure fixes

* remove old docs

* intro side nav converted

* reset sidebar styles, add hashi-global-styles

* basic styling for nav sidebar

* folder collapse functionality

* patch up border length on last list item

* wip restructure for content component

* taking middleman hacking to the extreme, but its working

* small css fix

* add new mega nav

* fix a small mistake from the rebase

* fix a content resolution issue with middleman

* title a couple missing docs pages

* update deps, remove temporary markup

* community page

* footer to layout, community page css adjustments

* wip downloads page

* deps updated, downloads page ready

* fix community page

* homepage progress

* add components, adjust spacing

* docs and api landing pages

* a bunch of fixes, add docs and api landing pages

* update deps, add deploy scripts

* add readme note

* update deploy command

* overview page, index title

* Update doc fields

Note this still requires the link fields to be populated -- this is solely related to copy on the description fields

* Update api_basic_categories.yml

Updated API category descriptions. Like the document descriptions you'll still need to update the link headers to the proper target pages.

* Add bottom hero, adjust CSS, responsive friendly

* Add mega nav title

* homepage adjustments, asset boosts

* small fixes

* docs page styling fixes

* meganav title

* some category link corrections

* Update API categories page

updated to reflect the second level headings for api categories

* Update docs_detailed_categories.yml

Updated to represent the existing docs structure

* Update docs_detailed_categories.yml

* docs page data fix, extra operator page remove

* api data fix

* fix makefile

* update deps, add product subnav to docs and api landing pages

* Rearrange non-hands-on guides to _docs_

Since there is no place for these on learn.hashicorp, we'll put them
under _docs_.

* WIP Redirects for guides to docs

* content and component updates

* font weight hotfix, redirects

* fix guides and intro sidenavs

* fix some redirects

* small style tweaks

* Redirects to learn and internally to docs

* Remove redirect to `/vault`

* Remove `.html` from destination on redirects

* fix incorrect index redirect

* final touchups

* address feedback from michell for makefile and product downloads
2018-10-19 08:40:11 -07:00

7.3 KiB
Raw Blame History

layout page_title sidebar_title sidebar_current description
api /sys/auth - HTTP API <tt>/sys/auth</tt> api-http-system-auth The `/sys/auth` endpoint is used to manage auth methods in Vault.

/sys/auth

The /sys/auth endpoint is used to list, create, update, and delete auth methods. Auth methods convert user or machine-supplied information into a token which can be used for all future requests.

List Auth Methods

This endpoint lists all enabled auth methods.

Method Path Produces
GET /sys/auth 200 application/json

Sample Request

$ curl \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/sys/auth

Sample Response

{
  "github/": {
    "type": "github",
    "description": "GitHub auth"
  },
  "token/": {
    "config": {
      "default_lease_ttl": 0,
      "max_lease_ttl": 0
    },
    "description": "token based credentials",
    "type": "token"
  }
}

Enable Auth Method

This endpoint enables a new auth method. After enabling, the auth method can be accessed and configured via the auth path specified as part of the URL. This auth path will be nested under the auth prefix.

For example, enable the "foo" auth method will make it accessible at /auth/foo.

  • sudo required  This endpoint requires sudo capability in addition to any path-specific capabilities.
Method Path Produces
POST /sys/auth/:path 204 (empty body)

Parameters

  • path (string: <required>)  Specifies the path in which to enable the auth method. This is part of the request URL.

  • description (string: "")  Specifies a human-friendly description of the auth method.

  • type (string: <required>)  Specifies the name of the authentication method type, such as "github" or "token".

  • config (map<string|string>: nil)  Specifies configuration options for this auth method. These are the possible values:

    • default_lease_ttl (string: "") - The default lease duration, specified as a string duration like "5s" or "30m".

    • max_lease_ttl (string: "") - The maximum lease duration, specified as a string duration like "5s" or "30m".

    • plugin_name (string: "") - The name of the plugin in the plugin catalog to use.

    • audit_non_hmac_request_keys (array: []) - Comma-separated list of keys that will not be HMAC'd by audit devices in the request data object.

    • audit_non_hmac_response_keys (array: []) - Comma-separated list of keys that will not be HMAC'd by audit devices in the response data object.

    • listing_visibility (string: "") - Speficies whether to show this mount in the UI-specific listing endpoint.

    • passthrough_request_headers (array: []) - Comma-separated list of headers to whitelist and pass from the request to the backend.

      The plugin_name can be provided in the config map or as a top-level option, with the former taking precedence.

  • plugin_name (string: "")  Specifies the name of the auth plugin to use based from the name in the plugin catalog. Applies only to plugin methods.

Additionally, the following options are allowed in Vault open-source, but relevant functionality is only supported in Vault Enterprise:

  • local (bool: false) Specifies if the auth method is a local only. Local auth methods are not replicated nor (if a secondary) removed by replication.

Sample Payload

{
  "type": "github",
  "description": "Login with GitHub"
}

Sample Request

$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/sys/auth/my-auth

Disable Auth Method

This endpoint disables the auth method at the given auth path.

  • sudo required  This endpoint requires sudo capability in addition to any path-specific capabilities.
Method Path Produces
DELETE /sys/auth/:path 204 (empty body)

Parameters

  • path (string: <required>)  Specifies the path to disable. This is part of the request URL.

Sample Request

$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/sys/auth/my-auth

Read Auth Method Tuning

This endpoint reads the given auth path's configuration. This endpoint requires sudo capability on the final path, but the same functionality can be achieved without sudo via sys/mounts/auth/[auth-path]/tune.

  • sudo required  This endpoint requires sudo capability in addition to any path-specific capabilities.
Method Path Produces
GET /sys/auth/:path/tune 200 application/json

Parameters

  • path (string: <required>)  Specifies the path in which to tune.

Sample Request

$ curl \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/sys/auth/my-auth/tune

Sample Response

{
  "default_lease_ttl": 3600,
  "max_lease_ttl": 7200
}

Tune Auth Method

Tune configuration parameters for a given auth path. This endpoint requires sudo capability on the final path, but the same functionality can be achieved without sudo via sys/mounts/auth/[auth-path]/tune.

  • sudo required  This endpoint requires sudo capability in addition to any path-specific capabilities.
Method Path Produces
POST /sys/auth/:path/tune 204 (empty body)

Parameters

  • default_lease_ttl (int: 0) Specifies the default time-to-live. If set on a specific auth path, this overrides the global default.

  • max_lease_ttl (int: 0)  Specifies the maximum time-to-live. If set on a specific auth path, this overrides the global default.

  • description (string: "") Specifies the description of the mount. This overrides the current stored value, if any.

  • audit_non_hmac_request_keys (array: []) - Specifies the comma-separated list of keys that will not be HMAC'd by audit devices in the request data object.

  • audit_non_hmac_response_keys (array: []) - Specifies the comma-separated list of keys that will not be HMAC'd by audit devices in the response data object.

  • listing_visibility (string: "") - Speficies whether to show this mount in the UI-specific listing endpoint. Valid values are "unauth" or "".

  • passthrough_request_headers (array: []) - Comma-separated list of headers to whitelist and pass from the request to the backend.

Sample Payload

{
  "default_lease_ttl": 1800,
  "max_lease_ttl": 86400
}

Sample Request

$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/sys/auth/my-auth/tune