上篇文章结合wifidog的协议,讲解了如何实现wifi认证。这篇文章会详细讲解一下wifidog的协议。

wifidog的认证流程图

  • 用户连接WIFI会跳转到以下地址:
1
2
3
4
5
6
7
http://auth_server/login?gw_id=[GatewayID, default: "default"]gw_address=[GatewayAddress, internal IP of router]gw_port=[GatewayPort, port that wifidog Gateway is listening on]
url=[user requested url] auth_server #即认证的域名
gw_id #配置的网关名称
gw_address #回调的内网地址
gw_port #回调的端口

在这个阶段需要返回登录的页面,即授权的首页,并且需要将所有涉及跳转的第三方地址加入白名单

  • 当验证用户身份之后,即用户登录成功之后重定向到网关地址
1
2
3
http://GatewayIP:GatewayPort/wifidog/auth?token=[auth token]

auth token #系统为用户生成的token
  • 网关地址接受到消息后,会周期的发送用户信息,并确认是不是允许继续网络访问 请求地址
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
http://auth_server/auth/index.php?
stage=counters
ip=
mac=
token=
incoming=
outgoing= ip,mac,token为用户的基本信息,incoming/outgoing为用户的连接计数信息,用来限定用户是否可以继续连接 此时auth_server需要返回该请求:
0——拒绝,删除防火墙内用户以及用户的信息
6——用户验证失败,超时,会删除防火墙内信息(即会重新要求登录)
1——用户验证通过,并跳转到http://auth_server/portal/?gw_id=%s
5——用户需要验证,允许规则内的访问进行验证
-1——用户验证出错,用户可以继续访问网络 返回数据格式:
Auth: <number from user status list>
如Auth: 1 #中间有个空格
  • 系统会周期性发送心跳包,用来确认网关验证和认证服务器的正常工作请求地址
1
2
3
4
5
6
7
8
9
http://auth_sever/ping/?
gw_id=%s
sys_uptime=%lu
sys_memfree=%u
sys_load=%.2f
wifidog_uptime=%lu auth_server此时需要返回“Pong”
可以通过该心跳包来监控整个认证的工作

相关资料:
认证流程图:http://dev.wifidog.org/wiki/doc/developer/FlowDiagram
认证的login协议: http://dev.wifidog.org/wiki/doc/developer/LoginProtocol
认证的客户端协议:http://dev.wifidog.org/wiki/doc/developer/ClientProtocol
认证过程中的心跳包协议:http://dev.wifidog.org/wiki/doc/developer/PingProtocol

Wifidog的协议梳理的更多相关文章

  1. http协议梳理(个人学习用)

    HTTP默认的端口号为80,HTTPS的端口号为443. 在Internet中所有的传输都是通过TCP/IP进行的.HTTP协议作为TCP/IP模型中应用层的协议.HTTP协议通常承载于TCP协议之上 ...

  2. Wifidog协议V1

    Wifidog网关协议V1 网关心跳(Ping协议) Wifidog将ping协议作为心跳机制向认证服务器发送当前状态信息.这可以实现为认证服务器每个节点的状态生成中央日志. Wifidog客户端在c ...

  3. WiFiDog 与 AuthServer

    背景 在一些公共场所(比如公交车.地跌.机场等)连接当地的 WiFi 时会弹出一个验证表单,输入验证信息(比如短信验证码)后就能够通过该 WiFi 联网. 本文将介绍通过 OpenWrt WiFiDo ...

  4. 物联网常见通信协议RFID、NFC、Bluetooth、ZigBee等梳理

    1  概述 在上一篇文章<物联网常见通信协议与通讯协议梳理[上]-通讯协议>中,对物联网常用通信协议和通讯协议作了区分,并对通讯协议进行了分享:本文将对常用的通信协议进行剖析,重点面向市场 ...

  5. xmpp即时通讯的笔记(摘抄)

    xmpp的使用: 即时通讯 instant messaging(IM) :  -->实时收发信息! 即时通讯相关软件: **QQ,MSN,GoogleTalk,AIM,Jabber(XMPP别名 ...

  6. java4wifidog_server_README

    项目地址:https://github.com/C-hill/java4wifidog_server 开发环境:Windows  JDK7  Tomcat6  Myeclipse8.5  MySQL5 ...

  7. 【转】阿里架构总监一次讲透中台架构,13页PPT精华详解

    转:https://blog.csdn.net/u011323949/article/details/99542576 本文整理了阿里几位技术专家,如架构总监 谢纯良,中间件技术专家 玄难等几位大牛, ...

  8. TCP/UDP协议简要梳理

    TCP/UDP协议简要梳理 TCP TCP,Transmission Control Protocol,传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议.在因特网协议族中,TCP所在的 ...

  9. 通用工业协议(CIP)形式化的安全分析(前期概念的梳理)

    1.CIP的概念的梳理 CIP是为开放的现场总线DeviceNet ControlNet   EtherNet/IP 网络提供公共的应用层和设备描述, CIP是基于对象的协议,使用生产者/消费者模型, ...

随机推荐

  1. ElasticSearch-.net平台下c#操作ElasticSearch详解

    ElasticSearch系列学习 ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSea ...

  2. [Go] 如何正确地 抛出 错误 和 异常(error/panic/recover)?

    序言 错误 和 异常 是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从表面上看,一切皆错误的思路 ...

  3. Android自己定义控件系列二:自己定义开关button(一)

    这一次我们将会实现一个完整纯粹的自己定义控件,而不是像之前的组合控件一样.拿系统的控件来实现.计划分为三部分:自己定义控件的基本部分,自己定义控件的触摸事件的处理和自己定义控件的自己定义属性: 以下就 ...

  4. 在ASP.NET MVC控制器中获取链接中的路由数据

    在ASP.NET MVC中,在链接中附加路由数据有2种方式.一种是把路由数据放在匿名对象中传递: <a href="@Url.Action("GetRouteData&quo ...

  5. 委托、Lambda表达式、事件系列04,委托链是怎样形成的, 多播委托, 调用委托链方法,委托链异常处理

    委托是多播委托,我们可以通过"+="把多个方法赋给委托变量,这样就形成了一个委托链.本篇的话题包括:委托链是怎样形成的,如何调用委托链方法,以及委托链异常处理. □ 调用返回类型为 ...

  6. 快速将wax配置到项目中进行lua开发

    通过Finder浏览到你保存该项目的文件夹.创建三个新的文件夹:wax.scripts和Classes. 第一:首先,下载源代码的压缩包.Wax放在GitHub上(https://github.com ...

  7. 创建、修改、删除ORACLE表空间

    //创建表空间 create tablespace MyFirstSpace datafile '/opt/oracle/app/oracle/product/9.2.0/dbs/MyFirstSpa ...

  8. 如何在SpringMVC中获取request对象

    1.注解法 @Autowired private HttpServletRequest request; <listener> <listener-class> org.spr ...

  9. 云服务器 ECS Linux 系统安装图形化桌面 (centos7 ubuntu14)

    基于性能及通用性等因素,默认情况下,阿里云官方公共 Linux 系统镜像不会安装图形化桌面组件.本文简述了常用操作系统图形化桌面安装说明,您可以根据需求进行配置系统. 注意:图形化桌面可能会 显著降低 ...

  10. 低版本系统兼容的ActionBar(一)设置颜色+添加Menu+添加ActionMode

        之前我一直用ActionBarSherlock这个开源项目来做ActionBar,因为它可以让低版本的设备也能用上ActionBar.但是在最新的SDK中Google提供了一个AppCompa ...