验证后防止强制网络门户自动关闭(Android)

zgc*_*009 11 javascript authentication android captivenetwork

所以简单的想法是我们有一个RADIUS服务器设置,允许用户通过用户凭证与我们的Ruckus控制器进行身份验证.在身份验证时,应将用户重定向到允许他们管理MAC身份验证设备的页面.

在我们迄今为止测试的所有内容中,包括"较旧"的Android设备,这似乎没有问题,而且事情按照应有的方式运行.然而,对于Lollipop(5.0+)版本的Android,强制门户网站已经发生了很大变化,其中一部分变化是自动关闭加入网络时启动的强制网络门户.因为我们希望在身份验证后将它们重定向到MAC设备管理页面,以便他们可以添加他们当前登录的设备并避免再次登录,这很糟糕.

我尝试过的:

  1. 检测浏览器是否正在移动设备中启动,并在onbeforeunload中弹出一个尝试保持浏览器打开的警报.

  2. 检测到成功验证后,打开一个指向重定向URL的新浏览器窗口(基本上是自己管理重定向).

  3. 在重定向的URL上执行选项2,然后执行选项1

什么行不通:

  • 要求用户在其设备上禁用强制网络门户选项.不要试图将一般用户指向高级控件.

  • 创建一个开放的网络来访问MAC管理器,它必须落后于某些身份验证.

解决方案现在:

我们对此解决方案不满意,但现在我们只是要求用户通过网络进行身份验证,然后打开浏览器并转到用户用来手动添加设备的基本登录门户页面(非网络身份验证)连接(如打印机,游戏设备等).虽然这有效,但用户必须登录,打开浏览器,手动输入URL并再次登录才是一种痛苦.

这不是人们没有碰到的问题,看到这里,我只是找不到任何遇到问题的人的解决方案.当然有一些方法可以利用javascript或其他东西来保持浏览器在这种情况下打开.如果没有,任何人都有更好的想法来管理事物?

Joh*_*ink 9

我们设法通过添加阻止防火墙规则来保持UAM浏览器/强制门户浏览器在棒棒糖上打开:

  • clients3.google.com
  • clients1.google.com,
  • android.clients.google.com
  • connectivitycheck.android.com
  • connectivitycheck.gstatic.com

因此,在用户通过身份验证后,UAM/Captive Browser保持打开状态.

只要您需要,您可以保持UAM打开,您可以通过调用反向代理204重定向到谷歌的连接页面来关闭它.