Radius/Ldap简单介绍以及使用时的问题记录

简单介绍

越来越多的公司采用ldap来做认证了,其认证的好处简单来说就是入口统一,功能完善,比如gitlab就支持试用ldap认证,xwiki同样支持,极大简化了公司内部的认证成本。

相应的和ldap经常一起提到的就是radius了,这里简单介绍下他们两个,有个文档很好,可以详细看下

Ldap

主要用以存储各种组织信息,以树状结构存储,并且可以给节点添加属性信息,例如用户的历史密码信息,密码创建时间,可以用来认证,使用tcp协议,相比于radius来说ldap更像一个db

Radius

主要用以认证,server后端可以接多种认证服务,例如radius server后面可以接ldap服务,radius提供认证服务以及账户计费功能,常用的wifi认证就可以使用radius,不仅支持认证还支持用户在线时间记录,使用udp协议,同时在传输过程中只对密码字段进行加密其他字段都是明文传输,这个使用tcpdump就可以看到的

在开发的时候需要接入公司的账号管理,纠结了一下最终还是选择使用radius进行认证,如果使用ldap的话当然也是可以的,但是里面可能会涉及到操作读取、检索之类的,而我开发这里只需要一个简单的认证,所以最终是选择了radius(当然公司账号信息是存在ldap中的)

问题

golang使用radius库进行认证的时候一直超时得不到响应,查看radius日志之后发现有错误提示 Error: Ignoring request to authentication address * port 1812 from unknown client 1.1.1.1 port 39152,原因是由于没有在radius中进行客户端的定义!!!所以如果想要使用radius进行认证,每增加一个认证clint就需要增加一个配置,这个不要忘记

1
2
3
4
client 1.1.1.1 {
secret = secret
require_message_authenticator = no
}

转载请注明来源链接 http://just4fun.im/2017/10/10/Radius-Ldap简单介绍以及问题记录/ 尊重知识,谢谢:)