Drupal 7 を IP として使用して SimpleSaml をセットアップし、ユーザーが Drupal 資格情報を使用してサードパーティ サービスにログインできるようにしました。ユーザーが Drupal ログイン ページで資格情報を入力するところまではすべてが機能しているように見えますが、ログインすると、SimpleSaml の「Demo Example」ページにリダイレクトされます。(module.php/core/authenticate.php)
詳細はすべて正しく、明確に認証されていますが、サードパーティのサイトへのリダイレクトは行われません。サードパーティが AssertionConsumerServiceURL を含む正しい (エンコードされた) データを送信していることを確認しました。
問題は、Drupal をサードパーティの URL にリダイレクトする方法を理解することです。
使用したライブラリ:
simpleSAMLphp version 1.11.0
drupalauth for SimpleSAMLphp 1.7+ and Drupal 7.x
drupalauth4ssp (which comes with the drupalauth module)
構成:
SimpleSaml 2
store.type: sql
auth as: drupal-userpass
Apache is configured correctly
We are on Centos
We have SSL offload implemented on our test environment which seems to be working ok
(Load balancer 443 offloads to Apache 80)
authsources.php の内容:
$config = array(
// This is a authentication source which handles admin authentication.
'admin' => array(
// The default is to use core:AdminPassword, but it can be replaced with
// any authentication source.
'core:AdminPassword',
),
'drupal-userpass' => array(
'drupalauth:External',
// The filesystem path of the Drupal directory.
'drupalroot' => '/var/www/html/',
// Whether to turn on debug
'debug' => TRUE,
// the URL of the Drupal logout page
'drupal_logout_url' => 'https://[drupal_domain]/user/logout',
// the URL of the Drupal login page
'drupal_login_url' => 'https://[drupal_domain]/user',
// Which attributes should be retrieved from the Drupal site.
'attributes' => array(
array('drupaluservar' => 'uid', 'callit' => 'uid'),
array('drupaluservar' => 'name', 'callit' => 'cn'),
array('drupaluservar' => 'mail', 'callit' => 'mail'),
array('drupaluservar' => 'field_user_firstname', 'callit' => 'givenName'),
array('drupaluservar' => 'field_user_lastname', 'callit' => 'sn'),
array('drupaluservar' => 'roles','callit' => 'roles'),
),
),
);
必要に応じて、さらに情報を投稿していただければ幸いです。