Skip to content
This repository has been archived by the owner on Jul 24, 2021. It is now read-only.

Single Sign-On Auth #512

Closed
sungo opened this issue Oct 23, 2018 · 4 comments
Closed

Single Sign-On Auth #512

sungo opened this issue Oct 23, 2018 · 4 comments
Labels
api enhancement extends current functionality needs spec Additional information is required, preferably as a formal specification needs-shell needs accompanying changes in conch-shell needs-ui needs accompanying changes in conch-ui v3.0 features, big changes for api v3.0

Comments

@sungo
Copy link
Contributor

sungo commented Oct 23, 2018

We have a new requirement: add support for LDAP. Alternate systems like Google Auth would be nice as well. We still must support "local" accounts, ones located inside a conch database. This will support folks who don't want the other auth or who don't want to add integrators and what not to their LDAP and Google Auth setup.

In conversation, we discussed a microservice that would handle auth and generate a JWT that could be verified by the API et al using public/private keys.

I also fully expect us to remove all non-JWT auth as part of this change.

@sungo sungo added enhancement extends current functionality api breaking needs-shell needs accompanying changes in conch-shell needs-ui needs accompanying changes in conch-ui needs spec Additional information is required, preferably as a formal specification labels Oct 23, 2018
@karenetheridge
Copy link
Contributor

karenetheridge commented Nov 7, 2018

One potential problem here... what do we do if there is no user_account entry for the user? Many endpoints rely on this e.g. to determine admin permissions or workspace access permissions. We might need to add an extra column to user_account to map to the LDAP username to allow existing users to log in using their LDAP credentials -- otherwise if we can't figure out who the user is, we'll have to presume "you have no permissions to access this workspace".

@sungo
Copy link
Contributor Author

sungo commented Nov 7, 2018

I figure we'll have to rework the API authorization system entirely to handle SSO. Sensible defaults, all that sort of thing. Don't assume LDAP. As I noted in the original description, we might support Google Auth or eris knows what. We'll have to figure out how to map users in the SSO system to authorizations in the Conch API. If we do some sort of JWT thing where only the servers can read the claims, we can pass information about who a user is via that data channel. But there are probably quite a few ways to handle that problem.

@sungo
Copy link
Contributor Author

sungo commented Jan 22, 2019

After some internal discussion, it looks like our primary target should be SAML. Particularly, being a SAML service provider. My proposal at this point is that we produce an SSO shim service with a plugin architecture. Initially, it would support just the current conch auth tables and structures. Then we would implement a SAML plugin, with perhaps an option to use the first plugin as a fall back. That'd let us support remote auth and continue to support local accounts.

@karenetheridge
Copy link
Contributor

closed in favour of #929.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
api enhancement extends current functionality needs spec Additional information is required, preferably as a formal specification needs-shell needs accompanying changes in conch-shell needs-ui needs accompanying changes in conch-ui v3.0 features, big changes for api v3.0
Projects
None yet
Development

No branches or pull requests

3 participants