jjzjj

portal认证

java山猫 2024-03-21 原文

portal认证

商务&技术咨询:68617572@qq.com

一、简介

若依后台管理框架V4.6.0做为基础框架,实现了ToughRADIUS大部分功能,支持标准RADIUS协议(RFC 2865, RFC 2866),提供完整的AAA实现。可运用于酒店WIFI认证公司局域网权限认证商场WIFI认证其它公共场所等等。

二、主要功能

  • 套餐管理
  • 设备管理
  • 用户管理
  • 订单管理
  • 在线管理
  • 微信、支付宝H5支付
  • 实现用户上线请求认证、动态授权、限速、强制下线
  • 实现上网时间到期后自动下线

三、认证流程

四、搭建步骤

系统环境:JDK1.8 ,centos8,mysql5.7

注意:centos7的yum源没有freeradius-rest安装包,安装过程中会带来不少麻烦,建议centos8安装,省不少事情。

1.freeradius安装

yum install freeradius -y
yum install freeradius-rest -y
yum install freeradius-utils -y

至此,我们已安装完成freeradius,下面我们要对freeradius进行配置,支持rest认证

2.freeradius配置

  • 通过软连接方式启动rest模块
ln -s /etc/raddb/mods-available/rest /etc/raddb/mods-enabled/rest
  • 修改/etc/raddb/sites-enabled/default
vim /etc/raddb/sites-enabled/default

分别在authorize,authenticate,accounting3个模块中插入rest配置,如下图所示:

  • 修改/etc/raddb/users
vim /etc/raddb/users

把freeradius的默认认证方式改为rest(DEFAULT Auth-Type := rest)

  • 修改/etc/raddb/mods-enabled/rest

    文件内容如下:

rest {

	tls {
#		ca_file	= ${certdir}/cacert.pem
#		ca_path	= ${certdir}
#		certificate_file        = /path/to/radius.crt
#		private_key_file	= /path/to/radius.key
#		private_key_password	= "supersecret"
#		random_file		= /dev/urandom
#		check_cert = yes
#		check_cert_cn = yes
	}

	connect_uri = "http://127.0.0.1:8090"
	connect_timeout = 5.0

    authorize {
            uri = "${..connect_uri}/api/freeradius/authorize"
            method = 'post'
            body = 'post'
            data = "username=%{urlquote:%{User-Name}}&nasip=%{urlquote:%{NAS-IP-Address}}&nasid=%{urlquote:%{NAS-Identifier}}"
    }

    authenticate {
            uri = "${..connect_uri}/api/freeradius/authenticate"
            method = 'post'
            body = 'post'
            data = "username=%{urlquote:%{User-Name}}&nasip=%{urlquote:%{NAS-IP-Address}}&nasid=%{urlquote:%{NAS-Identifier}}"
    }

    accounting {
            uri = "${..connect_uri}/api/freeradius/accounting"
            method = 'post'
            body = 'post'
            data = "username=%{urlquote:%{User-Name}}&nasip=%{urlquote:%{NAS-IP-Address}}&nasid=%{urlquote:%{NAS-Identifier}}\
&acctSessionId=%{urlquote:%{Acct-Session-Id}}&macAddr=%{urlquote:%{Calling-Station-Id}}&acctSessionTime=%{urlquote:%{Acct-Session-Time}}\
&acctInputOctets=%{urlquote:%{Acct-Input-Octets}}&acctOutputOctets=%{urlquote:%{Acct-Output-Octets}}\
&acctInputGigawords=%{urlquote:%{Acct-Input-Gigawords}}&acctOutputGigawords=%{urlquote:%{Acct-Output-Gigawords}}\
&acctInputPackets=%{urlquote:%{Acct-Input-Packets}}&acctOutputPackets=%{urlquote:%{Acct-Output-Packets}}\
&nasPortId=%{urlquote:%{NAS-Port-Id}}&framedIPAddress=%{urlquote:%{Framed-IP-Address}}\
&sessionTimeout=%{urlquote:%{Session-Timeout}}&framedIPNetmask=%{urlquote:%{Framed-IP-Netmask}}\
&acctStatusType=%{urlquote:%{Acct-Status-Type}}"
    }

    post-auth {
            uri = "${..connect_uri}/api/freeradius/postauth"
            method = 'post'
            body = 'post'
    }

	pool {
		start = ${thread[pool].start_servers}
		min = ${thread[pool].min_spare_servers}
		max = ${thread[pool].max_servers}
		spare = ${thread[pool].max_spare_servers}
		uses = 0
		retry_delay = 30
		lifetime = 0
		idle_timeout = 60
	}
}
  • 修改/etc/raddb/clients.conf
vim /etc/raddb/clients.conf
改成自己的ip
cd /etc/raddb/certs/
./bootstrap

到这里我们对freeradius的配置也就完成了,下面我们安装nuoyi-radius。

3.ruoyi-radius安装

  1. 下载源码

gitee:https://gitee.com/panweilei/ruoyi-radius.git

  1. 初始化数据库

执行ruoyiradius-init.sql


  1. 修改radius-application.properties,避免和freeradius端口冲突
org.toughradius.authport=${RADIUSD_AUTH_PORT:2812}
org.toughradius.acctport=${RADIUSD_ACCT_PORT:2813}

修改为false
org.toughradius.portal.portalEnabled=${PORTAL_ENABLED:false}
  1. 创建/opt/server/ruoyiradius/logs

在主机上创建日志输出目录

  1. 启动ruoyi-radius

maven打包,修改ry.sh(Appname的修改,jar路径的修改)

启动项目 ./ry.sh start

4.调试&验证

  1. 调试模式启动freeradius
radiusd -X
  1. 启动(AC模拟器)ACUDP.jar

    jar包下载:http://150.158.153.233:9876/ACUDP.jar

    源码下载:私信我发你邮箱

./acudp.sh
  1. 打开管理后台:http://127.0.0.1:8090/
  2. 添加设备

3.添加用户

  1. 测试打断登录

    浏览器输入:http://127.0.0.1:8090/wlandemo,页面将出现以下内容,然后按部就班的操作就行,可以观察后台freeradius日志和ruoyi-radius日志的输出情况.

有关portal认证的更多相关文章

  1. ruby - token 认证 - 2

    简单代码require'net/http'url=URI.parse('getjson/otherdatahere[link]')req=Net::HTTP::Get.new(url.to_s)res=Net::HTTP.start(url.host,url.port){|http|http.request(req)}putsres.body只是想知道如何在phpcURL中放置身份验证token,我是这样做的    curl_setopt($ch,CURLOPT_HTTPHEADER,array('Authorization:Bearerxxx'));//Bearertokenfora

  2. ruby - HTTParty 摘要认证 - 2

    谁能提供一个使用HTTParty和digestauth的例子?我在网上找不到例子,希望有人能提供一些帮助。谢谢。 最佳答案 您可以在定义类时使用digest_auth方法设置用户名和密码classFooincludeHTTPartydigest_auth'username','password'end 关于ruby-HTTParty摘要认证,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

  3. 华为认证的网络工程师证好考吗,含金量高吗 ? - 2

    华为认证分等级的,相当于初中高三个等级,当然高级是比较难考的,也是含金量最高的。我就慢慢给你介绍一下。1.了解华为认证华为认证网络工程师是由华为公司认证与采购部推出的独立认证体系,与之前的华为认证不同,简称HCIA。同时华为认证是华为技术有限公司凭借多年信息通信技术人才培养经验,以及对行业发展的理解,以层次化的职业技术认证为指引,推出的覆盖IP、IT、CT以及ICT融合技术领域的认证体系,是ICT全技术领域认证体系。​2.怎么考取华为认证网络工程师?要考取华为认证网络工程师必须选择最近的Prometric授权考试中心APTC报名并参加GB0-190的考试,考试通过后,以获得由华为统一签发的“华

  4. 2023年6月DAMA-CDGP数据治理专家认证请尽快报名啦! - 2

    目前6月DAMA-CDGP数据治理认证考试开放报名地区有:北京、上海、广州、深圳、长沙、呼和浩特。目前南京、济南、西安、杭州等地区还在接近开考人数中,打算参加6月考试的朋友们可以抓紧时间报名啦!!!5月初,DAMA-CDGA/CDGP数据治理认证考前班也即将开班啦!报名从速!!!DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升数据管理能力。CDGP数据治理专家认证属于

  5. ruby-on-rails - 在 mongoid.yml 中指定认证数据库 - 2

    我正在尝试通过mongoid.yml进行身份验证,但我想要进行身份验证的用户在admin数据库中。如果我尝试在数据库字段中指定管理数据库,它也会将所有集合放在那里,我不希望这样。有没有办法将我的数据库字段设置为我想要的数据库,但指定一个单独的身份验证数据库?这是我的mongoid.yml文件development:sessions:default:database:XC_DEVhosts:-IP:PORTusername:userpassword:password 最佳答案 这个问题已经存在一年多了,但值得回答。是的,auth_so

  6. 华为鲲鹏认证怎么样?值得考吗 - 2

    华为鲲鹏认证是华为新推出的认证,可以看看下它的介绍:HCIA-KunpengApplicationDeveloper认证定位于培养和认证能够应用华为鲲鹏计算平台进行应用迁移与部署,性能测试与调优的鲲鹏应用开发工程师。获得HCIA-KunpengApplicationDeveloper认证,证明学员对华为鲲鹏计算平台有初步的了解,能够基于华为鲲鹏计算平台进行应用迁移、部署、性能测试和调优等工作。HCIP-KunpengApplicationDeveloper认证定位于培训与认证能够基于鲲鹏架构进行应用开发和高阶鲲鹏应用移植的高级工程师,通过此认证,将证明您了解鲲鹏应用从底层到发布的整个生命周期各

  7. k8s API Server 中的认证、鉴权、准入、限流总结分享 - 2

    文章目录概述认证认证插件基于静态token的认证服务实践基于X509证书认证实践基于webhook认证实践鉴权k8s中RBAC的使用授权实践准入场景配额管理实践插件插件开发限流APIPriorityandFairnessAPF中的排队FlowSchema与PriorityLevelConfiguration(队列权重配置)调试命令概述kube-apiserver是k8s最重要的控制组件之一,主要提供以下功能:提供集群管理的RESTAPI接口,包括认证授权、数据校验以及集群状态变更等k8s中所有模块与etcd的数据交互都需要走APIServer,禁止直接和etcd通信APIServer请求流程概

  8. javascript - React 16 的 Portal API 是否打算取代 Context API? - 2

    我注意到新功能portals做同样的事情但更好?我不太了解门户,但它似乎是管理嵌套组件更新的新方法?我知道ReactsContextAPI是实验性的,并注意到componentDidUpdate不再接收prevContext并且他们删除了contextTypes。我还注意到他们正在介绍React16'sPortalAPI并且不确定这是否旨在取代ContextAPI。那么,如上所述,React16的PortalAPI是否旨在取代ContextAPI?编辑:借用这个话题,conext是在React中管理i18n本地化的最佳方式吗? 最佳答案

  9. javascript - 判断浏览器是否支持windows集成认证 - 2

    有没有一种方法可以确定浏览器是否支持NTLM而无需在IIS中为特定站点或目录启用NTLM并且不显示登录对话框/弹出窗口?最好使用ColdFusion或JS和CF的某种组合来确定这一点。我不想将此限制为仅IE,因为其他浏览器(例如FF)支持NTLM身份验证。 最佳答案 如果你请求一个页面,页面返回401并说它只接受NTLM,然后浏览器发送另一个HTTP数据包试图响应它,那么它支持NTLM。您不必让IIS执行此操作——您可以在任何页面上设置响应代码和header请求NTLM。如果您没有收到另一个请求,则表示客户端无法通过这种方式进行身份

  10. javascript - 使用 Javascript XMLHttpRequest 的摘要认证 - 2

    我正在尝试通过使用摘要式身份验证的API进行身份验证。我正在向服务器发送POST请求,但返回的响应是HTTP401Denied。这是来自服务器的WWW-Authenticate质询header:(包含用于格式化的反斜杠,不存在于响应header中)WWW-Authenticate:Digestrealm="Guard",domain="/",\nonce="MTMzOTA5Mjk1NTE2NDo0NzY2NjJiOTgyMjE1ZDc0OWU3NzM5MTkzMWNjNGQzNw==",\algorithm=MD5,qop="auth"我使用此header中的参数应用摘要身份验证算法并

随机推荐