在SSO使用Auth.0规则有条件地设置WP用户角色

时间:2015-08-23 22:36:00

标签: wordpress authentication oauth single-sign-on auth0

目前正在构建一个WordPress Intranet站点,该站点使用Auth.0 SSO对公司的Azure AD进行身份验证。 SSO功能正常,但我正在尝试使用Auth.0的“规则”更精细地进行访问控制。理想的结果是一个规则,该规则根据来自AD的作业标题,使用用户角色指定(更新)用户的WP配置文件。下面的代码已经从Auth.0的规则模板之一修改,并运行干净。但是,它不起作用 - 我不确定我需要什么特定的参数/函数来实际更新WordPress中的角色。我会站在前面,并承认我远没有精通JS。有什么想法吗?

function (user, context, callback) {
  if (user.job_title === 'IT/Marketing Coordinator') {
    user.vip = true;
  }
  callback(null, user, context);
  }

在上面的例子中,它成功地将“user.vip”设置为“true”(除了规则执行没有错误之外,它确实没有多少证据。

1 个答案:

答案 0 :(得分:1)

正如你所说的那样,这个规则很好,并且会添加这个属性。

问题是你需要从wordpress端做一些工作才能使它工作(用户有一个vip标志对WordPress没有任何意义)。

您可以做的是挂钩每次用户登录时触发的auth0_user_login操作,并根据用户配置文件设置/更改用户角色。

这就是你对行动的勾解:

add_action( 'auth0_user_login', 'auth0UserLoginAction', 0,5 ); 

function auth0UserLoginAction($user_id, $user_profile, $is_new, $id_token, $access_token) { 
... 
} 

我认为您会发现此WP文档对更新用户角色很有用:https://codex.wordpress.org/Function_Reference/wp_update_user