0

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'),
           ),
),

);

必要に応じて、さらに情報を投稿していただければ幸いです。

4

2 に答える 2

0

ここで間違っている可能性のあるヒントがたくさんありますhttp://code.google.com/p/drupalauth/source/browse/trunk/drupalauth/lib/Auth/Source/External.php

チェックする価値のあるいくつかのこと:

  • 「config/config.php の store.type を phpsession 以外に設定する必要があります。そうしないと、このモジュールは機能しません」17 ~ 19 行目から引用
  • 335行目でリダイレクトURLが生成されているようです
  • 335行とファイルをチェックして346、そこにある値を確認します( XdebugExternal.phpなどのデバッグツールを使用できます
  • 全体的なデバッグでは、コードは直面している問題をより明確にします
于 2013-10-11T12:54:01.437 に答える