内联网的单点登录?

内联网的单点登录?

我正在尝试为我的内联网设置单点登录。我在网上找到了几个解决方案,但我不确定它们是否适用于我的具体情况。

我在同一台服务器上有多个子域。一个级别的用户应该能够访问所有子域,而另一个级别的用户只能访问部分子域。

登录一个子域应该可以使您不必登录任何其他子域。

有人能给我指出正确的方向吗?我在 Ubuntu 上使用 Apache。

答案1

我不是 100% 确定解决方案,但我相当确定您可以运行 LDAP 服务器并让 apache 通过使用 mod_ldap 对其进行身份验证。您可能希望查看本文以查看它是否是您想要的:

http://www.linux.com/archive/feature/120050

从那里您应该能够在 ldap 中创建用户组并配置 apache 以反映不同文件夹的组访问。

公平地警告,我以前从未真正这样做过,所以这可能不是你想要的。

此外,看起来 apache 现在有自己的目录服务器项目,我只使用过 Fedora-DS,现在是 389-DS,应该非常相似:

http://directory.apache.org/

答案2

您将如何验证您的用户?PHP/mysql?如果是这样,您可以使用 cookies

答案3

以下是我的建议(严格内部网- 同一网络域名的子域名):

在身份提供者上,主身份验证代码之后调用一个方法:

  • 向消费者发送有关登录用户的加密数据
  • 接收并使用签名的登录 cookie 验证响应
  • 返回 cookie 的名称和值

方法返回后 - 为子域设置 cookie。

关于身份消费者服务:

  • 接收方法的数据
  • 解密
  • 如果用户不存在,则创建其帐户
  • 确定会话 cookie
  • 签署 Cookie
  • 将 Cookie 名称、值和签名发送回身份提供者

这比 OAuth、LDAP 等更容易设置,但只适用于子域,因为 cookie 不能跨越域边界。

相关内容