Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider supporting OIDC / SSO / Oauth #277

Open
3 of 14 tasks
joepio opened this issue Jan 7, 2022 · 0 comments
Open
3 of 14 tasks

Consider supporting OIDC / SSO / Oauth #277

joepio opened this issue Jan 7, 2022 · 0 comments
Assignees
Labels
security server atomic-server

Comments

@joepio
Copy link
Member

joepio commented Jan 7, 2022

Atomic Data introduces a new self-sovereign public key based authentication mechanism. This has its merits (users are in full control of their identity, instead of servers), but pretty much everyone out there already settled on a standard: Open ID Connect. Supporting this helps achieve a few goals:

  • Sign in with your existing OIDC account (google, facebook, or your companies SSO server). No need to create a new account!

Thoughts

Libraries Rust

Libraries JS

TODO

  • endpoint for adding new Publickey to Agent
  • JWT support
  • ENVs for OIDC
  • Setup LogTo account
  • Store link between agent and user somewhere?

Flow

  • On starting AtomicServer, check presence of OAuth client + secrets in .env
  • (maybe) check if the Oauth server token is valid? Can also check this when signing in a user
  • Front-end checks if server supports some Oauth provider (e.g. google)
  • If true, show a button for this provider in the RegisterSignIn component
  • When clicked, get a token from the OAuth provider.
  • Store the token (I assume this is stored as cookie, so nothing we need to do)
  • Client tells server to create user / sign in?
  • Server checks cookie / HTTP headers for token
  • Server validates token with OAuth provider

Commits & private key management

If we sign in using some external identity provider, we are redirected to some page. This could be an endpoint that registers a public key to an Agent, adding it to the Agent resource.

Link with email

We're probably not going to be an identity provider, so we can keep things simple. Still, it would make sense to have email support for things like notifications.

But what about signing in using a magic link? Should users be able to add new public keys using email without using OIDC / Oauth? #276

@joepio joepio mentioned this issue Nov 20, 2022
4 tasks
@joepio joepio added this to the Eurostars Deliverables milestone Sep 29, 2023
@joepio joepio self-assigned this Sep 29, 2023
@joepio joepio added server atomic-server security labels Feb 12, 2024
@joepio joepio removed this from the _ milestone Nov 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
security server atomic-server
Projects
None yet
Development

No branches or pull requests

1 participant