1

On one of our teams, we've been rapidly and individually developing or deploying a large number of dedicated web services. Some we build (using Django, Flask, Node, etc.), others are open source projects we just run (e.g. Wekan, Nifi, etc.). We maintain SSO for centralizing credentials and permissions for users, developers, and admins, and run a combination of KeyCloak (which provides both OIDC and SAML), for application user management, and Dex, for controlling Kubernetes credentials (all services are deployed within that cluster).

We're very quickly running into difficulties actually making SSO work, however. Every application and web framework has a different way of integrating SSO, if it supports it at all. We've had to ditch a few capabilities because they didn't readily work with our SSO infrastructure. We're becoming increasingly hesitant to deploy new types of services because the time cost of integrating SSO is significant each time. In the long run, it's probably less effort than maintaining separate credentials on every single service, but not by much, at least in the short term.

My question is this: since we control our network and cluster, is there a good or common way of setting up a single web portal that integrates with SSO, then embeds or proxies the individual services, which could then either be unsecured (but only reachable from that SSO-enabled proxy) or have user identity passed along somehow? Is this a common thing to do with well-defined protocols or common open-source solutions? Or is there a reason I can't find a way to do this? It seems like there should be some authentication/identity equivalent to SSL termination.

1
  • You could use Shibboleth. May 28, 2020 at 22:04

1 Answer 1

0

You could use e.g a reverse proxy as entry point with centralized authentication/authorization.

But, that does only provide a way to regulate/control access and would not provide user/group/permission information within the accessed service.

Many services also provide LDAP integration, which is one of the most supported/common standards for directory data. LDAP can as well be used as backend for KeyCloak.

In many cases LDAP connection for services is pretty staight forward to setup, in some applications fine grained access is only supported in the commercial versions.

Often LDAP is provided through a Active Directory infrastructure that is used for DNS and Windows logon.

3
  • I'm familiar with reverse proxies, but am not sure how I'd handle authentication and identification that way unless I was building the service myself. I'm also familiar with LDAP, but that falls into much the same bucket as OIDC and SAML (if perhaps more broadly available) of requiring figuring out how to configure each individual service, which often introduces nuances and difficulties.
    – scnerd
    May 31, 2020 at 17:15
  • Using Apache the directives are e.g. httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html or other of the type auth, combined with a host that proxies the requests can be configured to be a reverse proxy with authentication/authorization.
    – hargut
    Jun 4, 2020 at 6:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .