我们已经将 SimpleSaml 与 Drupal 7 设置为 IP,以允许用户使用他们的 Drupal 凭据登录到第 3 方服务。一切似乎都在工作,直到用户在 Drupal 登录页面上输入他们的凭据,但是,一旦他们登录,他们就会被重定向到 SimpleSaml“演示示例”页面。(module.php/core/authenticate.php)
他们的所有详细信息都是正确的,并且经过了明确的身份验证,但从未发生过重定向回第 3 方站点的情况。我们已经检查,第 3 方正在发送正确的(编码的)数据,包括 AssertionConsumerServiceURL。
问题是要弄清楚如何让 Drupal 重定向回第 3 方 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'),
),
),
);
如果需要,我很乐意发布更多信息。