2015-07-28 18:00:57 +00:00
|
|
|
---
|
|
|
|
layout: "docs"
|
2017-09-13 01:48:52 +00:00
|
|
|
page_title: "Multi-Factor Authentication (MFA) - Auth Methods"
|
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 15:40:11 +00:00
|
|
|
sidebar_title: "MFA <sup>LEGACY / UNSUPPORTED</sup>"
|
2015-07-28 18:00:57 +00:00
|
|
|
sidebar_current: "docs-auth-mfa"
|
|
|
|
description: |-
|
2017-09-13 01:48:52 +00:00
|
|
|
Multi-factor authentication (MFA) is supported for several authentication
|
|
|
|
methods.
|
2015-07-28 18:00:57 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
# Multi-Factor Authentication
|
|
|
|
|
2018-01-03 19:02:31 +00:00
|
|
|
~> **NOTE**: This page describes the legacy MFA system available in the OSS
|
2018-02-05 00:25:27 +00:00
|
|
|
edition of Vault. This system is not supported by HashiCorp. Vault Enterprise
|
2018-02-05 17:26:16 +00:00
|
|
|
contains a fully-supported MFA system that is significantly more complete and
|
|
|
|
flexible and which can be used throughout Vault's API. See the [Vault
|
2018-01-03 19:02:31 +00:00
|
|
|
Enterprise MFA](/docs/enterprise/mfa/index.html) page for more information.
|
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
Several auth methods support multi-factor authentication (MFA). Once
|
|
|
|
enabled for a method, users are required to provide additional verification,
|
|
|
|
like a one-time passcode, before being authenticated.
|
2015-07-28 18:00:57 +00:00
|
|
|
|
2017-12-07 19:17:42 +00:00
|
|
|
Currently, the "ldap", "okta", "radius", and "userpass" backends support MFA.
|
2015-07-28 18:00:57 +00:00
|
|
|
|
|
|
|
## Authentication
|
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
When authenticating, users still provide the same information as before, in
|
|
|
|
addition to MFA verification. Usually this is a passcode, but in other cases,
|
|
|
|
like a Duo Push notification, no additional information is needed.
|
2015-07-28 18:00:57 +00:00
|
|
|
|
|
|
|
### Via the CLI
|
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
```tedt
|
|
|
|
$ vault login -method=userpass \
|
|
|
|
username=my-username \
|
2015-07-28 19:21:43 +00:00
|
|
|
password=test \
|
|
|
|
passcode=111111
|
|
|
|
```
|
2017-09-13 01:48:52 +00:00
|
|
|
|
|
|
|
```text
|
|
|
|
$ vault login -method=userpass \
|
|
|
|
username=my-username \
|
2015-07-28 19:21:43 +00:00
|
|
|
password=test \
|
|
|
|
method=push
|
2015-07-28 18:00:57 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
### Via the API
|
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
The endpoint for the login is the same as for the original method. Additional
|
2015-07-28 18:00:57 +00:00
|
|
|
MFA information should be sent in the POST body encoded as JSON.
|
|
|
|
|
|
|
|
```shell
|
2017-09-13 01:48:52 +00:00
|
|
|
$ curl \
|
|
|
|
--request POST \
|
|
|
|
--data '{"password": "test", "passcode": "111111"}' \
|
2018-03-23 15:41:51 +00:00
|
|
|
http://127.0.0.1:8200/v1/auth/userpass/login/my-username
|
2015-07-28 18:00:57 +00:00
|
|
|
```
|
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
The response is the same as for the original method.
|
2015-07-28 18:00:57 +00:00
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
To enable MFA for a supported method, the MFA type must be set in `mfa_config`.
|
|
|
|
For example:
|
2015-07-28 18:00:57 +00:00
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
```text
|
2015-07-28 18:00:57 +00:00
|
|
|
$ vault write auth/userpass/mfa_config type=duo
|
|
|
|
```
|
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
This enables the Duo MFA type, which is currently the only MFA type supported.
|
|
|
|
The username used for MFA is the same as the login username, unless the method
|
|
|
|
or MFA type provide options to behave differently (see Duo configuration below).
|
2015-07-28 18:00:57 +00:00
|
|
|
|
|
|
|
### Duo
|
|
|
|
|
2015-10-12 16:10:22 +00:00
|
|
|
The Duo MFA type is configured through two paths: `duo/config` and `duo/access`.
|
2015-07-28 18:00:57 +00:00
|
|
|
|
2015-07-28 19:21:43 +00:00
|
|
|
`duo/access` contains connection information for the Duo Auth API. To configure:
|
2015-07-28 18:00:57 +00:00
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
```text
|
2015-07-28 19:21:43 +00:00
|
|
|
$ vault write auth/[mount]/duo/access \
|
2015-07-28 18:00:57 +00:00
|
|
|
host=[host] \
|
|
|
|
ikey=[integration key] \
|
|
|
|
skey=[secret key]
|
|
|
|
```
|
|
|
|
|
|
|
|
`duo/config` is an optional path that contains general configuration information
|
2015-07-28 19:21:43 +00:00
|
|
|
for Duo authentication. To configure:
|
2015-07-28 18:00:57 +00:00
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
```text
|
2015-07-28 19:21:43 +00:00
|
|
|
$ vault write auth/[mount]/duo/config \
|
2015-07-28 18:00:57 +00:00
|
|
|
user_agent="" \
|
|
|
|
username_format="%s"
|
|
|
|
```
|
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
- `user_agent` is the user agent to use when connecting to Duo.
|
2015-07-31 00:16:53 +00:00
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
- `username_format` controls how the username used to login is transformed
|
|
|
|
before authenticating with Duo. This field is a format string that is passed
|
|
|
|
the original username as its first argument and outputs the new username. For
|
|
|
|
example "%s@example.com" would append "@example.com" to the provided username
|
|
|
|
before connecting to Duo.
|
2015-07-31 00:16:53 +00:00
|
|
|
|
2017-09-13 01:48:52 +00:00
|
|
|
- `push_info` is a string of URL-encoded key/value pairs that provides
|
|
|
|
additional context about the authentication attempt in the Duo Mobile
|
|
|
|
application.
|
2016-12-19 20:37:44 +00:00
|
|
|
|
2015-07-28 19:21:43 +00:00
|
|
|
More information can be found through the CLI `path-help` command.
|