問題描述
我有我寫的應用程式,使用 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。