web-dev-qa-db-ja.com

Drupal 7で単一のプロバイダーからopenidログインを強制する方法?

したがって、現在のDrupal 7のOpenIDモジュールでは、メインページの[OpenID]をクリックする必要があります。次に、ユーザーがリンクするOpenIDプロバイダーのURLを入力します。私が使用したいプロバイダー(大学)とまったく同じように、ユーザーがホームページまたは私のdrupalサイトの最初の部分にアクセスするとすぐに、ページが表示される前に、特定のプロバイダーのURLで認証されますか?

その理由は、大学のネットワーク内の人々がサイトにアクセスして、「openid」ボタンをクリックするという追加の手順を実行しなくても、自分が誰であるかを自動的に確認できるようにするためです。シングルサインオンソリューションとよく似ています。

6
Tinera

OpenID認証を開始するページ「/ login」を生成するには、カスタムモジュールを作成する必要があります。

次のコードでモジュールを作成します。

/**
 * Implements hook_menu().
 */
function mymodule_menu() {

  $items['login'] = array(
    'title' => 'OpenID Login',
    'page callback' => 'openid_login',
    'access callback' => 'user_is_anonymous',
    'type' => MENU_CALLBACK,
  );

  return $items;
}

/*
 * Menu callback; start openid authenticate
 */
function mymodule_login() {

  $return_to = url('openid/authenticate', array('absolute' => TRUE, 'query' => array('destination' => 'user')));

  openid_begin("https://www.myopenid.com/", $return_to, array());
}

この例は、myopenid.comプロバイダーで動作します。ログインするには、ウェブサイトの「/ login」にアクセスしてください。

2
tekilatexee