Skip to content
Snippets Groups Projects
README.duo 1.91 KiB
Newer Older
This README file explains how to use base::duo.

VERSION 4->5 UPGRADE NOTE: If your code involves base::duo, that's not going to 
work anymore.  Have a look at base::duo::config instead, or README.ssh.

The term Duo uses is "integration", to refer to a set of credentials that a 
client (like your system) will use to authenticate itself to Duo.  base::duo 
manages the process of fetching and customizing 'duo-unix' integrations, which 
is the type of integration that can be used for things like login, sudo, and 
web-based two-step (such as something that your web application might trigger).

Duo integrations are keyed on the system name, so if you have multiple Duo uses 
on a single system (e.g. SSH and sudo), all uses will share the same Duo 
integration, but _may_ use different Duo configuration files: If the Duo uses 
on a single system have different needs (such as one failing safe and one 
failing secure), that will require separate Duo configuration files.

Duo integration keys do not change or expire, unless a `wallet destroy` or a 
Duo administrator manually deletes a Duo integration.

If you do ever need to destroy a Duo integration, here's the command to use:

        wallet destroy pam-duo hostname.stanford.edu

To generate a Duo configuration file, instantiate an object of 
base::duo::config, where the name is the path to the Duo configuration file.  
For example:

base::duo::config { '/etc/secure/duo_webapp.conf':
  ensure     => present,
  failsecure => true,
}

To see the options available, have a look at the header text in 
manifests/duo/config.pp.  There are other classes in the base::duo namespace, 
but they're all invoked as needed by base::duo::config.

To be honest, the only time you'll need to invoke base::duo::config directly is 
when you have a custom thing that wants to leverage Duo.  If you're interested 
in using Duo to authenticate SSH or sudo, have a look in README.ssh or 
README.sudo instead.