jsso2 VS webauthn

Compare jsso2 vs webauthn and see what are their differences.

jsso2

Self-hosted passwordless single signon. (by jrockway)

webauthn

Web Authentication: An API for accessing Public Key Credentials (by w3c)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
jsso2 webauthn
3 33
32 1,094
- 1.1%
0.0 8.9
over 1 year ago 9 days ago
Go HTML
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

jsso2

Posts with mentions or reviews of jsso2. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-25.
  • WebAuthn Browser Support
    3 projects | news.ycombinator.com | 25 Apr 2022
    That's weird. I implemented it a year ago and it basically works perfectly on all the browsers I use. I can enroll a Yubikey on my desktop, and then hold it up to my iPhone to log in. (Of course, I also enrolled FaceID on the phone.)

    My one complaint is that enrollments don't sync between my iPhone and my iPad. Had to enroll my face twice.

    Code is here: https://github.com/jrockway/jsso2 (not security reviewed or well documented)

  • Why Single Sign on Sucks
    2 projects | news.ycombinator.com | 11 Mar 2022
    I went this route. I really like the design of Google's Identity-Aware Proxy. You host your apps behind it, the proxy authenticates users and passes a JWT to the application that contains additional metadata. The app can choose to care or not care about the JWT. This is nice for read-only things that aren't particularly important (something like jaeger-ui). Or the app can choose to care, and do one cryptographic operation to get a trustworthy username and group membership list. This is so much easier from an operations and implementation perspective than integrating something like OIDC. I wish more applications supported this, and didn't force me to hack OIDC into this flow.

    As for WebAuthn, yes, that's what you should be using these days. People are terrible at choosing passwords, so why make them?

    I wrote an authenticating proxy that maintains username -> WebAuthn credentials, and use it for my personal projects. I wouldn't recommend that someone else use it (incomplete featureset, not security reviewed), but it's totally open source so you can steal the bits you like: https://github.com/jrockway/jsso2

    The end result is that I can open up Grafana on my phone and sign in with FaceID. Or if my face falls off, I can scan my YubiKey with NFC. All given to you for free for using WebAuthn. And it costs $0/month, which is much less than the Oktas of the world charge for a more

  • Okta to Acquire Auth0 for $6.5B
    6 projects | news.ycombinator.com | 3 Mar 2021
    I was thinking very seriously about starting this company. There were some details I could never work out, and then Covid hit, so I didn't pursue it.

    My thoughts are:

    1) One login per day per person is the maximum number of times I would ever consider asking for authentication. This is where OAuth fails; you visit an app that wants you to authenticate, but you don't get automatically logged in. You have to click at least twice. Huge drag and I hate it to death. When I worked at Google, we had BeyondCorp and I was asked for a password and security key touch once a day and could then browse internal apps freely. I would not accept anything less. (Okta and Auth0 fail here.)

    But, this requires infrastructure, like trusting client devices and their screen locks. Writing software to secure some random bring-your-own-laptop is a full-on company in and of itself, and if that fails, your whole authentication system fails. (Malware starts impersonating the human.) Google's corporate engineering got this right, but I don't have that knowledge/experience to do that myself.

    2) I really like the "identity aware proxy" design. There is an internal network, your app servers run there, and the proxy bridges that to the Internet and handles all the authentication details. The proxy signs a token that says who accessed it, and the app doesn't need to care. The problem here is that no apps support this. Every open-source web application bundles 10,000 lines of code for their own IAM system, and everyone seems totally fine with this. There is no standard, really, for identity aware proxies, and therefore no way for an app to recognize a standard token. (And, apps also need to do IAM management beyond just knowing who the logged-in user is, so you need a protocol to talk to the identity provider.) Yes, OIDC tries to fix some of these things, but it really isn't ... good. It optimizes for the problem of letting you log in to StealMyEmail.com with your Google account, without compromising your entire Google account. Not what people need for their internal applications.

    Anyway, I bring it up because people clearly don't like this idea. They can't run an "internal network" securely, because you see the same flaws with this architecture again and again -- chat service's link unfurler takes a malformed link and makes a GET request to an internal application and leaks data; someone's jumpbox gets compromised and their network gets completely owned; "SSL added and removed here :-)"; etc. Very few people have successfully set up internal mTLS, which you really need for the proxy model to work. So instead, they just treat each app as its own island with a set of users, and identity provider, and session tokens, etc. Okta and Auth0 handle this case really well (well, they charge you a lot of money to pretend to sync the users), and that's why they're successful. But the user experience sucks, and the application developer experience sucks, and the application operator experience sucks. Hey, everyone's happy! Give me 6.5 billion dollars!

    3) Every identity provider needs some answer to the SSH problem. People have been trying to do this for more than 30 years and it continues to suck. I think it's unsolvable. But thinking it's unsolvable means you don't get any customers, so that's a problem for me ;)

    4) People are very interested in add-ons that are required by standard compliance rules. To be in certain businesses, you have to have a "web application firewall", which is basically something that greps the incoming request for "DROP TABLE users" and returns an error if that's in there. Denylisting will never work, but maintaining that denylist is yet another full-time company. You'll never catch up with the established players here, at least not as a 2 person startup.

    5) The product I wanted to make was a centrally-managed IDP, with little proxies you could place wherever you needed one. At my last job, this is something we tried to buy from Duo, but their product was terrible. Our software engineering team had one Kubernetes cluster, with one connection to the Internet that was easy to proxy. (We used Envoy, and I wrote an SSO auth plugin, and everything was great for us.) Our network engineering team just had VMs everywhere, with an nginx that reached out to Duo for auth. It checked the security box, but you had to log into every web app twice -- once to log into Duo, once to log into the app itself. Awful.

    Anyway, I do like the model. It's easy enough to write a nginx plugin and Envoy sidecar and whatever else people want, and then have it connect over TLS to receive instructions from a central leader. The tough bit is keeping those proxies functional when the central server dies (maybe new users can't login when it's down, but people with session material should be able to keep using it). There are a few designs -- just push the session cookie to every proxy when someone logs in and have the proxy check sessions with a simple string comparison. Now you survive some types of downtime (good luck firing someone when the central server is down), but that lets a proxy administrator start impersonating other users by writing a malicious proxy, GDB-ing it, whatever. So that's no good. Another option is to use public key crypto so that the proxy operator can't mint valid tokens, but every time I think about it I feel like I have the design, then I write out the details and find that it doesn't work. (That happened just now, I thought I had it for sure, but I don't ;)

    All of these details were the killer for me. The business looks tough, but the technology isn't easy either. I did get mad enough to write something for myself (https://github.com/jrockway/jsso2), but that is not something I would ever consider selling -- it's just a very simple IDP and authenticating proxy. Perfect for blocking HN users from visiting https://alertmanager.jrock.us/, but still lets me look at it from my phone. (With FaceID and not a password, of course!)

    I don't know what the future here is. Companies like Tailscale have the right idea -- don't trust any endpoint, human or "server". But you have to bring your own IDP, and applications can't know which human they are talking to. (Or at least, there wasn't an API to map the Tailscale source IP address to the human username when I last looked.) And, the mesh doesn't work for people that are already happy with having an internal network. I run everything on Kubernetes, and I don't want to use some crazy CNI to make every Pod a member of the network... too much stuff can break for the 0.0001% of the time when I want to directly connect to a Pod.

    I guess what happened is that nobody ever decided how things should be done, so everyone does their own thing. That makes it a difficult market for a startup to enter, because you have to hope that your opinion is shared by enough people to have a customerbase to support you.

    TL;DR: Everything is awful and it makes me mad.

webauthn

Posts with mentions or reviews of webauthn. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-02.
  • Passkey Implementation: Misconceptions, pitfalls and unknown unknowns
    8 projects | news.ycombinator.com | 2 May 2024
    These crop up every now and again but they never address my biggest concern, which how we (the users) can prevent abuse of https://w3c.github.io/webauthn/#attestation-object such that only those of us with approved devices are allowed to authenticate.

    It's not hard to imagine Google and Apple and a few others finding ways to pressure authenticators into blocking access to users of devices that cannot prove that they're running firmware which bellyfeels ingsoc.

  • Passkeys – Under the Hood
    2 projects | news.ycombinator.com | 17 Mar 2024
    Sure, but why not preserve the option for people to use hardware keys?

    Unfortunately, both the FIDO and WebAuthN working groups seem to be dead-set on making the hardware authenticator use case as painful as possible [1] [2] [3].

    I just don't get it. Why even try to pretend that WebAuthN is a single API for both use cases when all stakeholders in charge seem to have given up on one of them?

    [1] https://github.com/fido-alliance/how-to-fido/issues/16

    [2] https://github.com/w3c/webauthn/issues/1612

    [3] https://github.com/w3c/webauthn/issues/1822

  • KeePassXC Issue: [Passkeys] should never be exported in clear text
    2 projects | news.ycombinator.com | 13 Mar 2024
    I'm not trying to do callout posts or anything here, I know that the people involved are genuinely trying to do their best. I'm grateful that Bitwarden is involved with passkeys. But, for all of that gratitude, I still have to say: Bitwarden got a huge amount of attention for being the Open Source implementation of this, and Bitwarden and 1Password were both used as examples that shut down criticisms about portability, and lack of communication and clarity is a big part of how Bitwarden/1Password got used to spread what I would genuinely consider to be misinformation about the current state of the passkey ecosystem.

    It's not just that export wasn't supported, it's that this giant limitation that was in many ways the reason why people were so excited about Open implementations in the first place was quietly left unsaid.

    I really genuinely do appreciate the work everyone is doing. But at no point when Bitwarden was writing posts and releases about passkey support did anyone writing that stuff think, "people will think this means export is supported, we should clarify that."?

    It's so hard not to look at this communication and not think that these kinds of details were deliberately omitted. I'm sure they weren't! I know that emotions are wrong and that everyone involved means the best. But crud, that is how it feels.

    How many people who got excited about Bitwarden's implementation even know that they still can't export and import their passkeys? Maybe that'll be a fun surprise for them next time they try to do an import into a new account. Bitwarden's announcements didn't mention this limitation, and as a result no press coverage of Bitwarden mentioned this, and any casual observer who didn't know to go read the documentation and deliberately ask about it would come away from this coverage thinking that export was supported -- and in fact I would argue people did. People think the portability problem is solved because Bitwarden and 1Password exist.

    Needing to double-check this kind of stuff, not having transparency or open conversations about any of it is part of the regular frustration of trying to learn about the passkey ecosystem. Very often when I talk to people in industry about passkeys, I will get answers that really sound like they are addressing people's concerns. And then you dig into them, and... they don't. But that's never communicated unless you do the research. So much of the advocacy is saying stuff that is technically true, but has huge unmentioned caveats or that doesn't actually when you dig into it address the concerns that people have or is using some weird definition that isn't what most people would use.

    "Passkeys are portable now!"

    "So I can export them?"

    "Well, that depends on what your definition of portable is."

    Bitwarden never technically said that it supported export, but I'm going to go out on a limb and say that a lot of casual observers reading about portability and sync and OS-independence think that Bitwarden does support export, and Bitwarden really isn't going out of its way to avoid that impression. I mean, props for having it in the user docs, that is better than 1Password. +1 for Open Source being more transparent than proprietary software, genuinely I appreciate it. But the only reason I know that Bitwarden doesn't currently support export... is because I knew that I couldn't assume it and I knew that I needed to check the docs. It's not something that's communicated in the announcement, it's not something that's communicated in the FAQ, it's not something that's communicated in any press coverage, it's not something that's communicated unless you know what to Google search.

    ----

    > The best place to argue this “in the open” is by raising issues in the w3c/webauthn repo, or meetings, which is open.

    Here are the open issues about portability: https://github.com/w3c/webauthn/issues?q=portability

    Maybe I'm searching wrong? Here's migration: https://github.com/w3c/webauthn/issues?q=migration

    What am I missing here? I apologize if there's some thread that I just haven't been able to find, but... if this is an open process, where is the conversation happening? I don't want to be a jerk about this; should I be showing up at w3c meetings and complaining about other meetings that aren't happening there? That doesn't seem helpful to anyone, I don't see how that would be productive. But if this is genuinely happening as part of the w3c/webauthn space, then where in that space are the conversations about portability and export? What issues should I be following?

    Is the problem that nobody has raised an issue in that space? Because that's a very weird thing if true; I've been told for nearly a year that work is ongoing on migration/export. In all that time, none of that conversation ended up on the webauthn repo, the ostensibly official place for the spec to be discussed?

    This just feels like a dismissal; if the webauthn repository is where these conversation should be happening, then why aren't they happening there? This isn't Bitwarden's fault, I'm speaking broadly to anyone involved in this process -- this is a multi-company process that has been happening for months and months and months and I would love to know where those industry-spanning conversations actually exist, so that I can stay up to date on what's going on without needing to search for crumbs of developer updates on Reddit, Mastodon, and Twitter.

  • Implement passkeys on our own sites
    1 project | /r/webdev | 7 Jun 2023
    I agree, FIDO and webauthn. As for implementing, here's the API GitHub link .
  • Passkeys now support external providers
    2 projects | news.ycombinator.com | 6 Jun 2023
    https://github.com/w3c/webauthn/issues/1667
  • What are passkeys?
    2 projects | /r/Bitwarden | 5 Jun 2023
    If you're doing something like passwordless and usernameless, then your locally stored credential has an ID that was generated during registration. This is sent as part of the authentication request, and the relying party has a way of association which credential ID's are linked to which user accounts. The credential portion is talked about in section 5.1 of the https://w3c.github.io/webauthn docs.
  • Understanding Passkeys
    3 projects | news.ycombinator.com | 18 May 2023
    > Apple's passkeys do not provide attestation

    Apple has their own anonymous attestation format[1] that some (unclear which?) of their WebAuthn authenticators support.

    In principle the relying party could use this to verify the authenticity of the authenticator back up to Apple's WebAuthn root CA[2]. In practice, I'm not sure if that attestation is included by default (or whether significant portions of users opt out of it, when prompted by their browser).

    [1]: https://github.com/w3c/webauthn/pull/1491

    [2]: https://www.apple.com/certificateauthority/Apple_WebAuthn_Ro...

  • Once Passkey Rolls Out, Doesn't It Negate the Argument To Keep TOTPs on A Separate App?
    1 project | /r/Bitwarden | 16 May 2023
    There is a great comment thread in the WC3/WebAuthn Github Issues (January 2022) that was pre-publication of the Multi-Device FIDO white paper that prompted all the Passkey stuff (March 2022). https://github.com/w3c/webauthn/issues/1691 The OP of this issue is rightly pointing out that Passkey/MD FIDO is somewhat broken without enforcing the devicePubKey extension. The detractors in the thread are pointing out that it's not something they can enforce.
  • Yubico is merging with ACQ Bure and intends to go public
    6 projects | news.ycombinator.com | 19 Apr 2023
    The idea of authenticator hardware is inherently hostile to DIY and open source because you cannot produce or extract a keypair to generate valid attestation statements. Unless you are part of the cartel of course.

    https://w3c.github.io/webauthn/#attestation-statement

  • Interested about passkeys but
    1 project | /r/Bitwarden | 4 Apr 2023
    Given the Webauthn standard, there could be more than one answer to this question, so here is a list of relevant information:

What are some alternatives?

When comparing jsso2 and webauthn you can also consider the following projects:

Keycloak - Open Source Identity and Access Management For Modern Applications and Services

django-mfa2 - A Django app that handles MFA, it supports TOTP, U2F, FIDO2 U2F (Webauthn), Email Token and Trusted Devices

SuperTokens Community - Open source alternative to Auth0 / Firebase Auth / AWS Cognito

python-fido2 - Provides library functionality for FIDO 2.0, including communication with a device over USB.

caniuse - Raw browser/feature support data from caniuse.com

webauthn4j - A portable Java library for WebAuthn(Passkeys) server side verification

fusionauth-import-scripts - FusionAuth Import scripts for Auth0 and other examples

Django - The Web framework for perfectionists with deadlines.

YubiKey-Guide - Guide to using YubiKey for GnuPG and SSH

SoftU2F - Software U2F authenticator for macOS

WebAuthn - A simple PHP WebAuthn (FIDO2/Passkey) server library

django_mfa2_example - A simple fingerprint-based authentication and authorization application using django-mfa2