Hi,
we've received a request to setup connection of a Dataverse to DFN AAI. The Dataverse is running in Kubernetes.
From what I could gather, it seems that integration of a Shibboleth-based identity provider like DFN AAI in this kind of environment is relatively complicated (e.g. https://guides.dataverse.org/en/latest/installation/shibboleth.html#shibboleth + https://github.com/IQSS/dataverse/issues/5974 "Shibboleth as an SP IMHO is a nightmare" :grimacing: @Oliver Bertuch ).
Is there any recommended approach for this? Or has anyone done something like this? I've only worked with OIDC-based providers thus far...
Thanks in advance!
Ha, I don't think it's SO bad.
We use Shibboleth in production at Harvard Dataverse.
And lots of Dataverse installations use it, I'd say.
Maybe you can help us learn any shortcomings in those docs you linked.
I'm not sure how suitable those installation instructions from the docs are for a Docker/Kubernetes-based environment. I.e., when running a gdcc/dataverse image, those instructions would need to be applied on top?
Not critiquing the docs per se, I'll admit I am feeling slightly out of my depth here :smile:
Also found these notes here:
Shibboleth is perfectly suited for use as an identity provider.
Running it as a service provider for Dataverse on a Kubernetes deployment is a bad idea. It violates best practices of one service per container and locks you into an Apache-based reverse proxy. You will want to avoid that by all means on Kubernetes cluster.
https://k8s-docs.gdcc.io/en/v4.20/day3/auth.html
(author is also @Oliver Bertuch I believe? :smile: )
Yeah, let's drag @Oliver Bertuch into this if we can. I may be missing something!
@Don Sizemore knows all about Shib as well.
I can only advice against using shibd. There is nothing wrong with using SAML though. IMO the best way forward is using a Broker. Dataverse talks OIDC with it. Any heavy lifting and mapping can be done by the broker (Keycloak, DeX, Unity,...)
Dex is really lightweight. Keycloak better if you need advanced stuff. Unity is what drives Helmholtz AAI and some others.
As you are going to federate, maybe DeX is _too_ lightweight. Not sure if and how they support discovery and feeds.
If your institution already runs shibd as IDP and is federated with DFN, they may be able to run the SP for you and enable OIDC brokering on it.
Can't you use NFDI AAI from Base4NFDI? IIRC they federate with DFN already and provide OIDC.
All that said: you can of course run Shibd on K8s in SP mode. But maybe use the OIDC brokering module they provide and don't use the special reverse proxy setup Dataverse suggests. As you run an OIDC based frontend, IMO this won't be a viable/sustainable option for you (or anyone else looking into the Modern UI).
@Vera Clemens I remember that Slava got Shibboleth working in Kubernetes, but he had to forward some additional headers to the Apache mod_shib proxy.
Some of that may be found here IIRC: https://github.com/search?q=repo%3AIQSS%2Fdataverse-docker%20shibboleth&type=code
Don Sizemore said:
Vera Clemens I remember that Slava got Shibboleth working in Kubernetes, but he had to forward some additional headers to the Apache mod_shib proxy.
@Slava Tykhonov ^^
Thanks for the detailed info!! I will take a look and we'll consider our options. Integration via a broker sounds like the most straightforward approach, considering we already have some experience running a Keycloak. But we'll see. Integrating the Base4NFDI AAI also sounds like an interesting idea.
(Just btw, this is for a new & separate Dataverse instance we are administrating, which is using the standard Dataverse UI)
If this is for a "Classic UI" based Dataverse, using the Apache + mod_shib + AJP approach may be feasible. I still wouldn't advise to do it for any _new_ installation, as the Classic UI is phasing out and you'll need OIDC anyway for the Modern UI.
Last updated: Aug 18 2026 at 08:27 UTC