2013-08-28 87 views
0

我正在創建一個網站(與其他網站)共享相同的Active Directory以驗證用戶(SSO)的網站。ZF2設置LDAP 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); 

...但我只是不明白如何檢查,如果用戶(從網絡中的其他網站)已經auth'ed或者我需要保留會話(或標題?),以便其他站點知道用戶已經登錄。

謝謝!

回答

1

如果已經爲您所使用的組織創建了多站點SSO的規定,則需要類似oauth的包裝其目錄服務,並以瀏覽器友好的方式處理SSO。我已經看到SSO爲web應用程序完成非oauth方式,但它一直依賴共享一個公共根域的站點,因此共享cookie範圍。

底線:域之間的SSO通常不是Zend \ Authentication或LDAP的內置功能。

FWIW,我以前爲自定義企業SSO方案構建了一個自定義Zend \ Authentication適配器,並且它很簡單。你只需要實現非常簡單的界面。

也FWIW,如果他們已經有SSO,我們目前正在實施類似的東西,通過建立一個自定義oauth2提供程序包裝客戶的目錄服務。在權衡了選項之後,我們將以https://github.com/bshaffer/oauth2-server-php作爲核心庫。 (注意:小心你註冊的是什麼,因爲建立和擁有oauth2提供者是不平凡的)