請教各位有做過單一登入的先進能在此區交流一些心得!
目的1:
同台主機同樣使用DRUPAL不同資料庫不同網站彼此登入
使用模組:
http://drupal.org/project/sso
Drupal版本:6.X
作法:
1.主站安裝:Single sign-on controller
修改/sites/default/settings.php
加入$conf['session_inc'] = 'sites/all/modules/sso/session.singlesignon.inc';
2.副站安裝:Single sign-on client
修改/sites/default/settings.php
加入$conf['session_inc'] = 'sites/all/modules/sso/session.singlesignon.inc';
把$db_prefix ='';改成
$db_prefix = array(
'default' => '',
'authmap' => '主站資料庫名稱',
'sessions' => '主站資料庫名稱',
'users' => '主站資料庫名稱',
'role' => '主站資料庫名稱',
);
3.將主站/管理/網站設定/Single sign-on controller
裡的Controller URL和Private key 貼到副站主站/管理/網站設定/Single sign-on client 裡的對應欄位
4.完成...功能正常
疑問: 不同主機不同網站同樣使用drupal彼此登入,請問該如何達成?
還有drupal6和drupal7的user欄位格式不同該如何達成彼此互登?
請各位前輩不吝指教!謝謝!
Re: 單一登入 Single sign-on
drupal.org 用這個 http://drupal.org/project/bakery
Re: 單一登入 Single sign-on
請問 Kay 有使用過 http://drupal.org/project/site_network 這個嗎?
不知道兩者比較起來如何,但是 site network 好舊了,之前沒找到 Bakery 這個哩。
看起來兩個的方式是不太一樣的,
Site Network 使用上我遇到的問題是,他能夠到 Master 去驗證帳號沒問題,但是 Slave 的帳號不會記錄到原有的 Email
因此 Slave 想要寄 Email 給他的使用者時,便出問題了,甚至影響 signup 的功能等等。
看了一下 Backery 的文件,沒有特別提到這點,
不過看看issue,也有不少反映 Master/Slave 帳號資料同步的問題。
Re: 單一登入 Single sign-on
沒有在用, 還有這個:
http://drupal.org/project/domain
Re: 單一登入 Single sign-on
謝謝大大的回應!
進行測試 http://drupal.org/project/bakery 這個模組的過程,遇到了幾個怪異的現象,不知如何解決!
首先說明我的測試環境與安裝設定:
1.下載並啟用該模組在master與slave網站(不同機器)
2.設定Master網站
Is this the master site?(打勾)
Master site:輸入完整網址(包括反斜線)>>>http://master.example.com.tw/
Slave sites:輸入完整網址(包括反斜線)>>>http://site1.example.com.tw/
Seconds of age before a cookie is old:使用預設3600
Private key for cookie validation:隨便輸入一組數字
Cookie domain:.example.com.tw
Supported profile fields :使用者名稱,電子郵件打勾
使者管理>權限>bakery 模組(admin 和 bypass 權限通通打勾)
3.設定Slaver網站
Is this the master site?(不打勾)
Master site:輸入完整網址(包括反斜線)>>>http://master.example.com.tw/
Slave sites:留空
Seconds of age before a cookie is old:使用預設3600
Private key for cookie validation:輸入與master站相同數字
Cookie domain:.example.com.tw
Supported profile fields :使用者名稱,電子郵件打勾
使者管理>權限>bakery 模組(admin 和 bypass 權限通通打勾)
錯誤現象:
1.網站設定>效能>已經把所有快取都取消了 ,仍然出現一排紅字如下:
以下已啟用的模組與積極快取模式不相容,將無法正確運作: bakery.
2.在master登入連去slave並無直接登入效果
3.在salve登入會直接跳去master登入,但路徑會跑成master.example.com.tw/bakery/login
且頁面會出現 <拒絕存取 您沒有瀏覽此頁面的權限。>
直接輸入master.example.com.tw網址則正常並且登入master
原本SSO的預想是master登入的使用者點slave網站連結會直接登入slave,反之亦然,但現在這個現象與預期效果差很大,
請問有沒有大大曾經碰過此類問題,可以幫小弟解惑一下,感激不盡! 謝謝!
請問如果我的機器只有ip
請問如果我的機器只有ip
Cookie domain的部份該怎麼設呢
Re: 單一登入 Single sign-on
如果只是要達到「master登入的使用者點slave網站連結會直接登入slave,反之亦然」的話,似乎不用另外安裝模組。小弟提供先前在學校的經驗給您參考。
Drupal 版本: 6.x
$db_prefix = array(
'default' => '',
// 以下為共用的資料表,我們是放在另外一顆叫 sub_shared 的資料庫中
'users' => 'sub_shared.',
'users_roles' => 'sub_shared.',
'sessions' => 'sub_shared.',
'role' => 'sub_shared.',
'authmap' => 'sub_shared.',
'profile_fields' => 'sub_shared.',
'profile_values' => 'sub_shared.'
);
依您的例子: master.example.com.tw 與 site1.example.com.tw 的話,
$cookie_domain 應設為 'example.com.tw'
$cookie_domain = 'example.com.tw'; // 最前方不需要加 .
所有要共用帳號的網站要將 $cookie_domain 設成一樣。
以上,供您參考。
Re: 單一登入 Single sign-on
謝謝idramer前輩的回答^^
您提供的方法小弟曾經嘗試過的確可達成「master登入的使用者點slave網站連結會直接登入slave,反之亦然」
但是小弟想要嚐試達成的功能為master網站裝在A server這個機器 , slaver網站裝在B server(另ㄧ台機器) 仍可彼此互登
嚐試了很久,仍然無法達成,所以才想借助別的方式達成,不知道是否有前輩曾經嘗試過類似的功能可以指導一下後進,感激不盡!
小弟卡在此一想法已經接近半年,類似像saimplesamlphp之類的方法也卡在各種奇奇怪怪的問題,對與使用drupal開發不同機器間的單一登入,已經想不到更好的嘗試方向了,還望有經驗的大大不吝指教一下小弟,小弟給您鞠躬了>_<""
Re: 單一登入 Single sign-on
只要您的 master 的資料庫主機與 slave 的資料庫主機是同一部(為了要共用某些資料表),而且這兩臺機器在同一個網域之下,上面說的設定方式應該就可以了。
但若是資料庫主機不是同一部,就不曉得該如何設定來共用資料表來達到你的要求了。 T_T
Re: 單一登入 Single sign-on
的確是如此,這領域似乎涉略的人比較少,是冷門的技術嗎?
小弟覺得跨機器的需求還蠻常出現的,但是卻不知如何克服,困擾阿>_<
drupal有許多好用的模組,所以彈性和擴充性很強大,但是照著手冊做不見得能正常運作,這是比較惱人的地方。
感謝idramer前輩的熱心回答,小弟繼續想辦法,如有心得再PO文分享,也希望有此開發經驗的前輩能分享心得,謝謝!
Re: 單一登入 Single sign-on
會不會需要利用LDAP Server來做管控,所有的主機都向他抓帳號資料!!
上次嘉義小聚,邱老師有提過這東西。
這樣做的好處是若你還須整合web-mail,FTP...等非Drupal的服務,統一使用者資訊。
只是不知道有沒有哪個大大有做成功過...
最好是LDAP又回頭來其中一個MySQL資料庫撈使用者資訊。
今天才看到這串討論。
今天才看到這串討論。
Single sing-on 我們在東亞區幾個國家的網站是用這個模組搭配 phpCAS 使用
https://www.drupal.org/project/cas
有需要用到的人可以參考看看