2016-03-29 6 views

Antwort

1

Ich werde die Fragen einer nach der anderen beantworten:

1-

Dies sollte Ihr O‘Firewall (unter Verwendung von iptables zum Beispiel, wenn Sie auf Linux sind) durchgeführt wird unter Verwendung von

2-

Wenn Sie den Zugriff auf die App mithilfe der Firewall beschränken, müssen Sie dies möglicherweise nicht tun. Aber wenn Sie wirklich brauchen:

Heute gibt es keinen guten Weg, dies zu tun, weil Sie die authentication REST API nicht deaktivieren können. Die Abhilfe, die ich vorschlagen, ist wie folgt (aber ich glaube nicht, es wird funktionieren, wenn Sie Active Directory verwenden):

  • eine benutzerdefinierte Request-Handler hinzufügen zur Authentifizierung /login wo man so etwas tun:

    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; 
    } 
    
  • In Ihrem Login Listener Sie können überprüfen, ob die Anmeldeanfrage von Ihnen benutzerdefinierte Login-Funktion geliefert wurde oder nicht, indem die Überprüfung sessionStorage:

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

Auf diese Weise wird jeder Anmeldeversuch mit der standardmäßigen REST-Authentifizierungs-API, bei der IPs nicht geprüft werden, abgelehnt.

+0

danke für Ihre Antwort Hamza. Gibt es eine Möglichkeit, auf das Objekt 'request' im benutzerdefinierten Anmeldehandler (in der Datei 'required.js') der Lösung zuzugreifen? – Stefan

+0

Heute ist es nicht möglich. Ich werde dies mit dem Team besprechen, um zu sehen, ob wir etwas wie 'httpServer.getRequest()' haben können, um auf die Anforderung zuzugreifen, die dem aktuellen Thread als [HttpRequest] angehängt ist (http://doc.wakanda.org/home2.de) .html #/HTTP-Request-Handler/HTTPRequest.201-803366.de.html) – hamzahik

+0

das wäre großartig und würde viele Möglichkeiten eröffnen. Danke – Stefan

0

Für die erste Frage, aktivieren Sie die Cross-origin resource sharing in der Projekteinstellungen Datei (Settings.waSettings), und Sie müssen die Liste der Domain-Namen oder die IP-Adresse definieren, aus wo externe Seiten dürfen nd Datenanforderungen an den Wakanda Server über CORS. Mehrere Domain-Attribute können hinzugefügt werden, um eine Whitelist zu erstellen.

0

Der beste Weg jede Anwendung auf einen bestimmten Bereich von IP-Adressen (während blockiert alle anderen) ist mit einem zu exponieren; ob es sich um eine softwarebasierte Firewall (z. B. oder ) oder eine hardwarebasierte Firewall (z. B. Cisco ASA) handelt. Durch die Verwendung einer Firewall wird der zweite Teil Ihrer Frage vollständig überflüssig.

Verwandte Themen