GNU Mailman

../_images/mailman.jpg

Presentation

Mailman is free software for managing electronic mail discussion and e-newsletter lists. Mailman is integrated with the web, making it easy for users to manage their accounts and for list owners to administer their lists. Mailman supports built-in archiving, automatic bounce processing, content filtering, digest delivery, spam filters, and more.

Mailman uses django-allauth for external authentication. And as of version 0.49, django-allauth is compatible with LemonLDAP::NG

First, make sure you have set up LemonLDAP::NG ‘s OpenID Connect service and added a Relaying Party for your Mailman instance

Mailman can use the following OpenID Connect attributes to fill the user’s profile:

  • name
  • email
  • preferred_username

Make sure you create a Client ID and a Client Secret for the Relying Party, and that the mailman callback URL is allowed : https://mailman.example.com/accounts/lemonldap/login/callback/

Mailman configuration

Note

Make sure you are using at least version 0.49 of django-allauth

Provider activation

In the Mailman config (settings.py), enable the LemonLDAP::NG provider:

INSTALLED_APPS = [
 'allauth',
 'allauth.account',
 'allauth.socialaccount',
 'allauth.socialaccount.providers.lemonldap',
]

SOCIALACCOUNT_PROVIDERS = {
    'lemonldap': {
        'LEMONLDAP_URL': 'https://auth.example.com',
    },
}

Provider configuration

Browse to Mailman django administration, then add a new Social application

  • Provider: LemonLDAP::NG
  • Name: pick one
  • Client id: must match the Client ID set in LemonLDAP::NG
  • Secret key: must match the Client Secret set in LemonLDAP::NG
  • Sites: choose which Mailman site can use LemonLDAP::NG

You should then be able to login on your Mailman site using LemonLDAP::NG