Как войти в Drupal, используя имя пользователя и пароль Google Apps?


8

Мы ищем способ, с помощью которого пользователи могут входить на сайт Drupal, используя свое имя пользователя и пароль учетной записи Google Apps. Мы используем «Службы Google для учебных заведений» и не хотим, чтобы для нашего сайта Drupal использовалось отдельное имя пользователя и пароль.

Мы также хотели бы ограничить доступ для определенных пользователей, имеющих аккаунты Служб Google. Что-то вроде фильтрации или предварительно утвержденного списка аккаунтов. Кроме того, учетная запись пользователей должна создаваться автоматически при первом входе в систему, и им не нужно заполнять какую-либо дополнительную информацию об учетной записи в Drupal, ее следует извлекать непосредственно из учетной записи Google Apps.

Есть ли какой-нибудь модуль для Drupal 7, который обеспечивает эту функциональность? Я уже попробовал подходы OAuth, Loginza.ru, OpenID и т. Д., И это не то, что мы ищем.

Если такого модуля нет, как мне приступить к написанию специального модуля для него?

Ответы:


4

Чтобы интегрировать ваш сайт Drupal 7 с Google Apps, вам необходимо:

  1. Включите модуль OpenID на вашем сайте drupal
  2. Включите службу федеративного входа в систему с помощью панели управления Служб Google по адресу http://www.google.com/a/cpanel/yourdomain.com/SetupIdp.
  3. Добавьте заголовок X-XRDS-Location на yourdomain.com/openid. Например, если yourdomain.com является сайтом PHP, загрузите его как /openid/index.php

    <?php
    header('X-XRDS-Location: https://www.google.com/accounts/o8/site-xrds?ns=2&hd=yourdomain.com');
    ?>
    
  4. Перейдите на страницу входа на свой сайт drupal. Вы увидите новую ссылку «Войти с открытым идентификатором». Нажмите на это. Введите: https://google.com/accounts/o8/site-xrds?hd=yourdomain.com и нажмите кнопку Отправить.
  5. Когда вы сделаете это в первый раз, вас спросят, хотите ли вы разрешить аутентификацию вашего сайта. Нажмите да.
  6. Впоследствии, если вы попытаетесь войти по указанному выше URL-адресу и войдете в Службы Google, вы войдете в систему напрямую.

3

Вам не нужно писать собственный модуль с нуля, для начала достаточно кода.


1
К сожалению, прямая поддержка пошла в Drupal 7 ..., а затем была удалена: drupal.org/node/727650 - там вы можете найти полезную работу.
rfay

2

Я играл с модулем Janrain Engage (ранее RPX), используя сервис janrain.com. Цены довольно низкие, если у вас нет обширной базы пользователей. Для Google это даст вам адрес электронной почты и полное имя пользователя (https://rpxnow.com/docs/providers)


1

Для тех, у кого есть простой вариант использования (просто позвольте пользователям войти через Google), посмотрите модуль Google Identity Toolkit (GITkit) :

Этот модуль позволяет пользователям входить / регистрироваться на веб-сайте Drupal, используя свои учетные данные для входа в Google через API Identity Toolkit Google, доступный по адресу http://code.google.com/apis/identitytoolkit.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.