A Juju subordinate charm for the Squid reverse proxy charm that enables digest or basic authentication using squid-auth-helper relation.
As a subordinate charm this charm requires the Squid reverse proxy charm to be deployed and integrated with it.
The charm brings digest or basic authentication support to the Squid reverse proxy using the squid-auth-helper charm relation.
It allows you to manage user credentials through charm actions (create-user, remove-user, list-users), and configure authentication
parameters using charm configuration.
While the Squid reverse proxy charm targets a "reverse proxy setup". This subordinate charm is currently only tested for a "forward proxy" use case.
If you don't already have a running Juju environment, you can follow the Get started with Juju guide to set up an isolated test environment.
As this charm is a subordinate charm, you should have a Squid reverse proxy charm running before deploying it.
- Create your Juju model:
juju add-model test-squid - Deploy the reverse proxy charm:
juju deploy squid-reverseproxy - Monitor the deployment with:
juju status --watch 2s
Important: for the authentication to be triggered, you need to set up ACL and disable vhost acceleration. You can do so with the following command: juju config squid-reverseproxy auth_list='- "proxy_auth": [REQUIRED]' port_options="".
Once your Squid instance is running, deploy the auth helper charm with juju deploy digest-squid-auth-helper and integrate it with your reverse proxy with juju integrate squid-reverseproxy digest-squid-auth-helper.
The default configuration can be seen using the juju config digest-squid-auth-helper command.
The default authentication type is "digest". If you want to switch to Basic authentication, you can issue the juju config digest-squid-auth-helper authentication-type=basic command.
Warning: changing the authentication type will reset all existing users.
New users can be given access through the juju run digest-squid-auth-helper/0 create-user username=yourusername. The command will return you the username, realm and password.
The juju run digest-squid-auth-helper/0 list-users will return the list of active users.
You can remove users with juju run digest-squid-auth-helper/0 remove-user username=yourusername
Note: Squid caches some authentication lookups (see documentation).
The digest-squid-auth-helper subordinate charm is a member of the Ubuntu family. It's an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.