2010-06-29 5 views
0

Наша компания имеет веб-приложение, которое используется только нашими сотрудниками. У нас также есть Профессиональный пакет Служб Google. Мы хотели бы сделать это, чтобы наши сотрудники могли войти в наше частное веб-приложение, используя уже имеющуюся учетную запись Google Apps.Google Apps Premium Edition: какой механизм аутентификации использовать?

Требования: Мы хотим отобразить нашу форму входа в систему. Мы не хотим передавать электронную почту/пароль в виде обычного текста через Интернет.

Какой механизм аутентификации мы должны использовать для достижения этого?

Примечание: наше приложение написано на PHP с использованием Zend Framework (если это имеет значение).

ответ

0

Я бы изучил некоторую комбинацию OpenID и ваших пользователей домена (т. Е. Только тех, кто в домене.com может войти в систему).

Google API

Они также имеют библиотеки для PHP и других языков, которые вы можете использовать, чтобы это произошло.

EDIT:

Some more info

0

Когда дело доходит до интеграции Служб Google и внутренне используемый частную систему, мы просто имеем два варианта.

  1. Используйте Google как центр аутентификации. Измените частную систему для аутентификации на сервере Google. Мы могли бы использовать OpenID или AuthSub. Для получения дополнительной информации проверьте http://code.google.com/apis/accounts/docs/OpenID.html и http://code.google.com/apis/accounts/docs/AuthSub.html.
  2. Используйте частную систему как центр аутентификации. В этом случае мы должны реализовать протокол SAML на частном сервере и настроить настройки единого входа Google Apps. Проверьте http://code.google.com/googleapps/domain/sso/saml_reference_implementation.html для получения дополнительной информации.

С помощью первого метода проще выполнить SSO, так как там уже есть библиотеки OpenID. Но, как вы описали в требованиях, вы хотите использовать свою собственную форму для входа. Поэтому, я думаю, вам нужно пойти со вторым методом.

BTW, если вашей частной системе необходимо получить или установить информацию из Google, вы можете использовать OAuth для авторизации. См. http://code.google.com/apis/accounts/docs/OAuth.html для получения дополнительной информации.

0

Используйте API ClientLogin, он точно выполняет то, что вам нужно: позволяет вам проверять имя пользователя и пароль. (Ссылка идет к API Предоставления DOCO, но это не имеет значения здесь)

Pro-х:

  • вы получите использовать вам собственную форму Войти

Минусы:

  • вам не получите SSO с Google Apps, т. е.пользователям, уже находящимся в приложениях, будет предложено снова войти в систему (вы не указали это как требование, но это кажется разумным делом)
  • Google не понравится вам (они пытаются обескуражить ProgrammaticLogin.
  • вы получите случайные тесты CAPTCHA, вам нужно, чтобы показать пользователям.

OpenID специально мешает вам отображать свою собственную страницу входа в систему, так что если это жесткие требования, Programmatic логин действительно ваш единственный выбор.

Переход на маршрут SSO позволит вам делать что угодно, но может быть немного излишним, чтобы взять на себя аутентификацию иона для всего домена, чтобы сделать одно приложение аутентифицированным лучше? Если вы действительно хотите спуститься по этому маршруту, проверьте SimpleSAMLphp.