<div dir="ltr">Thanks for your input; your descriptions of limitations you ran into is helpful. I think I will stick with using rlm_perl for now; I definitely don't want to tackle writing my own stripped down RADIUS server. If performance or scale become problems I will investigate other options at that time.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Feb 17, 2013 at 5:35 PM, Alexandr Kovalenko <span dir="ltr"><<a href="mailto:alexandr.kovalenko@gmail.com" target="_blank">alexandr.kovalenko@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Sun, Feb 17, 2013 at 11:05 PM, Walter Goulet <<a href="mailto:wgoulet@gmail.com">wgoulet@gmail.com</a>> wrote:<br>

> I'm looking for some input from the experts to help validate a solution<br>
> approach that I've come up with. The problem I'm trying to solve is that<br>
> allow NAS equipment and other RADIUS clients to authenticate users against a<br>
> proprietary authentication service that uses REST APIs over HTTP.<br>
><br>
> The solution that I've put together is to use rlm_perl which allows me to<br>
> use standard Perl modules to interact with the authentication service. I'm<br>
> pretty happy with the results so far in that I am able to build exactly what<br>
> I need and authentication against the webservice works just fine.<br>
><br>
> The question to the list, are there other solution approaches that might be<br>
> better? Any significant disadvantages to using rlm_perl as I've described?<br>
> Would it be better to write a custom module instead, hoping that by doing so<br>
> there may be some performance improvements?<br>
><br>
> Any input is greatly appreciated.<br>
<br>
</div></div>Not exactly your case, but. Here is my story.<br>
<br>
I had a need to proxy/convert DHCP requests from equipment (and later<br>
- end user's routers/computers (I worked @ISP)) to RADIUS.<br>
<br>
First version was using FreeRADIUS's rlm_perl for handling incoming<br>
DHCP requests and it did work pretty cool, while sometimes it had<br>
problems with duplicated requests, didn't scale well (probably my<br>
fault, but I didn't wish to find this out) and so on, so I analyzed<br>
request patterns, read RFC 2131, and reimplemented DHCP server on pure<br>
perl, without using FreeRADIUS's DHCP feature. As a backend RADIUS<br>
client (to connect to closed source commercial billing system) I used<br>
Authen::Radius first (leftover from quick-n-dirty rlm_perl version),<br>
but it didn't work well for me and was not powerful enough, so I used<br>
Net::Radius::Packet/Net::Radius::Dictionary and implemented stripped<br>
down radius client myself.<br>
<br>
So, as for your question, besides using rlm_rest (which is devel as of<br>
now, as I understand) you may try writing stripped down RADIUS server<br>
combined with REST client for your auth service.<br>
But for that you either have to reimplement full radius server (which<br>
is not an option, I think), or implement just a subset, which works<br>
only for your specific equipment. It may be an option.<br>
<br>
Cheers,<br>
<br>
Just my $0.02.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Alexandr Kovalenko<br>
<a href="http://uafug.org.ua/" target="_blank">http://uafug.org.ua/</a><br>
</font></span></blockquote></div><br></div>