在Rails中,如何将用户限制在特定位置或计算机上?

时间:2015-07-20 13:42:26

标签: ruby-on-rails

我正在尝试限制用户,只允许他们在使用公司计算机或现场时输入/输出。有没有办法做其中任何一个。我会使用IP或主机名,但我们有一个动态IP,主机名是从IP生成的,所以在这种情况下都不会有用,因为我们在ISP的网关/防火墙之后。

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是在要允许访问的每台计算机上放置SSL(TLS)客户端证书,然后让HTTP服务器在允许用户连接到Rails应用程序之前请求有效证书。例如,使用nginx,配置可能看起来像这样:

In [7]: s = "console-3.45.1-0"

In [8]: a,b = s.split("-",1)

In [9]: a
Out[9]: 'console'

In [10]: b
Out[10]: '3.45.1-0'

server.crt文件是您从SSL证书商店获得的常规SSL证书。 ca.crt(证书颁发机构)文件是您自己生成的文件。然后,您将使用CA证书生成许多客户端证书,并告知nginx仅接受CA签署的证书。 Here's a helpful article that shows you how.

这种方法要求您制作并安全地存储CA证书,为每台计算机生成(理想情况下)一个证书,并为每台需要访问的计算机添加客户端证书,因此这需要相当多的工作。您还必须确保您的用户不能只导出客户端证书并将其安装在家用PC上。