mirror of
https://github.com/lldap/lldap.git
synced 2026-03-31 15:07:48 +01:00
example_configs: Add MFA with DuoAuthProxy
This commit is contained in:
@@ -595,6 +595,7 @@ folder for help with:
|
|||||||
- [Dex](example_configs/dex_config.yml)
|
- [Dex](example_configs/dex_config.yml)
|
||||||
- [Dokuwiki](example_configs/dokuwiki.md)
|
- [Dokuwiki](example_configs/dokuwiki.md)
|
||||||
- [Dolibarr](example_configs/dolibarr.md)
|
- [Dolibarr](example_configs/dolibarr.md)
|
||||||
|
- [Duo Auth Proxy](example_configs/duo_auth_proxy.md)
|
||||||
- [Ejabberd](example_configs/ejabberd.md)
|
- [Ejabberd](example_configs/ejabberd.md)
|
||||||
- [Emby](example_configs/emby.md)
|
- [Emby](example_configs/emby.md)
|
||||||
- [Ergo IRCd](example_configs/ergo.md)
|
- [Ergo IRCd](example_configs/ergo.md)
|
||||||
|
|||||||
@@ -0,0 +1,105 @@
|
|||||||
|
# Duo Auth Proxy Configuration Guide
|
||||||
|
|
||||||
|
## Configuring DuoAuthProxy
|
||||||
|
|
||||||
|
To set up DuoAuthProxy with LLDAP, you need to configure the `authproxy.cfg` file properly.
|
||||||
|
|
||||||
|
### Access your Duo admin console
|
||||||
|
1. Log in to your Duo admin console.
|
||||||
|
2. Navigate to **Applications** -> **Protect an Application**.
|
||||||
|
3. Search for `proxy` and select **LDAP Proxy**.
|
||||||
|
4. Copy the credentials (`ikey`, `skey`, `api_host`) for the next step.
|
||||||
|
|
||||||
|
### Example Configuration
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[main]
|
||||||
|
log_stdout=true
|
||||||
|
|
||||||
|
[ad_client]
|
||||||
|
host=LLDAP
|
||||||
|
port=3890
|
||||||
|
auth_type=plain
|
||||||
|
bind_dn=uid=svc-duoauthproxy,ou=people,dc=example,dc=com
|
||||||
|
service_account_username=svc-duoauthproxy
|
||||||
|
service_account_password=password
|
||||||
|
search_dn=ou=people,dc=example,dc=com
|
||||||
|
username_attribute=uid
|
||||||
|
at_attribute=mail
|
||||||
|
|
||||||
|
[ldap_server_auto]
|
||||||
|
ikey=DIXXXXXXXXXXXXXXXXXX
|
||||||
|
skey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||||
|
api_host=api-XXXXXXXX.duosecurity.com
|
||||||
|
failmode=secure
|
||||||
|
client=ad_client
|
||||||
|
port=1812
|
||||||
|
exempt_primary_bind=false
|
||||||
|
exempt_ou_1=uid=svc-duoauthproxy,ou=people,dc=example,dc=com
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running DuoAuthProxy in Docker
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker run -d \
|
||||||
|
--name=DuoAuthProxy \
|
||||||
|
--network auth \
|
||||||
|
-v /path/to/authproxy.cfg:/app/conf/authproxy.cfg \
|
||||||
|
--restart unless-stopped \
|
||||||
|
minimages/duoauthproxy
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also choose to host it natively or generate your own image using the official instructions.
|
||||||
|
|
||||||
|
# Connecting a Service to Duo Auth Proxy
|
||||||
|
This section demonstrates how to connect a service to Duo Auth Proxy, using Jellyfin as an example. You can follow the same approach for other services.
|
||||||
|
## Preparing Jellyfin
|
||||||
|
|
||||||
|
Ensure Jellyfin is set up and added to the `auth` network:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker network connect auth jellyfin
|
||||||
|
```
|
||||||
|
|
||||||
|
### Installing LDAP Authentication Plugin
|
||||||
|
|
||||||
|
Jellyfin requires the LDAP Authentication plugin. Restart Jellyfin after installing the plugin.
|
||||||
|
|
||||||
|
### Configuring LDAP Authentication in Jellyfin
|
||||||
|
|
||||||
|
#### **LDAP Server Settings**
|
||||||
|
- **LDAP Server:** `DuoAuthProxy`
|
||||||
|
- **LDAP Port:** `1812`
|
||||||
|
- **Secure LDAP:** unchecked
|
||||||
|
- **StartTLS:** unchecked
|
||||||
|
- **Skip SSL/TLS Verification:** checked
|
||||||
|
- **Allow Password Change:** *(optional, requires `lldap_password_manager` group)*
|
||||||
|
- **LDAP Bind User:** `uid=svc-duoauthproxy,ou=people,dc=example,dc=com`
|
||||||
|
- **LDAP Bind User Password:** `password`
|
||||||
|
- **LDAP Base DN for searches:** `ou=people,dc=example,dc=com`
|
||||||
|
|
||||||
|
Click **Save and Test LDAP Server Settings** to check connectivity.
|
||||||
|
|
||||||
|
#### **LDAP User Settings**
|
||||||
|
- **LDAP Search Filter:** `(uid=*)`
|
||||||
|
- **LDAP Search Attributes:** `uid, mail`
|
||||||
|
- **LDAP Uid Attribute:** `uid`
|
||||||
|
- **LDAP Username Attribute:** `uid`
|
||||||
|
- **LDAP Password Attribute:** `userPassword`
|
||||||
|
- **LDAP Admin Base DN:** `ou=people,dc=example,dc=com`
|
||||||
|
- **LDAP Admin Filter:** `(memberof=cn=lldap_admin,ou=example,dc=com)`
|
||||||
|
|
||||||
|
Click **Save and Test LDAP Filter Settings** to verify user detection.
|
||||||
|
|
||||||
|
#### **Final Setup**
|
||||||
|
- Enter `admin` in **Test Login Name**
|
||||||
|
- Click **Save Search Attribute Settings and Query User** to finalize lookup
|
||||||
|
- Adjust **Jellyfin User Settings** as needed
|
||||||
|
- Click the big blue **Save** button
|
||||||
|
|
||||||
|
If existing users are present, switch their authentication provider to **LDAP-Authentication**.
|
||||||
|
|
||||||
|
### Testing the New Authentication Flow
|
||||||
|
|
||||||
|
Log out and attempt login to verify the new authentication flow. If issues arise, restart Jellyfin and try again.
|
||||||
|
|
||||||
Reference in New Issue
Block a user