Apache Zeppelin Websocket已通过身份验证吗?

时间:2019-12-25 04:27:39

标签: nginx websocket apache-zeppelin

遵循此处的指导...

https://zeppelin.apache.org/docs/0.8.2/setup/security/authentication_nginx.html

我(几乎)逐字使用nginx.conf将Zeppelin部署在Nginx代理后面,以通过nginx通过https实现基本身份验证,作为我内部不受保护的Zeppelin实例的代理。我的意图是通过使用不超过上游内部通信未加密的https直到nginx来实现机密性-假设所有外部通信均已加密和认证。我对这个齐柏林飞艇网站的印象是,他们在这里的指导可以通过合理但保守的现代安全标准来实现。

我担心nginx身份验证代理无法为websocket端点实现与HTTP端一样的功能。我的问题(主要是针对Zepp贡献者)是,这是否建议Nginx身份验证和https config采取任何措施来保护websocket通道免遭未经授权的使用?客户端的Zeppelin服务器是否通过/ ws uri连接进行身份验证?

这里的链接2通过启用Zepellin内部的身份验证系统,听起来像/ so /是“安全的”。但是,这似乎与Zeppelin团队在第一个链接中建议将身份验证和Zeppelin关注点分开的更好建议相违背。

https://zeppelin.apache.org/docs/0.6.2/security/shiroauthentication.html

那么,可以使用Nginx通过HTTP设置在基本身份验证之后加强Zeppelin(与基本身份验证一样严格)吗?换句话说,Zeppelin是对ed内部的websocket客户端进行身份验证,还是可以欺骗nginx身份验证的Zeppelin前端,而无需nginx要求密码就可以建立websocket连接?如何更改此nginx.conf以便为非https,非wss Zeppelin上游服务器实现安全的nginx代理?

upstream zeppelin {
    server 192.168.1.200:38080;
}

server {
    listen 443 ssl;
    server_name mysite.com;

    ssl_certificate /etc/nginx/key/nginx_20191222.crt;
    ssl_certificate_key /etc/nginx/key/nginx_20191222.key;
    ssl_protocols   TLSv1.2;
    ssl_ciphers     HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://zeppelin;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;

        auth_basic        "Private site";
        auth_basic_user_file  conf.d/passwd;
    }

    location /ws {  
        proxy_pass http://zeppelin;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;    #websocket;
        proxy_set_header Connection upgrade;
        proxy_read_timeout 86400;
    }
}

0 个答案:

没有答案