Ever tried explaining to a ceo why the "legacy" radio server is still the heart of your passwordless rollout? It's a weird spot to be in, but here we are.
Freeradius remains the go-to backend because it handles the messy bridge between modern certificates and network hardware. Even as we ditch passwords for tokens, radius stays relevant for a few big reasons:
According to experts at InkBridge Networks, the biggest hurdle for beginners isn't the debug info itself, but rather the initial setup of the eap module and certificate authority. If the shared secret is off or the ca isn't recognized, the whole "passwordless" dream falls apart fast.
Next, we’ll dive into the complexities of certificate management and why EAP-TLS often fails in production.
So, you finally got your passwordless eap-tls flow working in the lab, and then you move to production and everything breaks. It’s usually because certificate management is a total nightmare.
The most common "kick in the teeth" is the unknown CA error. This happens when the client (like a doctor's tablet or a retail scanner) doesn't trust the certificate freeradius is flashing at it.
Real-time revocation is the other big beast. If a finance exec loses their laptop, you need that certificate dead now. Setting up an ocsp responder or a crl (Certificate Revocation List) is mandatory.
However, you gotta watch out for "fail-closed" behavior. In the eap module config, you have to choose between a "hard-fail" or "soft-fail" for ocsp. If you pick hard-fail and your ocsp responder goes down for maintenance, freeradius will block every single user from the network. Most people prefer a soft-fail so the wifi doesn't die just because a background service is laggy.
Next up, we’re gonna look at why your shared secrets are probably lying to you.
Ever spent three hours staring at a config file only to realize you swapped a '1' for an 'l' in a password? It’s the kind of thing that makes you want to throw your laptop out a window.
One thing that confuses people is the term "passwordless." When we say passwordless, we mean the user doesn't have a password (they use eap-tls certificates). But the infrastructure—the connection between your access point (NAS) and the freeradius server—still requires a "shared secret." This secret is just for packet integrity between the hardware and the server. If this secret is wrong, nothing works.
radiusd -X is mandatory. It’ll show you the exact ip the packet is coming from, which is often different than what you thought it was.clients.conf, the message-authenticator check fails and freeradius discards the request as "invalid."Honestly, most connectivity issues come down to these two files. Double check your ip ranges and copy-paste your secrets instead of typing them. Next, we're gonna look at why your database might be lying to you about user permissions.
When you're ditching passwords for certificates, your database doesn't just store credentials anymore; it maps identities to roles. If that sync breaks, your "secure" network becomes a brick.
In a modern ciam setup, you aren't just looking for a username. You’re often dealing with oidc or saml tokens. You need to map these modern identity attributes to radius attributes. For example, you might take a "department" claim from a token and map it to the Tunnel-Private-Group-Id attribute so the user gets put in the right vlan. If this mapping isn't explicit in your sql queries or unlang logic, the server won't know what to do with the "passwordless" user once they're authenticated.
This error (or sometimes just a generic Auth-Type := Reject) is a total liar. In a passwordless world, you don't have cleartext passwords, but freeradius might still look for them if your protocol and storage don't match up.
User-Name matching your db record.Honestly, if you're tired of fighting with database drivers and manual syncs, you might want to look at a managed ciam. You can quickly integrate passwordless authentication for web and mobile applications with MojoAuth to give users a smooth, secure login experience without these radius headaches.
If you aren't running radiusd -X, you're basically flying blind in a storm. This mode is the only way to see the server's internal monologue.
-X output for the Tunnel-Private-Group-Id attribute in the Access-Accept packet. If that ID doesn't match what's configured on your switch port, the packet gets dropped or tagged wrong.unknown CA, it's rarely a server bug. As noted earlier, this means the client doesn't trust the certificate freeradius is showing.Sometimes the built-in logic isn't enough. You can use unlang to write custom policies that handle these edge cases without recompiling the whole server.
post-auth {
if (TLS-Client-Cert-Common-Name =~ /admin-.*/) {
update reply {
Service-Type = Administrative-User
}
}
}
Wrapping up a freeradius rollout for passwordless is mostly about understanding its role as a technical bridge. As we discussed in the intro, freeradius is the glue between modern certificate-based identity and the "old school" hardware that runs our offices and hospitals.
Keeping things stable long-term means focusing on these three areas:
clients.conf.Honestly, just keep radiusd -X in your back pocket. Most "impossible" bugs in healthcare or retail setups are just a mismatched ca or a greedy firewall rule. Stay lazy by automating the hard parts early.
*** This is a Security Bloggers Network syndicated blog from MojoAuth - Advanced Authentication & Identity Solutions authored by MojoAuth - Advanced Authentication & Identity Solutions. Read the original post at: https://mojoauth.com/blog/common-issues-with-freeradius-in-passwordless-implementations