0

現在、会社の Azure AD に対して Auth.0 SSO を使用してユーザーを認証する WordPress イントラネット サイトを構築しています。SSO は適切に機能しますが、Auth.0 の「ルール」を使用してアクセス制御をより細かくしようとしています。理想的な結果は、AD からの役職に基づくユーザー ロールでユーザーの WP プロファイルを指定 (更新) するルールです。以下のコードは、Auth.0 のルール テンプレートの 1 つを変更したもので、問題なく実行されます。ただし、機能しません-WordPressでロールを実際に更新するために必要な特定の引数/関数がわかりません。私は率直に言って、私が JS に精通しているわけではないことを認めます。何かご意見は?

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

上記の例では、「user.vip」を「true」に正常に設定しています (これは、ルールがエラーなしで実行されることを除けば、あまり証明されていません。

4

1 に答える 1

1

あなたが言ったように、このルールは問題なく、この属性を追加します。

問題は、それを機能させるためにワードプレス側から何かをする必要があるということです (ユーザーが 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

于 2015-08-25T18:19:34.763 に答える