Thanks Marc. Does this config snippet look right?
#!/usr/local/sbin/tac_plus-ng
id = spawnd {
listen = {
port = 49
}
background = yes
debug = ALL
}
id = tac_plus-ng {
debug redirect = /var/log/tac_plus-ng/debug.log
log accesslog { destination = /var/log/tac_plus-ng/access/%Y%m%d.log }
log authzlog { destination = /var/log/tac_plus-ng/auth/%Y%m%d.log }
log acctlog { destination = /var/log/tac_plus-ng/acct/%Y%m%d.log }
access log = accesslog
authorization log = authzlog
accounting log = acctlog
mavis module = external-mt {
setenv LDAP_SERVER_TYPE = "generic"
setenv LDAP_HOSTS = "ldaps://my.duo.authproxy.local:636"
setenv LDAP_BASE = "cn=users,cn=accounts,dc=my,dc=domain"
setenv LDAP_BASE_GROUP = "cn=groups,cn=accounts,dc=my,dc=domain"
setenv LDAP_USER = "uid=tacacsuser,cn=users,cn=accounts,dc=my,dc=domain"
setenv LDAP_PASSWD = "ldap_password"
setenv LDAP_MEMBEROF_FILTER = "^cn=(tacacs[^,]+),.*"
setenv LDAP_OPT_X_TLS_REQUIRE_SAN = LDAP_OPT_X_TLS_HARD
exec = /tacacs/sbin/ldapmavis-mt
}
login backend = mavis
user backend = mavis
pap backend = mavis
mavis noauthcache
authentication fallback = yes
I couldn't get it to work with an incorrect cert (CN/SAN wrong). Even setting LDAP_OPT_X_TLS_REQUIRE_SAN = LDAP_OPT_X_TLS_NEVER I was expecting to see an error message, but didn't see one.
It could definitely be user error, let me know if you spot something I'm doing wrong. Unfortunately I won't have time until next week to play with it more.