【强叔侃墙第二季】20 IP渐欲迷人眼,认证方能辨真身---单点登录

digest [复制链接]
发表于 : 2016-6-23 09:53:45 最新回复:2019-08-16 09:24:32
8075 8
强叔侃墙
强叔侃墙 官方号

本帖最后由 强叔侃墙 于 2017-03-01 11:20 编辑

关键字:SSOAD单点登录、RADIUS单点登录、TSM单点登录

首先我们看下百度百科上对单点登录的解释:SSO英文全称Single Sign On单点登录SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中,用于同一个用户登录的机制。它是目前比较流行的企业业务整合的解决方案之一。

通俗的说就是终端用户只登录一次就能访问不同的应用系统,各系统间怎么同步认证结果就是单点登录技术要实现的。

NGFW的单点登录指的是什么呢?企业已经部署好了认证系统,比如AD域认证,现在引入了NGFW通过用户身份控制权限。NGFW自然要获取登录用户的身份信息才能基于用户控制权限,NGFW再通过Portal对用户再认证一次?当然不可接受。单点登录功能就是搞定这件事情的,NGFW通过单点登录功能获取已有部署系统的认证结果,使用户同时在NGFW上线。

说到这里一直给强叔捧场的同学可能已经发现了,上一篇“NGFWController配合实现外部Portal认证”不就是单点登录吗?正解,用户认证都是在Controller完成的,NGFW只是被动获取认证结果。上一篇是单点登录与Portal重定向结合的应用,因为比较常用所以强叔单独设置一篇讲解了。本篇主要讲解AD单点登录和RADIUS单点登录,另外与Controller对接的TSM单点登录也会再稍微总结一下。

AD单点登录

经常有同学问强叔,这个AD单点登录和AD服务器认证到底啥区别啊,不都是使用AD服务器吗?区别就是向AD服务器发起认证请求的对象不同:AD服务器认证是由NGFW发起,AD单点登录不是NGFW发起,NGFW只是被动侦听认证结果。

20170301111139934001.png

AD服务器认证在“第18 内置Portal认证”中已经介绍过了,用户在Portal输入用户名、密码后,NGFW将用户名、密码转发至AD服务器进行认证,如果忘记的同学可以查看。

下边正式开始介绍AD单点登录。

AD单点登录的关键技术就是用户在PC上登录或退出AD域时,NGFW如何获取用户上下线消息。

20170301111140601002.jpg

NGFW支持通过如下两种方式获取用户上下线消息:

l? 插件方式

AD服务器或域内其他机器上安装插件,当用户上下线时插件通知NGFW上下线消息。

l? 解析认证报文方式

NGFW获取用户与AD服务器之间的认证报文,通过解析认证报文获取用户上线消息。

插件方式

如下图所示,通过在AD服务器的“组策略”中设置下发给PC的登录/注销脚本、在AD服务器或域内其他机器上安装AD单点登录插件,实现AD单点登录。

20170301111141064003.png

上图以在AD服务器上安装AD单点登录插件为例,如果AD单点登录插件安装在其他机器上,区别在于PC向另外一台机器上的AD单点登录服务程序发送用户上下线消息,然后由另外一台机器通知NGFW用户上下线消息。

登录注销脚本(ReportLogin.exe)、AD单点登录插件(ADSSO_Setup.exe)都可以从NGFWWeb界面下载,具体安装配置步骤可以查阅NGFW的产品文档。强叔这里只给出AD单点登录的关键对接步骤,帮助大家理解实现原理。

20170301111142639004.png

image013

如果有多台AD服务器主备或负载分担组网,需要在每台AD服务器都上安装插件和脚本。

安装配置完毕后,AD服务器(安装AD单点登录插件的机器)上的ADSSO服务自动启动 ,如果被停止则需要手工启动。

20170301111143325006.jpg

插件安装目录结构如下:

l? log文件夹记录插件运行日志,包括安装启动过程、用户上下线记录等,查看日志文件是定位问题的手段之一。

l? config.xml是插件的配置文件,安装中设置的参数保存在该配置文件中。可以通过此文件核对设置是否正确。如果修改此文件需要重启ADSSO服务。

20170301111144023007.png

当用户通过AD域认证后,用户在NGFW同步上线。

20170301111145974008.jpg

根据上边的描述可知AD单点登录涉及4个交互点,如果发生故障可以逐一排查:

1、? 用户登录AD域时AD服务器是否正常向PC下发脚本。

AD服务器需要向用户PC正常下发脚本,PC才能向插件发送用户上下线消息。

可以在PC的运行窗口执行rsop.msc,查看脚本是否正常下发。

20170301111146991009.png

注意如果AD服务器安装了杀毒软件,也可能阻止脚本下发,注意排查。

2、? PC是否正常向AD单点登录插件发送用户上下线消息。

PC向安装AD单点登录插件的机器的单点登录服务端口(安装时设置的服务运行端口)发送用户上下线消息,数据通过共享密钥加密。

可以检查PC和安装插件的机器是否正常通信,服务端口是否被占用。

3、? AD单点登录插件向AD服务器查询用户是否非法

如果AD单点登录插件安装在非AD服务器上,请检查网络连通性。

对于这个交互点,插件安装目录下的log文件是排障的重要依据,正常情况的日志如下:

20170301111147784010.png

前两行日志代表AD登录插件可以正常连接AD服务器。

后边的日志是用户上下线的记录,AD单点登录插件从AD服务器获取用户的全路径,并获取用户登录AD域的时间。

record timeAD服务器记录的用户登录AD域的时间,message是插件接收到PC发来的用户登录消息的时间。这两者的时间差如果超出安装插件时设置的“防重放时间”,则插件认为接收到的消息为恶意伪造的用户身份消息,不再将用户登录消息发给NGFW。此时日志打印“Fake logon detected,because logon time too far!”。因此一定要注意安装插件的机器与AD服务器之间的时间同步,如果没有特殊要求推荐将插件安装在AD服务器上。

4、? AD单点登录插件是否正常向NGFW发送用户上下线消息

?? AD单点登录插件向NGFWUDP 8000(缺省值)端口发送用户上下线消息,数据通过共享密钥加密。可以检查网络连通性、NGFW的安全策略配置等。

免插件方式

免插件方式比较简单,就是用户登录AD域时,NGFW需要获取到AD服务器返回给用户的认证结果报文,如果认证成功则解析出其中的用户名与IP对应关系。如果认证报文不经过NGFW,则需要将流量镜像至NGFWNGFW接收镜像流量的接口必须是独立的二层接口,不与其他业务混用。

免插件方式的AD单点登录配置如下,其中服务器IP地址/端口表示AD服务器的IP地址和认证端口,NGFW直接解析某些AD服务器的认证报文。

20170301111148336011.png

但是免插件方式只能获取到用户登录的消息,用户注销时没有数据,因此可能出现用户已经注销,但是NGFW上用户还未下线的情况。NGFW上的用户只能根据表项老化时间下线。

AD单点登录其他注意事项

除了在NGFW上配置AD单点登录参数,其他配置AD服务器、导入AD服务器用户、配置新用户选项等在内置Portal认证一篇中强叔已经介绍,这里不再赘述。强叔再交代如下两点:

1.???????? AD单点登录优先在与服务器上用户域名同名的认证域上线,如果不存在则在default认证域上线。说到这里,大家知道用户应该导入哪个域了吧?

什么叫“与服务器上用户域名同名的认证域”呢?例如AD服务器的域名是DC=cce,DC=com,那么NGFW上与其同名的认证域就是cce.com

2.???????? 在线用户老化时间的设置大有讲究,如果设置过短将导致用户在NGFW下线,除非用户再次重新登录AD域才能再次上线。另外只有开机或注销后的用户登录会触发用户在NGFW上线,休眠后的登录并不能触发上线。

因此,执行user-manage online-user aging-time命令设置在线用户老化时间需要大于用户的连续在线时长(包含休眠时间)。

?

RADIUS单点登录

RADIUS单点登录指的是NGFW被动侦听已有RADIUS认证系统的认证结果。

20170301111149891012.png

PC通过RADIUS客户端进行RADIUS服务器认证的交互过程如下,其中红色线的计费报文是NGFW解析的对象,以获取RADIUS单点登录用户上下线消息。

20170301111149023013.png

用户认证通过后RADIUS客户端向RADIUS服务器发送计费开始请求报文,NGFW从报文中读取用户名和用户IP地址,使用户在NGFW上线。

20170301111150320014.png

?

用户下线时RADIUS客户端向RADIUS服务器发送计费结束请求报文,用户同步在NGFW下线。

20170301111151087015.png

另外如果RADIUS客户端启用了实时计费功能,RADIUS客户端会定时向RADIUS服务器发送实时计费请求报文Accounting-Request(Interim-update)维持计费过程,NGFW获取计费更新报文后将刷新在线用户的剩余时间。

从上边的讲解可以看出,RADIUS客户端和服务器之间交互RADIUS计费报文是NGFW实现单点登录的先决条件。

RADIUS单点登录配置比较简单,启用功能并配置NGFW接收计费报文的接口。

20170301111152889016.png

如果RADIUS计费报文不经过NGFW,则需要将流量镜像至NGFW,此时的接口必须是独立的二层接口,不与其他业务混用。

TSM单点登录

为啥叫TSM而不是Controller,这是历史原因啦,想了解Controller的前世今生,推荐看这篇帖子Controller全家福

上一篇“NGFWController配合实现外部Portal认证”其实已经讲了TSM单点登录的过程,NGFW被动获取Controller的认证结果。只是在Portal认证中NGFW还起到了重定向Controller Portal页面的作用,Portal认证是用户接入Controller的一种方式, Agile Controller-Campus支持用户在802.1XPortalSACG认证的场景下上线或下线时向NGFW发送消息,同时完成用户在NGFW上线或下线。

NGFW缺省使用UDP 8001端口接收Controller发过来的用户上下线消息,数据通过AES1283DES算法加密。

TSM单点登录的基本配置过程如下,具体参见“NGFWController配合实现外部Portal认证”。

1.????????? Controller上添加NGFW作为上网行为管理设备。

2.???????? NGFW上添加ControllerTSM服务器)。

3.???????? NGFW上配置单点登录参数,以接收Controller的用户上线消息。

4.???????? Controller的部门信息导入NGFW,以进行权限控制。

5.???????? 配置default认证域的新用户选项。

6.???????? 执行user-manage online-user aging-time命令将老化时间设置(缺省30分钟)的长一些,避免用户在Controller下线前就在NGFW先下线。

?

至此NGFW支持的各种上网认证方式就介绍完了。

?

?

【前期链接】

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
撒么
撒么  导师 发表于 2016-6-23 10:39:49 已赞(0) 赞(0)

很不错顶强叔一下
  • x
  • 常规:

点评 回复

江离芷
江离芷   发表于 2016-11-4 16:21:22 已赞(0) 赞(0)

支持强叔
  • x
  • 常规:

点评 回复

小小小景雯
小小小景雯   发表于 2017-5-16 10:36:38 已赞(0) 赞(0)

学习ing……
  • x
  • 常规:

点评 回复

张德托夫
张德托夫   发表于 2017-7-17 13:14:08 已赞(0) 赞(0)

强叔,打算买本你的书,但是看出版日期是2015-05-01的,那样你新写的帖子是不是无法合入呢?还有个问题就是书上的说明会不会比帖子上的详细,从目录上看书上的有些章节帖子上没有。
  • x
  • 常规:

点评 回复

俺孩叫小事
俺孩叫小事   发表于 2017-11-1 20:29:04 已赞(0) 赞(0)

这单点登陆在政府单位用的多
  • x
  • 常规:

点评 回复

Yep
Yep   发表于 2019-8-9 12:27:46 已赞(0) 赞(0)

支持支持【强叔侃墙第二季】20 IP渐欲迷人眼,认证方能辨真身---单点登录-3029259-1
  • x
  • 常规:

点评 回复

福建龙田网络科技
tyni
tyni   发表于 2019-8-12 11:41:41 已赞(0) 赞(0)

感谢分享
  • x
  • 常规:

点评 回复

福建龙田网络科技有限公司
GhostBoy
GhostBoy   发表于 2019-8-16 09:24:32 已赞(0) 赞(0)

学习
  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录