SSOGEN / mod_auth_openidc and mod_auth_mellon: Status, Alternatives and Migration

SSOGEN

mod_auth_openidc and mod_auth_mellon: Status, Alternatives and Migration

mod_auth_openidc and mod_auth_mellon are both maintained, and their common directives map onto the SSOGEN Web Agent, setting by setting.

mod_auth_openidc and mod_auth_mellon alternatives: a table of maintenance status and a directive map to the SSOGEN Web Agent
Three Apache modules, compared on protocol, release and fit.

Three Apache HTTP Server modules add single sign-on to the application behind the server:

  • mod_auth_openidc speaks OpenID Connect.
  • mod_auth_mellon speaks SAML 2.0.
  • The SSOGEN Web Agent (mod_ssogen) signs users in through SSOGEN, or runs as a standalone SAML or OpenID Connect client.

All three send an unauthenticated browser to sign in, then tell the application who the user is.

This page compares what each module offers, maps the directives, and states plainly when each one is the better fit.

Are mod_auth_openidc and mod_auth_mellon still maintained?

Yes, both are maintained. mod_auth_mellon has moved repositories, which confuses many guides. The facts below come from GitHub and each project’s README, read on 2026-10-11.

mod_auth_openidc mod_auth_mellon
Repository OpenIDC/mod_auth_openidc latchset/mod_auth_mellon
Protocol OpenID Connect (and FAPI 2.x) relying party SAML 2.0 service provider
Latest release v2.4.20.3, 2026-09-01 v0.19.1, 2024-07-16
Last commit 2026-10-01 2026-10-09
License Apache License 2.0 Not stated in the README
Status in its own words OpenID Certified module for Apache 2.x “under active maintenance”; forked from the original Uninett repository when Uninett chose to retire their version

The original Uninett/mod_auth_mellon repository is archived:

  • Last release. v0.14.2 (2019-03-21).
  • Last commit. January 2020.
  • Older guides. Many older tutorials and some package pages still link to it. Those guides describe the retired original; the project continues under latchset.

How mod_auth_openidc and mod_auth_mellon work, per their own documentation

The facts in this section come from the projects’ own pages, read on 2026-10-08 and re-checked on 2026-10-11.

mod_auth_openidc. The project README calls it an OpenID Certified authentication and authorization module for Apache 2.x. It implements OpenID Connect 1.x and FAPI 2.x Relying Party functionality, under the Apache License 2.0.

mod_auth_openidc directives. Core directives include OIDCProviderMetadataURL, OIDCClientID, OIDCClientSecret, OIDCRedirectURI and OIDCCryptoPassphrase, with AuthType openid-connect on the protected location.

mod_auth_openidc claims. In the sample configuration file, OIDCPassClaimsAs sets how claims reach the application: headers, environment or both (the default). Other defaults:

  • Claim prefix. OIDC_CLAIM_.
  • User name. The Apache user name comes from the sub@ claim.
  • Inactivity timeout. The session inactivity timeout is 300 seconds.

mod_auth_mellon. The project README says it authenticates the user against a SAML 2.0 IdP and grants access to directories depending on attributes received from the IdP.

mod_auth_mellon directives. Core directives are MellonEnable, MellonIdPMetadataFile, MellonSPPrivateKeyFile, MellonSPCertFile and MellonEndpointPath, with AuthType Mellon.

mod_auth_mellon attributes. Attributes appear as environment variables named MELLON_<attribute name>. The repository includes mellon_create_metadata.sh to generate service provider metadata.

Where they are configured. Both modules are configured entirely in Apache, against whichever identity provider you point them at.

Who decides policy. Sign-in policy, MFA and access to the application remain that provider’s job.

What the SSOGEN Web Agent adds

The Web Agent is an Apache module built on the server that runs it, against that server’s own headers.

It brings sign-in policy, MFA and the Oracle header profile to Apache 2.4, Apache 2.2 and Oracle HTTP Server (11g and 12c R1 are Apache 2.2, 12c R2 is Apache 2.4). It has three modes:

Mode What it does Licensing
SSOGENMode ssogen (default) Signs people in through SSOGEN under the application’s sign-in policy and receives a signed grant No license key
Standalone SAML Acts as a SAML service provider for any standards-based provider License key from SSOGEN
Standalone OpenID Connect Acts as an OpenID Connect client with PKCE, nonce and ID token validation License key from SSOGEN

Three capabilities set the Web Agent apart:

  • Built for Oracle applications. By default the agent upper-cases the user name and sends the legacy headers Oracle E-Business Suite, PeopleSoft, JD Edwards, Hyperion and Siebel look for. One setting sends the identity unchanged for any other application. See Oracle HTTP Server SSO.
  • Policy and MFA in front of Apache. In SSOGEN mode, the same assignment, authentication policy and step-up rules apply as for every other application. The application itself does not change. See MFA software.
  • Headers the browser cannot forge. On every request, including paths set to SSOGENProtection off, the agent first strips any identity headers the browser sent, then adds the real ones.

A site looks like this, with placeholders only:

LoadModule ssogen_module modules/mod_ssogen.so
<VirtualHost *:443>
ServerName ebs.acme.example
SSOGENMode ssogen
SSOGENServerURL https://sso.acme.example
SSOGENClientURL https://ebs.acme.example
SSOGENClientId <client id from the console>
SSOGENSessionSecret <same value on every node>
<Location />
SSOGENProtection on
</Location>
</VirtualHost>

The console generates this block on the application’s Integration tab.

Your browser generates the session secret and never sends it to SSOGEN. Use the same secret on every web server, so that every node can read the session cookie.

  • Protection. It starts when you set SSOGENProtection to on or optional; loading the module alone changes nothing.
  • Sign-in methods. LDAP and database sign-in run in SSOGEN, not in the module, so the module has no LDAP or database modes.
  • Build. You build it from the source bundle rather than a packaged installer.
  • Setup guide. The full procedure is in the Web Agent setup guide.

Moving from mod_auth_mellon or mod_auth_openidc to the Web Agent

The directive names differ, but the concepts line up.

Directives for the two open-source modules come from their READMEs (read 2026-10-11). The Web Agent’s standalone modes are SSOGENMode saml and SSOGENMode oidc.

You set mod_auth_mellon mod_auth_openidc SSOGEN Web Agent
Turn it on for a path MellonEnable auth with AuthType Mellon AuthType openid-connect SSOGENProtection on in the <Location>, with SSOGENMode saml or oidc set explicitly
The provider MellonIdPMetadataFile (or MellonIdPMetadataGlob) OIDCProviderMetadataURL SSOGENSamlIdpMetadataURL, or SSOGENOidcProviderMetadataURL
This application’s identity MellonEndpointPath, service provider metadata and key (MellonSPPrivateKeyFile, MellonSPCertFile) OIDCClientID, OIDCRedirectURI SSOGENSamlSpEntityId and SSOGENSamlAcsUrl; or SSOGENOidcClientId and SSOGENOidcRedirectUri
Client secret not applicable OIDCClientSecret SSOGENOidcClientSecret or SSOGENOidcClientSecretFile
Attribute that names the user MellonUser OIDCRemoteUserClaim (default sub@) SSOGENSamlUserAttribute (default NameID) or SSOGENOidcUserClaim (default preferred_username)
Passing attributes to the application MellonSetEnv, MellonSetEnvNoPrefix (MELLON_ prefix) OIDCPassClaimsAs Attributes arrive under their own names, and a mapping directive renames any of them
Session length MellonSessionLength (86400 seconds) OIDCSessionMaxDuration (8 hours), OIDCSessionInactivityTimeout (300 seconds) SSOGENSessionMaxDuration (12 hours), SSOGENSessionIdleTimeout (30 minutes)
Cookie and cache secret session cache sized by MellonCacheSize OIDCCryptoPassphrase (state cookie and cache entry encryption) SSOGENSessionSecret (signs the session cookie; same value on every node)
Licensing open source open source SSOGENLicenseKey required in saml and oidc modes; not needed in SSOGENMode ssogen

Steps for a move, on a test virtual host first:

  1. List the protected paths and the attribute or claim your application reads as the user name.
  2. Register the application with the provider using the Web Agent’s addresses. The ACS URL is normally https://<app-host>/ssogen/acs; the OpenID Connect redirect URI is normally https://<app-host>/ssogen/oidc/callback.
  3. Set SSOGENMode explicitly. The module does not start if any SSOGENSaml* or SSOGENOidc* directive is present without it.
  4. Enter the license key, then compare the headers and variables the application receives with what it got before. For Oracle applications, keep the default application setting; it adds the headers those applications expect.
  5. Check logout and the session timeouts. Each module has different defaults.

Plan the move as a configuration change, not a drop-in swap: the mapping above covers the common directives, not every one.

If SSOGEN is your identity provider, SSOGENMode ssogen is the default and needs no license key. See protect an on-premise application with the Web Agent.

When mod_auth_openidc or mod_auth_mellon is the better fit

  • Open source. You want an open-source module under a standard license and a configuration you control end to end. mod_auth_openidc is released under the Apache License 2.0.
  • A documented profile. You need an OpenID Connect profile the project documents, such as FAPI 2.x, and you handle provider policy yourself.
  • SAML only. You need only a SAML 2.0 service provider on Apache, against an identity provider you already run. mod_auth_mellon is built for exactly that.
  • No header profile. Your application has no Oracle-style header expectations, and the provider already decides sign-in policy.

When the SSOGEN Web Agent fits

  • Oracle applications. The application is Oracle E-Business Suite, PeopleSoft, JD Edwards, Hyperion or Siebel behind Apache or OHS, and expects specific headers.
  • One policy place. You want one place for MFA, step-up and assignment across Apache sites and everything else, plus an audit trail.
  • Mixed versions. You run Apache 2.2 or an older OHS next to current servers and want one source for both.

SSOGEN has built single sign-on for Oracle E-Business Suite, PeopleSoft and JD Edwards since it launched in 2016.

Questions people ask

Is mod_auth_mellon still maintained?

Yes, under a different repository. The original UNINETT repository is archived, but the project continues as latchset/mod_auth_mellon. Its README says it is under active maintenance and was forked when Uninett retired their version. GitHub shows a commit on 2026-10-09 and a latest release, v0.19.1, on 2024-07-16 (read 2026-10-11).

Is mod_auth_openidc still maintained?

Yes. The OpenIDC/mod_auth_openidc repository was last pushed on 2026-10-01, and its latest release, v2.4.20.3, is dated 2026-09-01 (GitHub, read 2026-10-11). It is licensed under the Apache License 2.0 and implements OpenID Connect relying party functionality, not SAML.

What can replace mod_auth_mellon?

The answer depends on the protocol your provider speaks. If it offers OpenID Connect, mod_auth_openidc can take over. For SAML 2.0 on Apache or Oracle HTTP Server, with sign-in policy and MFA decided in one place, use the SSOGEN Web Agent in saml mode. It needs a license key.

Can mod_auth_openidc do SAML?

No. mod_auth_openidc is an OpenID Connect relying party, with AuthType openid-connect. mod_auth_mellon is the SAML 2.0 module. Apache needs one module per protocol, or one module that speaks both, as the SSOGEN Web Agent does in its saml and oidc modes.

Can I use mod_auth_openidc with SSOGEN?

Yes. SSOGEN registers any OpenID Connect relying party that follows the standard, including mod_auth_openidc (see the OpenID Connect registration guide). For a site on Apache, the Web Agent adds the Oracle header profile and SSOGEN sign-in policy.

Does the Web Agent replace the application’s own login?

No. For Oracle applications, the Web Agent passes the user name the application expects as request headers. Each product’s own documentation describes the settings that read those headers.

Which one should I choose?

Check the tables above against three constraints:

  • Version. The Apache or Oracle HTTP Server version.
  • Policy. Who decides sign-in policy.
  • Headers. Whether the application needs a specific header set.

Where to go next

mod_auth_openidc, mod_auth_mellon and Apache are trademarks of their owners; SSOGEN is not affiliated with them.

Sources, all read 2026-10-11: mod_auth_openidc README, mod_auth_openidc sample configuration, mod_auth_mellon README, and the GitHub repository and release pages for OpenIDC/mod_auth_openidc, latchset/mod_auth_mellon and Uninett/mod_auth_mellon.