将应用程序暴露给IP范围或验证针对IP范围的登录请求

时间:2016-03-29 12:55:32

标签: wakanda

是否有Wakanda方式:

  1. 仅将Wakanda应用程序暴露给特定的IP地址或IP范围
  2. 针对IP地址或IP范围验证登录请求(自定义登录)

3 个答案:

答案 0 :(得分:1)

我将逐一回答问题:

1-

这应该使用您的操作系统防火墙(例如,如果你在Linux上使用iptables)

2-

如果使用防火墙限制对应用的访问,则可能不需要执行此操作。但如果你真的需要:

今天没有好办法,因为你无法禁用authentication REST API。我建议的解决方法如下(但如果您使用的是活动目录,我认为它不会起作用):

  • 为身份验证/login添加自定义请求处理程序,您可以执行以下操作:

    function login(request,response){
            var ip = request.remoteAddress;
    
            if( ! isIPAuthorized(ip)){
                            response.statusCode = 403;
                            return;
            }
    
            sessionStorage["login-request"] = true;
            /*
             * Your login code here
             * For instance you can use loginByPassword, createUserSession ..
             */
            sessionStorage["login-request"] = false;
    }
    
  • Login Listener内,您可以通过查看sessionStorage来检查登录请求是否来自您的自定义登录功能:

    if(!sessionStorage["login-request"]){
            return {
                   "error" : 1024,
                    "errorMessage" : "Unautorized Login Attempt"
            }
    }
    

这样,任何使用未检查IP的默认REST身份验证API的登录尝试都将被拒绝。

答案 1 :(得分:0)

对于第一个问题,在项目设置文件(Settings.waSettings)中启用Cross-origin resource sharing,您需要定义允许外部页面向其发送数据请求的域名或IP地址列表通过CORS的Wakanda服务器。可以添加多个域属性来创建白名单。

答案 2 :(得分:0)

任何应用程序公开给特定范围的IP地址(同时阻止所有其他)的最佳方法是使用;是基于软件的防火墙(例如还是)还是基于硬件的防火墙(例如 Cisco ASA )。使用防火墙可以完全减轻对问题第二部分的需求。