ZF2设置LDAP SSO

时间:2013-08-28 14:36:35

标签: ldap zend-framework2 single-sign-on

我创建的网站在网络(与其他网站)一起工作,共享同一个Active Directory以对用户进行身份验证(SSO)。

我设法验证了我的用户...

    $auth = new \Zend\Authentication\AuthenticationService();

    $options = array(
        'server' => array(
            'host' => $host,
            'baseDn' => $dc
        ),
    );

    $adapter = new \Zend\Authentication\Adapter\Ldap($options, $username, $password);
    $result = $auth->authenticate($adapter);

...但我不知道如何检查用户是否已经过身份验证(来自网络中的其他网站)或者我需要在会话中保留什么(或标题?)以便其他网站知道用户已经登录。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您正在使用的组织已经创建了多站点SSO,则需要oauth,包装他们的目录服务并在浏览器友好的情况下处理SSO办法。我已经看到网络应用程序的SSO也采用非oauth方式,但它始终依赖于共享公共根域的站点,因此具有共享cookie范围。

底线:域之间的SSO通常不是Zend \ Authentication或LDAP的内置功能。<​​/ p>

FWIW,我之前已经为自定义企业SSO方案构建了一个自定义Zend \ Authentication适配器,这很简单。你只需要实现非常简单的界面。

另外FWIW,如果他们已经有SSO,我们目前正在实现类似的东西,通过构建一个自定义的oauth2提供程序来包装客户的目录服务。在权衡选项之后,我们将https://github.com/bshaffer/oauth2-server-php作为核心库。 (注意:请注意您注册的内容,因为建立和拥有oauth2提供商并非易事)