Authlib: Python Authentication
docs.authlib.org
docs.authlib.org
- This plan is for commercial projects.
- License: Commercial License
- security maillist
- quick responses
- private PyPI
- commercial support
- making Authlib sustainable
then:
- We offer a private PyPI server to release early security fixes and features.
Don't they rely on the entire PyPI community to offer their product? Holding security fixes back in exchange for money doesn't look fair to me from this perspective.
> Authlib offers two licenses, one is BSD for open source projects, one is a commercial license for closed source projects.
Or $2,000 a year if your company wants to pay by invoice.
""" authlib ~~~~~~~
The ultimate Python library in building OAuth 1.0, OAuth 2.0 and OpenID
Connect clients and providers. It covers from low level specification
implementation to high level framework integrations.
:copyright: (c) 2017 by Hsiaoming Yang.
:license: BSD, see LICENSE for more details.
"""And even if the licensing of this project holds up as the author intends: If I make an Open Source project based on this, and someone else uses that in a commercial product, it would be 100% legal according to the BSD license.
GPL propagates. Presumably BSD doesn't.
Redistribution and use in source and binary forms [...] are permitted [...] provided that the following conditions are met:
[...]
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
[...]From looking at the plans, the value is mostly in support for the commercial license, which is a pretty common approach. I think the wording is the only part that is odd, although it may be an intention nudge.
Also, based on a blurb from their sponsorship page, it appears they give security patches to commercial license holders before the public. https://github.com/sponsors/lepture
> If your company is creating a closed source OAuth provider, it is strongly suggested that your company purchasing a commercial license.
And the text in the LICENSE file is a bog-standard BSD license, which doesn't say anything about not being able to use it for commercial purposes.
So it looks like they're relying on companies paying for support, or out of goodwill (or confusion), rather than because of any legal obligation.
Besides, for any new project I just go for Auth0 these days, that's just me.
The alternative is called monopoly and it's not good for consumers.
But
> Besides, for any new project I just go for Auth0 these days, that's just me.
Auth0's primary mode is OAuth2.
Hopefully there are still people around to build SaaS when the current vanguard retires.
That's a service that manages OAuth2 for you, for $ at scale
Isilon for instance was a brand where there main product was... Isilon clusters.
So there are three primary use cases for OAuth (I'll include OIDC as well, as they are often paired and OIDC is built on top of OAuth).
* Authentication. Using OIDC for authentication lets you use one of many authentication servers (FusionAuth [my employer], Keycloak, Python OAuthlib, Django with https://django-oidc-provider.readthedocs.io/en/latest/ Auth0, Cognito, etc etc). Using such an identity server lets you have one single place to store user data. It's normalizing user data, which has the same benefits and tradeoffs as normalizing any other kind of data.
* First party API authentication (where the same org controls both the end client and the API server). This is comparable to API keys, but has some differences. Setup is more complicated, but you have credentials that are automatically time bound (tokens expire), support multiple useful flows, and have a refresh mechanism built in. Plenty of security experts have banged on OIDC/OAuth and helped fix issues, and j random developer you just hired is probably more familiar with OAuth than your custom API key scheme. You also have the ability to put more data in the token (if you use JWTs) and have the tokens verified without contacting a central server. This can lead to some nice scaling properties.
* Third party API access. When you are the client and want access to third party APIs, you have to use what the API dictates. That is often either OAuth or API keys. OAuth here has a lot of flavors. See this article which was on HN a month or two ago: https://www.nango.dev/blog/why-is-oauth-still-hard
Source: I work for FusionAuth, an auth provider which supports OAuth and OIDC, and help support users and customers implementing FusionAuth.
The answers are No. So i will never need it.