问题描述

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