我正在研究为用户提供跨多台计算机的单一身份的软件。也就是说,用户应在每台计算机上具有相同的权限,并且该用户应有权访问每台计算机上的所有他或她的文件(漫游主目录)。这个一般想法似乎有很多解决方案,但我正在尝试为我确定最佳解决方案。以下是一些详细信息以及要求:
- 机器网络是运行Ubuntu的Amazon EC2实例。
- 我们使用SSH访问机器。
- 该LAN上的某些计算机可能有不同的用途,但我仅讨论特定用途的计算机(运行多租户平台)。
- 该系统不一定具有恒定数量的机器。
- 我们可能必须永久或临时更改正在运行的计算机数量。这就是为什么我要研究集中式身份验证/存储的原因。
- 实现这种效果应该是安全的。
- 我们不确定用户是否可以直接进行shell访问,但是他们的软件可能会在我们的系统上运行(当然,使用受限的Linux用户名),这与直接shell访问一样好。
- 为了安全起见,假设他们的软件可能是恶意的。
我听说过多种技术/组合可以实现我的目标,但是我不确定每种组合的后果。
- 较早的ServerFault帖子推荐使用NFS和NIS,尽管根据Symantec的旧文章,此组合存在安全问题。该文章建议使用NIS +,但由于年代久远,这篇Wikipedia文章引用了一些声明,暗示Sun逐渐偏离NIS +。推荐的替代品是我听说的另一件事...
- LDAP。看起来LDAP可用于将用户信息保存在网络上的集中位置。仍然需要使用NFS来满足“漫游主文件夹”的要求,但是我看到它们被一起使用。既然Symantec文章指出了NIS和NFS中的安全性问题,是否有软件可以替代NFS,还是我应该注意该文章的建议以将其锁定?我之所以趋向于LDAP,是因为我们架构的另一个基本部分RabbitMQ具有针对LDAP的身份验证/授权插件。RabbitMQ将以受限方式供系统上的用户访问,因此,我希望将安全系统捆绑在一起。
- Kerberos是我听说过的另一种安全身份验证协议。几年前,我在一个密码学课上学到了一些关于它的知识,但对它却不太记得。我在网上看到了一些建议,可以通过多种方式将其与 LDAP 结合使用。这有必要吗?没有Kerberos的LDAP有哪些安全风险?我还记得在卡耐基梅隆大学开发的另一款软件中使用了Kerberos ...
- 安德鲁文件系统或AFS。可以使用OpenAFS,尽管其设置似乎有些复杂。在我的大学中,AFS同时满足这两个要求...我可以登录到任何计算机,并且“ AFS文件夹”始终可用(至少在获得AFS令牌时)。
除了我应该寻找的建议之外,是否有人有特别有用的指南?粗体指出,LDAP似乎是最佳选择,但是我对与安全性有关的实现细节(Keberos?NFS?)特别感兴趣。