问题描述
我有我写的应用程序,使用 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。