Matching multiple LDAP-groups during post-auth

Alan DeKok aland at deployingradius.com
Wed May 19 23:38:48 CEST 2021


On May 19, 2021, at 2:40 PM, Chris Wopat <me at falz.net> wrote:
> Here's the debug of a failed auth where this user was a part of
> "network-administrators" but not of "optical-*":
> 
> * http://pastebin.falz.net/1899174

...
	 (1)     if (LDAP-Group == "network-administrators")  -> TRUE

  Good...

	(1)     ... skipping elsif: Preceding "if" was taken
	(1)     ... skipping elsif: Preceding "if" was taken
	(1)     ... skipping else: Preceding "if" was taken
	(1)     if (LDAP-Group == "optical-administrators") {

  Hm... not good.

	TLSMC: MozNSS compatibility interception begins.
	tlsmc_convert: INFO: cannot open the NSS DB, expecting PEM configuration is present.
	tlsmc_intercept_initialization: INFO: successfully intercepted TLS initialization. Continuing with OpenSSL only.
	TLSMC: MozNSS compatibility interception ends.

  libldap is using the horrible RedHat "NSS" library which pretends to be OpenSSL, and gets it wrong.  It might work, but it definitely won't work if you're doing EAP-TLS.

	 (1)     elsif (LDAP-Group == "optical-users")  -> FALSE
	(1)     else {
	(1)       update reply {
	((1)         Local-Reject-Check += "No matching optical"

  The rules check for:

	if member of network-admin
		ok
	else
		reject

	AND SEPARATELY

	if member of optical-admin
		ok
	else
		reject

  The first test passes, the second doesn't.  That's why it's rejecting.

> Here's the post-auth section, which I'm also posting in-line in this email.

  The description you posted says that the user should match both a network group and an optical group.  That's what the rules do.

  So the question is, what do you want it to do?  Write it down in plain english.  And it should then be possible to translate it to "unlang".

  Alan DeKok.




More information about the Freeradius-Users mailing list