Hi,

> On 5 Sep 2017, at 16.24, Karl Gaissmaier <[email protected]> wrote:
> 
> the documentation for VsaTranslationHook is missing, also the documentation 
> for VSA translation in AuthRADIUS.
> 

yes, during two past years we have been adding multiple new features and 
unfortunately updating documentation is a bit behind, 
we will try to improve the situation and get it in sync with the code.

However, goodies/vsa-translate.cfg config has some examples.

> ---------
> 
> I'd like to solve the problem of different MAC address representations in the 
> Calling-Station-Id attribute (and also other radius attributes), coming from 
> different sources from all over the world via RADSEC in the eduroam 
> federation.
> 
> This makes searching in loggs difficult, sigh.
> 
> I can't use VSA vendor and type translations since via the RADSEC clause a 
> lot of different Client vendors are proxied to me as IdP. Btw, VSA 
> Translation is not (yet) implermented for RADSEC.
> 
> I need a generic rewrite ruleset for the different MAC address 
> representations and that's what regexps are for, like:
> 
>    # strip delimiters
>    s/[^a-f0-9]+//ig
>    # insert colons
>    s/(..)(..)(..)(..)(..)(..)/$1:$2:$3:$4:$5:$6/
> 
> similar to RewriteUser.
> 
> Bingo, I found VsaTranslationHook, but only in the sources of Client.pm and 
> AuthRADIUS.pm and not in the corresponding RADSEC modules, AuthRADSEC.pm and 
> ServerRADSEC.pm and also in ServerRADIUS.pm.
> 
> You know, AuthRadius.pm and AuthRADSEC.pm are used for forwarding packets, 
> Client.pm, ServerRADIUS.pm and ServerRADSEC.pm are all receiving clients.
> 

RadSec does not currently have VSA translation implemented, but I created a 
feature request for it.

> ----------------
> 
> Btw, the Hook in AuthRADIUS.pm is bound to the condition that VsaTranslate is 
> defined, that means I can't use just the Hook alone, that's not good.
> 
> AuthRADIUS.pm
> =============
>    if ($host->{VsaTranslateIn})
>    {
>        Radius::Nas::translateVSAsIn($host->{VsaVendor}, $host->{VsaType}, 
> $host->{VsaTranslateIn}, $p);
>        $host->runHook('Transplantation', $p, $p, 0) if 
> $host->{VsaTranslationHook};
>    }
> 
> In Client.pm the Hook is called just if it is defined, fine!
> 
> Client.pm:
> ==========
>    $self->translateVSAsIn($p) if $self->{VsaTranslateIn};
>    $self->runHook('VsaTranslationHook', $p, $p, 0) if 
> $self->{VsaTranslationHook};
> 
> Please make this logic comparable.
> 

I created a bug ticket for this. An orignal idea was VsaTranslationHook to be 
additional to VsaTranslateIn, 
but of course it can be used also without.

> 
> Do you have any other suggestion for the problem of different attribute 
> representations coming from the same input channel?
> 

If you can’t differentiate a vendor based on a source, then the strategy should 
be 
either to unify received values systematically or try to identify the vendor 
based on 
other received (vendor specific) attributes and select a business logic based 
on that.

E.g. different formats for Called-Station-Id and Calling-Station-Id:

AABBCCDDEEFF
AABBCC.DDEEFF
AABBCC-DDEEFF
AA:BB:CC:DD:EE:FF
AA-BB-CC-DD-EE-FF

Called-Station-Id can also contain WLAN SSID:

AABBCCDDEEFF:SSID
AABBCC.DDEEFF:SSID
AABBCC-DDEEFF:SSID
AA:BB:CC:DD:EE:FF:SSID
AA-BB-CC-DD-EE-FF:SSID

VSA translation feature was added originally to help unifying vendor specific 
attributes, 
as in some (broadband) cases a wanted value is in different attributes, 
e.g. (Juniper) Unisphere-Pppoe-Description="pppoe 11:22:33:aa:bb:cc” or 
(Cisco) cisco-avpair = "client-mac-address=1122.33aa.bbcc”, and a hook was 
needed before 
to do the mangling.


BR
-- 
Tuure Vartiainen <[email protected]>

Radiator: the most portable, flexible and configurable RADIUS server
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS,
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS,
NetWare etc.

_______________________________________________
radiator mailing list
[email protected]
http://lists.open.com.au/mailman/listinfo/radiator

Reply via email to