7 ms·
Zitadel: The best of Auth0 and Keycloak combined
- andy_ppp 4y agoThis looks great if you need it to scale but I would like a self contained version that works in a couple of docker containers and doesn’t need a cockroach db cluster in addition to a normal database. Anyway know of anything!?
- manishsharan 4y agoLooks like you need KeyCloak.
- mooreds 4y agoDisclosure: I work for FusionAuth. Depends on what you are looking for. If you want a standalone auth server, you can use FusionAuth in docker/docker-compose: https://fusionauth.io/docs/v1/tech/installation-guide/docker https://fusionauth.io/docs/v1/tech/installation-guide/docker You can also package up a library; most major languages have one or more OAuth/OIDC libraries: https://github.com/doorkeeper-gem/doorkeeper https://github.com/doorkeeper-gem/doorkeeper for Ruby, https://spring.io/projects/spring-security https://spring.io/projects/spring-security for Spring/Java, https://oauth2.thephpleague.com/ https://oauth2.thephpleague.com/ for PHP, https://pypi.org/project/oauthlib/ https://pypi.org/project/oauthlib/ for Python. https://oauth.net/code/ https://oauth.net/code/ has a further selection of libraries in a variety of languages.
- psankar 4y agoLook at ory.sh tools
- ffo 4y agoWe know them ;-)
- bovermyer 4y agoThis is interesting, I'll have to check it out. I'm particularly curious about how it compares to Okta.
- mffap 4y agoGreat. Would love to hear more about your impression and the comparison to Okta. Okta is for sure very mature. Some users who switched liked the fact that you can run ZTIADEL on any infrastructure (self-hosting) as well as the self-service in B2B scenarios (which is ticket-ops when doing it with Okta, apparently). Hope this helps.
- inportb 4y agoThis is interesting, but... how does one deploy this in a container without k8s (using Docker)? Keycloak is big and complicated, but at least it's easy to hide all the complexity behind Docker. Other than configuring the database, one could treat it as an opaque blob. Authentik is big and complicated and modular, so the complexity is apparent in the `docker-compose.yml`.
- mffap 4y agoWe're currently working on v2 with the goal to reduce that complexity. Goal is to make it easier to run a single binary, like you mentioned using Docker. Documentation for this is currently WIP - should be out end of May.
- notlukesky 4y agoWhat do you exactly mean by the best of Auth0 and Keycloak combined?
- mffap 4y agoFirstly let me say that we like both Auth0 and Keycloak - as others have commented the solutions are widely used and have both unique advantages. We built an open source alternative to Auth0 which fully supports self-hosting (today on K8s, soon as all-in-one binary on multiple platforms). Regarding Keycloak, it is a great project with high maturity and a lot of features, but lacks in support for B2B, cloud-native and manufacturer support. We wrote a blog comparing Auth0 and Keycloak in more detail, when you might want to consider ZITADEL as alternative. Hope that helps.
- mooreds 4y ago@mffap, are these the blog posts you are referencing? https://zitadel.com/blog/zitadel-vs-keycloak https://zitadel.com/blog/zitadel-vs-keycloak https://zitadel.com/blog/zitadel-vs-auth0 https://zitadel.com/blog/zitadel-vs-auth0
- mffap 4y agoyes, that's it
- arinlen 4y ago> Regarding Keycloak, it is a great project with high maturity and a lot of features, but lacks in support for B2B, cloud-native and manufacturer support. Is this really true though? Last time I checked Keycloak was a RedHat project, meets the definition of cloud-native, and RedHat does provide RedHat Single Sign-On, a Keycloak-based service that is as B2B as it gets. Also, further down the discussion you commented that the project doesn't even provide a Docker image, and instead you mention an ongoing rewrite that might provide a stand-alone binary. https://news.ycombinator.com/item?id=31409609 https://news.ycombinator.com/item?id=31409609 How does that miss allow the project to even be considered cloud-ready, let alone could native?
- IceDane 4y agoThis seems very clean and handily beats keycloak there, at least. I am building an application that will be deployed into a closed network, and it has some requirements regarding auth and authz that would be time-consuming(not to mention error prone) to implement. I also foresee there being a good chance of the customer wanting to integrate it with their existing stuff, so instead of having a custom user management system as part of the application, I ended up using keycloak. So far, the experience has been .. okay. The beginning was kind of rough, and just recently there were some big changes, and some of the documentation is still out of date, and even more of the documentation is sort of .. meh. However, once I really started grokking both keycloak and the related authz concepts, it's been pretty smooth sailing since. There are some rough edges, like the nodejs admin client being somewhat janky(possibly auto-generated), but otherwise I would definitely use keycloak in other projects. Zitadel seems like a very attractive alternative, and the documentation is stellar compared to keycloak's(at a glance at least, kudos for quickstart guides), but I'd still be sort of worried about the age and maturity of the project. Selling my customer on keycloak is relatively easy because it's not super young and being managed and actively developed by the folks at redhat. Selling them on zitadel would probably be harder. Either way, best of luck. When there's a javascript client I might take this for a spin for a side project just to see how it compares to keycloak.
- mffap 4y agoAppreciate the feedback and insights - thank you. Happy to keep you posted on the javascript client, this is for sure one on our list. Regarding user base, sure Keycloak is very mature and broadly used. We started our SaaS now over 1.5 years ago and continuously build on the feedback and the operational learnings.
- tucnak 4y agoI had to set up a OIDC server so our website could act as the OIDC provider, and I got really surprised how hard that is to do if you really need the most basic setup. In fact it seems that everybody would just keep a Keycloak or whatever— in their cluster and would keep it up-to-date with whatever user schema they would have in their app. This felt like too much work for me (I didn't want to maintain a whole extra service to just be able and provide a couple Oauth scopes from our API back-end.) so instead I went on and implemented the server directly in our app using https://github.com/zitadel/oidc https://github.com/zitadel/oidc. In fact this was the only fully-functioning OIDC implementation in Go that I could just plug in and make it work. So big props up to the Zitadel guys, the only worry would be from my side that the server implementation could be more generic and could rely on a set of interfaces that the users would be able to implement easily, without having to import a bunch of code from 'examples/server' like we have to do at the moment?
- livio-a 4y agoThanks for the great feedback. I can see copy/paste issue of the server example. We'll definitely improve this in the future so you won't have to implement a lot of logic in the storage implementation.
- mooreds 4y agoHmmm. Did you look at any of the libraries mentioned here: https://oauth.net/code/go/ https://oauth.net/code/go/ I'm not in the golang world, so curious how useful that list is.
- ofrzeta 4y agoHow does it compary to Ory or Gluu?
- ajacksified 4y agoFYI your docs are broken - I can't scroll down on anything (such as https://docs.zitadel.ch/docs/guides/authentication/login-users https://docs.zitadel.ch/docs/guides/authentication/login-use...) Chrome 101.0.4951.64 / MacOS 12.4 Very curious though as I've been doing a lot of OIDC work at Inrupt.
- mffap 4y agoThanks, good to know! Do you have chrome://flags/#enable-experimental-web-platform-features enabled by any chance? Seems to be an Docusaurus issue, we'll make an update.
- next_xibalba 4y agoYeesh, that name! What the heck were they thinking? "Hey, what if we combined Zit and Citadel!" But seriously, now I want to know, what are the most unfortunate technology or startup names my fellow HN'ers have encountered? I'd bet a moderate sum there are some wild examples to be found in SV history.
- config_yml 4y agoMongo DB takes the cake, which is a slur for someone with down syndrome in my part of the world.
- jsiepkes 4y agoWell don't leave us hanging, in what language?
- krautsourced 4y agoGerman
- k_sze 4y agoIn Quebecois French as well, "mongol" can be a pejorative for someone with DS. (That's because "Mongolian idiocy" is the obsolete medical term for DS: https://en.wikipedia.org/wiki/Mongolian_idiocy https://en.wikipedia.org/wiki/Mongolian_idiocy)
- im_dario 4y agoSpanish, for instance.
- carapace 4y agoEnglish. It was named after "Mongo, an immensely strong, dim-witted, yet philosophical henchman" in the movie "Blazing Saddles" (which is hilarious but would probably get Mel Brooks burned at the stake if he tried to make it today.) https://en.wikipedia.org/wiki/Blazing_Saddles https://en.wikipedia.org/wiki/Blazing_Saddles Anyway, "mongo" is short for "mongoloid" which was a derogatory word for folks with what we now call Down Syndrome, and also racist in re: Mongols. So yeah, not a great choice of name.
- mooreds 4y agoInteresting pricing model: https://zitadel.com/pricing/v2 https://zitadel.com/pricing/v2 Price per request isn't as common of an identity pricing model as MAU is. (Only applies if you host with them, of course. If you self-host, I believe it is free.)
- jzelinskie 4y agoThe usage of CockroachDB in newer security products is refreshing. I wonder if users could run one share a CRDB cluster between Zitadel and SpiceDB[0] to have a full, modern AuthN+AuthZ stack with few dependencies. [0]: https://github.com/authzed/spicedb https://github.com/authzed/spicedb
- ffo 4y agoI would love to chat with you guys. Hit me up with a mail florian(at)zitadel.com
- topspin 4y agoRegarding B2B: You know what B2B frequently calls for? SCIM. Not provided in Zitadel. Keycloak either. WSO2 IS has it. I hate WSO2 with a passion but it does SCIM. A non-Java on-premises IS is certainly welcome. Haul in SCIM and I'll take a swing at it.
- ffo 4y agoThanks for the input. We definitely have SCIM2.0 on the radar. If someone feels intrigued we would happily accept a PR
- mooreds 4y agoWe recently finished shipping a SCIM server implementation. It was a big lift (it's quite protean). If anyone else wants to look at software supporting SCIM, this list seems like a place to start: http://www.simplecloud.info/#Implementations2 http://www.simplecloud.info/#Implementations2 It lists both SCIM servers (which can be the source of truth for a set of users and groups) and SCIM clients (which can received CRUD requests from a SCIM server). (I submitted our company to the list but I think they got caught up in the GitHub/Heroku situation, since changes in the GH repo don't seem to be going live: https://github.com/erdtman/simplecloud.info https://github.com/erdtman/simplecloud.info )
- philprx 4y agoSCIM: https://en.wikipedia.org/wiki/System_for_Cross-domain_Identity_Management https://en.wikipedia.org/wiki/System_for_Cross-domain_Identi...
- pharaohgeek 4y agoThere is a SCIM plugin for Keycloak, though. We've made use of it and had a good experience. I'll have to dig up the Github project for it. I don't recall the name off the top of my head.
- topspin 4y agoLikely this one which I am aware of: https://github.com/Captain-P-Goldfish/scim-for-keycloak https://github.com/Captain-P-Goldfish/scim-for-keycloak An wonderful piece of work. Note, however, that the most recent supported Keycloak version is 16.1.x. Whereas Keycloak has recently been reworked (beginning with 17.x, now at 18.x) around Quarkus. This is awkward to explain to stakeholders that understand the implications of having their authentication system held back due to dependencies. SCIM is a well designed and standards based (RFCs even!) expression of identity management in REST. Expecting identity platforms to support it as a first class capability is reasonable.
- sneak 4y ago> ZITADEL components send errors and usage data to CAOS Ltd., so that we are able to identify code improvement potential. If you don't want to send this data or don't have an internet connection, pass the global flag --disable-analytics when using zitadelctl. For disabling ingestion for already-running components, execute the takeoff command again with the --disable-analytics flag. So, on by default spyware. How could anyone trust this in their infra when they are so shameless about exfiltrating data without consent?
- ffo 4y agoI think we state transparently enough that we only report usage data and not your data within ZITADEL and you are free to disable it any time. If you don’t agree with this I recommend not using ZITADEL
- sneak 4y agoObviously that was my point. Usage data is still the user's data and you are not entitled to it without the user's consent. The fact that you disclose your unethical behavior does not make it ethical. A better thing to do would be to patch out the feature that abuses the user's data. The trend of open source spyware needs to stop.
- denysvitali 4y agoWhilst I'm not a fan of tools phoning back home, I have to admit that I'm starting to see this more and more. Flutter (Google) does it: https://docs.flutter.dev/get-started/install/windows https://docs.flutter.dev/get-started/install/windows > The flutter tool uses Google Analytics to report feature usage statistics and send crash reports. This data is used to help improve Flutter tools over time. > > Flutter tool analytics are not sent on the very first run. To disable reporting, run flutter config --no-analytics. To display the current setting, use flutter config. If you opt out of analytics, an opt-out event is sent, and then no further information is sent by the Flutter tool.
- 4y ago
- yebyen 4y agoWhen I checked this out 9 days ago there was a GitOps installation instructions page! I didn't have a chance to follow it up right away, but now it doesn't resolve anymore. What happened to GitOps support in Zitadel? https://docs.zitadel.com/docs/guides/installation/gitops https://docs.zitadel.com/docs/guides/installation/gitops