所以简单的想法是我们有一个RADIUS服务器设置,允许用户通过用户凭据对我们的Ruckus控制器进行身份验证。在身份验证时,应将用户重定向到允许他们管理MAC身份验证设备的页面。
到目前为止我们测试的所有内容,包括"年龄较大的" Android设备似乎没有问题,而且运行起来应该如此。然而,对于Lollipop(5.0+)版本的Android,强制门户网站已经发生了很大变化,其中一部分变化是自动关闭加入网络时启动的强制网络门户。因为我们希望在身份验证后将它们重定向到MAC设备管理页面,这样他们就可以添加他们当前登录的设备并避免再次登录,这很糟糕。
我尝试了什么:
检测浏览器是否在移动设备中启动,并在 onbeforeunload 中弹出警报,试图让浏览器保持打开状态。
当检测到成功的身份验证时,打开一个新的浏览器窗口,指向重定向URL(基本上是自己管理重定向)。
执行选项2,然后在重定向的网址
无法胜任的工作:
要求用户在其设备上禁用强制网络门户选项。不要试图将一般用户指向高级控件。
创建一个开放的网络来访问MAC管理器,它必须在某些身份验证之后。
现在解决方案:
我们对此解决方案不满意,但现在我们只是要求用户通过网络进行身份验证,然后打开浏览器并转到用户用来手动添加设备的基本登录门户页面(非网络身份验证)无法连接(如打印机,游戏设备等)。虽然这很有效,但用户必须登录,打开浏览器,手动输入网址并再次登录才是一件痛苦的事。
这不是一个人们无法遇到的问题,see here,我还没有能够找到遇到问题的任何人的解决方案。当然有一些方法可以利用javascript或其他东西来保持浏览器在这种情况下打开。如果没有,任何人都有更好的管理方法吗?
答案 0 :(得分:7)
我们设法通过添加阻止防火墙规则来保持UAM浏览器/强制门户浏览器在棒棒糖上打开:
因此,在用户通过身份验证后,UAM / Captive Browser将保持打开状态。
只要您需要,您可以保持UAM打开,您可以通过调用反向代理204重定向到谷歌的连接页面来关闭它。
答案 1 :(得分:3)
自从Lollipop(5.0)发布以来,这似乎是Android设备中新的强制网络门户行为。
我们尚未发现一种解决方法。如果有一种明确的方法可以禁用自动解雇,那么它可能只记录在这里可用的Android代码库中(我一直在寻找,但还没有发现任何确定的东西):
https://android.googlesource.com/platform/frameworks/base
仅供参考,我们还注意到Android使用CloudFront CDN进行强制网络检测。我们的强制门户解决方案最初使用CloudFront作为资产,因此我们必须在预认证ACL中将CloudFront子网列入白名单。白名单CloudFront随后导致强制网络检测在最近的Android设备上失败。我们不得不放弃CloudFront CDN来恢复Android设备的强制门户功能。
答案 2 :(得分:0)
为什么不在身份验证后打开强制网络门户?您始终可以允许访问除专属检查站点之外的每个站点。
在所有版本中测试并使用Android和iOS。 如果您需要从默认浏览器(不是强制ios / android沙盒浏览器)访问cookie /共享存储,您必须在认证之前跳出它。