cisagov / ansible-role-openvpn

Ansible role to install an OpenVPN server and configure it to authenticate users certificates against FreeIPA.
Creative Commons Zero v1.0 Universal
8 stars 2 forks source link

Use FreeIPA API to authenticate and authorize users instead of LDAP. #18

Closed felddy closed 4 years ago

felddy commented 4 years ago

๐Ÿ—ฃ Description

๐Ÿ’ญ Motivation and Context

We were running into issues with LDAP comparing DNs. Specifically multi-value RDNs. The order of AVAs with and RDNs is insignificant (is a set). There is no way to "normalize" a CN that will thwart our badging offices ability to scramble up our UIDs nicely.

See: https://frasertweedale.github.io/blog-redhat/posts/2019-05-28-a-dn-is-not-a-string.html

We are now configuring OpenVPN to pass the user's entire public certificate to us as a file. It is then sent to FreeIPA for matching.

As an added benefit we can now ask FreeIPA interesting questions not only about group membership, but multiple attributes that would deactivate an account, preventing login.

๐Ÿงช Testing

Tested in staging. Molecule tests.

๐Ÿ“ท Screenshots (if appropriate)

๐Ÿšฅ Types of Changes

โœ… Checklist