web-dev-qa-db-ja.com

異なるDrupalバージョン間のシングルサインオン

このモジュールを異なるDrupalバージョンで動作させることは可能ですか?
Drupal 6)にはいくつかの大きなプロジェクトがあり、移行計画から始めたいと思います。サイトの一部を移行できないと、タスクは小さな移行とテストを行うことができます。

ベーカリーシングルサインオンシステム があることを確認しましたが、サブドメインで異なるDrupalバージョンを使用している場合に使用できるかどうかはわかりません。

更新:ベーカリーはその魅力のように機能します。異なるDrupalバージョンのサイト、同じドメインの異なるフィレット、そしてもちろん異なるサブドメインにインストールできます。

2

Drupal-6サイトを使用して、hook_login_validate()をオーバーライドし、独自の認証メカニズムを記述します。成功に基づいてTRUEまたはFALSEを返す関数はすべて機能するため、思ったより簡単です。データベースに直接アクセスするか、JSON Webサービスを介してdrupal-7サーバーに接続できます。 I JSONを介した認証の実装方法を説明 スタックオーバーフロー。

function mymodule_login_validate($form, &$form_state) {
   $username = $form_state['values']['name'];

   // do if condition to see if your authentication is required.  
   // e.g. you might want to keep the drupal administration users.
   if (_mymodule_use_webservice_login($username)) {
     // We are logging in using service.
     if (_mymodule_validate_password($username, $form_state['values']['pass']) {
       user_external_login_register($username, 'mymodule');
       user_authenticate_finalize($form_state['values'];
    } // else drop through to the end and return nothing - Drupal will handle the rejection for us
   }
} else {
    // Username is not an member number, so use standard Drupal authentication function
    user_login_authenticate_validate($form, &$form_state);
}

_mymodule_validate_password()は、認証が行われる場所であり、実装する必要のある他の唯一の関数です。 JSON Webサービスの呼び出しについては、stackoverflowサイトを参照してください。 SSLを介してパスワードを渡すことはあまり良くないので、SSLを使用してみてください。ただし、メインサイトはとにかくSSLではない場合があります。

Webサービスの実装は、関数がTRUEまたはFALSEを返す-drupal_json_outputです。関数コールバックを使用して、メニューを設定する必要があります。関数コールバックは ser_authenticate()。 を呼び出します

また、SSOモジュールの1つを試すこともできます。 http://groups.drupal.org/node/182004 。通常、独自のセキュリティコードを実装しないことをお勧めします。これにより、コードが可能な限り試行されます。

2
Interlated