首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeRADIUS REST展开

FreeRADIUS REST展开
EN

Server Fault用户
提问于 2018-02-12 17:17:08
回答 1查看 3.3K关注 0票数 0

我正在研究FreeRADIUS 3.0.15与NodeJS中的API服务器之间的集成,该服务器将处理计费、授权和身份验证。所有这些都有文档记录(例如,这个回购是一个非常有价值的起点),并且相对简单明了。

但是,我也想使用动态客户端模块,让我的API服务器决定是否允许客户机。除了这条线邮件列表中的FreeRADIUS之外,我找不到任何有关这方面的文档,其中包含一个关于如何让远程API授权客户端的工作示例:

代码语言:javascript
复制
# /sites-available/dynamic-clients
server dynamic_clients {
    authorize {
        if ("%{rest: https://url?ipaddress='%{Packet-Src-IP-Address}'}") {
            update control {
                &FreeRADIUS-Client-IP-Address = "%{Packet-Src-IP-Address}"
                &FreeRADIUS-Client-Shortname = "%{rest: https://url?ipaddress='%{Packet-Src-IP-Address}'&return=shortname}"
                &FreeRADIUS-Client-Secret = "%{rest: https://url?ipaddress='%{Packet-Src-IP-Address}'}&return=secret"
            }

        }
        ok
    }
}

这是可行的,尽管存在以下几个问题:

  1. 是否可以只调用服务器一次以获得不同的属性?在上面引用的线程中,一位作者建议使用"正确地格式化您的答复“并链接到一些API文档,但我真的不明白它的含义。
  2. 是否可以发送带有JSON有效负载的POST请求?这并不重要,但在配置rest模块时很容易做到,只需声明一个节:#/mods-可用/ rest {#.其他部分验证{ uri = "${..connect_uri}/radius/ authenticate“方法= 'post‘body = 'json’data ={ "username":”%{username}“,"password":"%{User-Password}”}}.其他部分)

在这方面,我错过了REST 扩容的语法,我环顾四周,却找不到任何东西(我找到的唯一文件页是没有可用的扩展)。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-02-13 16:17:09

raddb/mods-可用/休息中记录了JSON响应格式。邮件列表中的链接最初链接到一个锚,锚也显示了相同的JSON响应格式,但是这些都过时了。

  1. 是的,您可以使用不同的列表、操作符和值返回多个属性,但是rest字符串扩展不会这样做,它只会将API服务器的响应转储到一个字符串中。您需要直接调用REST模块。
  2. 是的,您可以按您所说的调用rlm_rest模块。如果您想对服务器的响应进行后处理,则需要进行字符串扩展。假设您有一个未以正确格式返回JSON blob的自定义API,您可以获取rest扩展的输出,通过JSON映射输入它并以这种方式提取数据.至少您可以在v4.0.x中使用,而不是v3.0.x。
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/896918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档