CAS でログインするように Drupal を構成します。
CAS にログインした後、drupal Web サイトの最初のページにアクセスしたときに、リンクをクリックせずにログインしたい (シングル サインオン (CAS) 経由でログイン)
そのためのオプションは Drupal CAS 設定ですか?
このライブラリを使用してください: https://wiki.jasig.org/display/CASC/phpCAS
Drupal サイトの最初のページで、クライアントを作成し、認証を強制します。
phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context);
phpCAS::setNoCasServerValidation();
phpCAS::forceAuthentication();
最後の呼び出しは、ユーザーを CAS にリダイレクトします。彼がログインしている場合、ユーザーは Drupal サイトの最初のページに戻され、ログインされます。これは瞬時です。ユーザーは、自分が CAS ページにアクセスしたことさえわかりません。
HTH
私は CAS に精通しておらず、ユーザーがログインする必要があるかどうかを判断するために使用できる変数を知りませんが、hook_init() と user_external_login_register( のカスタム モジュールでこれを達成できるはずです。 ) http://api.drupal.org/api/drupal/modules--user--user.module/function/user_external_login_register/7
疑似コード:
<?php
/**
* Implements hook_init().
*/
function mymodule_init() {
// only check if user is not logged in
if (user_is_anonymous()) {
// add your condition to test if user is valid
if ( <condition to check if user should be logged in> ) {
// programmatically login user by name
user_external_login_register('<username>', 'mymodule');
}
}
}
そのためのオプションがあります。
CAS モジュールの設定ページ (/admin/config/people/cas) に移動します。
フィールドセットのリダイレクトの下で、次のチェックボックスをオンにします。
ユーザーがすでにログインしているかどうかを CAS サーバーに確認しますか?