問題描述
我有我寫的應用程序,使用 SAML,然後一個用户數據庫來定義他們的權限。並且基本上一旦用户通過我們的 SSO 登錄,他們可以使用具有定義的 perms 的應用程序。
我想為 WP 做同樣的事情。我從哪説起呢?我希望 WP 在登錄之前識別他們的會話用户名,然後創建 wordpress cookie 。我看到一個根 cookie 插件,將用户信息傳遞給其他 wp 網站,但如何獲取會話用户名開始?
我希望用户來到 WP 網站,看到他們已經用他們的用户名登錄了,但我也開放了其他方式。
現在給我的 SAML 身份驗證是:
-
應用程序網址:重定向到 SSO 登錄
-
應用程序鍵:哈希加密
-
UID
-
名字
-
姓
-
電子郵件
-
時間 (POST 時間用於驗證)
注意:我剛剛嘗試使用 WPL 的 SAML2 插件。首先它是一個 beta 插件,非常混亂。第二,我不斷找到不能找到 IDP 信息的致命錯誤。
真的只是想參加會議,我有一個人在使用它。
最佳解決方案
如果您將使用會話,那麼首先在您的插件主題中初始化它。
add_action( 'init', 'my_start_session' );
function my_start_session() {
if ( session_id() )
return;
@session_cache_limiter('private, must-revalidate'); //private_no_expire
@session_cache_expire(0);
@session_start();
}
替代使用 Eric Mann 的 Library :WP Session Manager,也是他的 tutorial 。
次佳解決方案
我有一個非常簡單的腳本,鏈接 https://wordpress.stackexchange.com/questions/154802/what-do-i-need-to-do-to-fully-integrate-a-custom-session-login-into-wp 。
基本上我假設你的 SSO 是安全的,你有數據庫中的用户,除了身份驗證,你不需要保持會話生效。從我的觀點來看,我只想將用户傳遞給 WP,讓 WP 用户系統執行其他操作。希望這有助於其他人進行會話登錄。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。