ZF2设置LDAP SSO

ZF2设置LDAP SSO,ldap,zend-framework2,single-sign-on,Ldap,Zend Framework2,Single Sign On,我正在创建一个在网络(与其他站点)中工作的站点,该网络共享相同的Active Directory以验证用户(SSO) 我已成功验证我的用户 $auth = new \Zend\Authentication\AuthenticationService(); $options = array( 'server' => array( 'host' => $host, 'baseDn' => $dc

我正在创建一个在网络(与其他站点)中工作的站点,该网络共享相同的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);
。。。但是我不知道如何检查用户是否已经被授权(来自网络中的另一个站点),或者我需要在会话中保留什么(或标题?),以便其他站点知道用户已经登录


谢谢

如果您正在使用的组织已经为多站点SSO创建了一个规定,那么它将需要类似oauth的东西,它包装了他们的目录服务,并以浏览器友好的方式处理SSO。我也见过web应用的SSO以非oauth的方式实现,但它始终依赖于共享一个公共根域的站点,因此具有共享的cookie范围

底线:域之间的SSO通常不是Zend\Authentication或LDAP的内置功能

FWIW,我以前为自定义公司SSO方案构建过一个自定义Zend\Authentication适配器,这是一个快照。您只需实现非常简单的接口

另外,FWIW,如果他们还没有SSO,我们目前正在通过构建一个定制的oauth2提供程序来实现类似的功能,该提供程序封装了客户的目录服务。在权衡了这些选项之后,我们将选择作为核心库。(注意:注册时要小心,因为构建和拥有oauth2提供程序并非易事)