Keycloak
fusionauth-jwt
Our great sponsors
Keycloak | fusionauth-jwt | |
---|---|---|
227 | 38 | |
19,512 | 158 | |
3.4% | 1.9% | |
10.0 | 6.7 | |
about 21 hours ago | 29 days ago | |
Java | Java | |
Apache License 2.0 | Apache License 2.0 |
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.
Keycloak
- Navigating Identity Authentication: From LDAP to Modern Protocols
-
Top 6 Open Source Identity and Access Management (IAM) Solutions For Enterprises
KeyCloak is a Cloud Native Computing Foundation (CNCF) project that offers enterprise IAM solutions. Keycloak emphasizes proficient enterprise authorization solutions by providing:
-
Outline: Self hostable, realtime, Markdown compatible knowledge base
Outline only uses SSO for authentication. The solution when self hosting is use a private keycloak server [1]. This allows you to do email based auth.
-
Keycloak open redirect: wildcard redirect URIs can be exploited to steal tokens
> Keycloak was good but has too much legacy for 10+ years.
I got curious, actually seems to check out and explains why it's so well documented (but also complex and oftentimes confusing):
> The first production release of Keycloak was in September 2014, with development having started about a year earlier.
https://en.wikipedia.org/wiki/Keycloak
https://github.com/keycloak/keycloak/releases/tag/1.0.0.Fina...
-
What Is OIDC?
> Don't outsource either your authentication or authorization. Run it in-house.
This is hard to do, though. I hope people here will drop a lot of combinations that work for them!
Personally, for a small/medium scale project, I went with:
Keycloak: https://www.keycloak.org/
It supports various backing RDBMSes (like PostgreSQL, MariaDB/MySQL and others), allows both users that you persist in your own DB, as well as various external sources, like social login across various platforms, is an absolute pain to configure and sometimes acts in stupid ways behind a reverse proxy, but has most of the features that you might ever want, which sadly comes coupled with some complexity and an enterprise feeling.
I quite like that it offers the login/registration views that you need with redirects, as well as user management, storing roles/permissions and other custom attributes. It's on par with what you'd expect and should serve you nicely.
mod_auth_openidc: https://github.com/OpenIDC/mod_auth_openidc
This one's a certified OpenID Connect Relying Party implementation for... Apache2/httpd.
Some might worry about the performance and there are other options out there (like a module for OpenResty, which is built on top of Nginx), but when coupled with mod_md Apache makes for a great reverse proxy/ingress for my personal needs.
The benefit here is that I don't need 10 different implementations for each service/back end language that's used, I can outsource the heavy lifting to mod_auth_openidc (protected paths, needed roles/permissions, redirect URLs, token renewal and other things) and just read a few trusted headers behind the reverse proxy if further checks are needed, which is easy in all technologies.
That said, the configuration there is also hard and annoying to do, as is working with OpenID Connect in general, even though you can kind of understand why that complexity is inherent. Here's a link with some certified implementations, by the way: https://openid.net/developers/certified-openid-connect-imple...
Keycloak [1]. Rock solid, supports everything, trusted everywhere.
-
Auth0 increases price by 300%
You couldn't pay me to use their bullshit...if you need an identity server/provider go with Keycloak. Open source, free, and standards based, works better and scales better too.
-
Hasura and Keycloak integration with NestJS server
#docker-compose.yml version: '3' volumes: postgres_data: driver: local services: postgres: container_name: postgres image: postgres:15-alpine restart: unless-stopped volumes: - postgres_data:/var/lib/postgresql/data - ./init/db:/docker-entrypoint-initdb.d/ command: postgres -c wal_level=logical ports: - '5433:5432' environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} hasura: container_name: hasura image: hasura/graphql-engine:v2.29.0 restart: unless-stopped depends_on: - postgres # - keycloak ports: - '6080:8080' volumes: - ./hasura/metadata:/hasura-metadata environment: ## postgres database to store Hasura metadata HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/hasura_metadata HASURA_GRAPHQL_DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB} HASURA_GRAPHQL_LOG_LEVEL: warn ## enable the console served by server HASURA_GRAPHQL_ENABLE_CONSOLE: 'true' # set to "false" to disable console ## enable debugging mode. It is recommended to disable this in production HASURA_GRAPHQL_DEV_MODE: 'true' HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log ## enable jwt secret when keycloak realm is ready # HASURA_GRAPHQL_JWT_SECRET: '{ "type": "RS256", "jwk_url": "http://keycloak:8080/realms/development/protocol/openid-connect/certs" }' HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET} HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anonymous HASURA_GRAPHQL_ENABLE_REMOTE_SCHEMA_PERMISSIONS: 'true' HASURA_GRAPHQL_MIGRATIONS_SERVER_TIMEOUT: 30 # To view tables in Postgres # pgweb: # container_name: pgweb # image: sosedoff/pgweb:latest # restart: unless-stopped # ports: # - '8081:8081' # environment: # - DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable # depends_on: # - postgres keycloak: container_name: keycloak image: quay.io/keycloak/keycloak:22.0.5 command: ['start-dev'] # Uncomment following if you want to import realm configuration on start up # command: ['start-dev', '--import-realm'] environment: ## https://www.keycloak.org/server/all-config KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: password123 KC_DB: postgres KC_DB_PASSWORD: postgres_pass KC_DB_USERNAME: postgres KC_DB_SCHEMA: public KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak_db KC_HOSTNAME: localhost ports: - 8090:8080 depends_on: - postgres # Uncomment following if you want to import realm configuration on start up # volumes: # - ./realm-export.json:/opt/keycloak/data/import/realm.json:ro
-
🚀 Top 12 Open Source Auth Projects Every Developer Should Know 🔑
Single Sign On (SSO) - Keycloak
-
IT Pro Tuesday #280 - Identity/Access Mgmt, Training, Collaboration Tool & More
RedHat Keycloak is an Identity and Access Management tool. Features include user federation, robust authentication methods, user management, and fine-grained authorization. Grintor describes it as an "open source alternative to okta.com."
fusionauth-jwt
-
Top 6 Open Source Identity and Access Management (IAM) Solutions For Enterprises
FusionAuth is one of the most decorated and successful open-source IAM solutions. It has been downloaded by more than 10 million customers and hosts over 1 million digital identities.
-
Evolutive and robust password hashing using PBKDF2 in .NET
Ideally, I would recommend not handling and storing passwords yourself. It is preferable to use an identity provider (IdP), such as Azure AD B2C, Auth0, or FusionAuth. These systems are designed to manage your users' identity (including their passwords) so you don't have to. You could also use Single Sign-On with cloud providers.
-
Auth0 increases price by 300%
Check out https://fusionauth.io/
-
Java 8 still widely used
Concur.
Another data point. Our open source JWT library[0] and Java client library[1] both target Java 8 because that is widely used.
-
Ask HN: Who is hiring? (August 2023)
FusionAuth | Senior Java Engineer, Senior TechOps Engineer, Senior Support Engineer | Full-time | Denver CO, USA | https://fusionauth.io
FusionAuth is the authentication and authorization platform built for devs, by devs. Our software solves the problem of integrating essential user security without adding risk or distracting from the primary application.
Ya know, the one with the features your users want to pay you for.
FusionAuth comes without the risk and complexity that typical identity systems have. With self-hosted or cloud installation, extensive documentation, free options, fast deployment and a no-hassle process, we eliminates hurdles that make it hard for developers to meet their authentication and authorization requirements.
We aren't VC funded, but we are profitable, growing fast, and need your help. We are currently hiring for the following roles:
Senior Java Engineer
Senior TechOps Engineer
Senior Support Engineer
Learn more, including salary info, what makes us tick, and role expectations, here: https://fusionauth.io/jobs
-
java-jwt VS fusionauth-jwt - a user suggested alternative
2 projects | 25 May 2023
JWT processing for java. Fast: https://github.com/skjolber/java-jwt-benchmark
-
What Developers Need to Know About JWTs
This article is based upon a presentation from Dan Moore of FusionAuth.
- [Self Hosted] Comment j'ai fait ce blog (aka comment installer Fusion Auth and Dound)
-
Integrating FusionAuth with Python Flask: A Step-by-Step Guide
FusionAuth is a powerful identity and access management platform that makes it easy to add authentication and authorization to your applications. In this blog post, we'll explore how to integrate FusionAuth with a Python Flask application using OAuth 2.0, covering features such as login, displaying user profile information, and logout functionality.
-
Ask HN: Who is hiring? (April 2023)
FusionAuth | Sr. Growth Marketing Manager | Full-time | Denver CO or Remote (in USA only) | https://fusionauth.io
FusionAuth is the authentication and authorization platform built for devs, by devs. Our software solves the problem of integrating essential user security without adding risk or distracting from the primary application.
Ya know, the one with the features your users want to pay you for.
FusionAuth comes without the risk and complexity that typical identity systems have. With self-hosted or cloud installation, extensive documentation, free options, fast deployment and a no-hassle process, we eliminates hurdles that make it hard for developers to meet their authentication and authorization requirements.
We aren't VC funded, but we are profitable, growing fast, and need your help. We are currently hiring for the following roles:
Sr. Growth Marketing Manager: https://fusionauth.io/jobs/sr-growth-marketing-manager (remote in USA ok, but Denver/Boulder area preferred)
Learn more, including salary info, what makes us tick at FusionAuth, and role expectations, here: https://fusionauth.io/jobs
What are some alternatives?
authelia - The Single Sign-On Multi-Factor portal for web apps
authentik - The authentication glue you need.
Apache Shiro - Apache Shiro
OPA (Open Policy Agent) - Open Policy Agent (OPA) is an open source, general-purpose policy engine.
IdentityServer - The most flexible and standards-compliant OpenID Connect and OAuth 2.x framework for ASP.NET Core
Spring Security - Spring Security
Ory Kratos - Next-gen identity server replacing your Auth0, Okta, Firebase with hardened security and PassKeys, SMS, OIDC, Social Sign In, MFA, FIDO, TOTP and OTP, WebAuthn, passwordless and much more. Golang, headless, API-first. Available as a worry-free SaaS with the fairest pricing on the market!
FreeIPA - Mirror of FreeIPA, an integrated security information management solution
Vault - A tool for secrets management, encryption as a service, and privileged access management
caddy-auth-portal - Authentication Plugin for Caddy v2 implementing Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0 (Github, Google, Facebook, Okta, etc.), SAML Authentication. MFA with App Authenticators and Yubico.
oauth2-proxy - A reverse proxy that provides authentication with Google, Azure, OpenID Connect and many more identity providers.
jCasbin - An authorization library that supports access control models like ACL, RBAC, ABAC in Java