Система единого входа позволяет сотрудникам организации получать доступ к нескольким приложениям, не указывая каждый раз имя пользователя и пароль. SAML – это стандарт XML, позволяющий защищенным веб-доменам обмениваться информацией для аутентификации и авторизации пользователей.
Роли поставщиков услуг и поставщиков идентификационной информации
Google предлагает систему единого входа на базе SAML, с помощью которой компании-партнеры могут выполнять авторизацию и аутентификацию зарегистрированных в ней пользователей при попытке доступа к защищенному контенту. Google выступает в качестве поставщика услуг и предоставляет доступ к сервисам, например к Google Календарю и Gmail. Партнеры Google при этом являются поставщиками идентификационной информации и управляют именами пользователей, паролями и другими данными для идентификации, аутентификации и авторизации пользователей в сервисах Google.
Многие поставщики идентификационной информации – как коммерческие, так и использующие ПО с открытым исходным кодом – могут помочь вам реализовать систему единого входа Google.
При использовании клиентов для компьютера все равно нужно выполнять вход
Обратите внимание, что система единого входа работает только для веб-приложений. Вы можете предоставить пользователям доступ к сервисам Google через клиент на компьютере. Например, чтобы они могли работать с почтой Gmail в Outlook по протоколу POP, создайте пароли аккаунтов и синхронизируйте их с внутренней базой данных пользователей при помощи Directory API из Admin SDK. Рекомендуем ознакомиться с информацией о том, как пользователи могут проходить аутентификацию с помощью URL входа панели управления администратора.
Принцип работы партнерской системы единого входа на базе SAML
На рисунке 1 представлен процесс входа в Gmail с помощью партнерской системы единого входа на базе SAML. Под рисунком вы найдете нумерованный список с подробным описанием каждого этапа.
Важно! Перед началом процесса партнер должен предоставить Google ссылку на свою систему единого входа, а также открытый ключ, с помощью которого Google сможет проверять ответы SAML.
Рисунок 1. Процесс входа в приложение Google с помощью партнерской системы единого входа на базе SAML.
На рисунке представлены следующие этапы входа:
- Пользователь пытается перейти к приложению Google, например Gmail, Календарю и т. д.
- Google генерирует запрос аутентификации по стандарту SAML. Он шифруется и встраивается в URL партнерской системы единого входа. Вместе с ним встраивается параметр RelayState, содержащий зашифрованный URL приложения Google, к которому пытается перейти пользователь. Этот параметр является скрытым идентификатором, который возвращается в браузер без изменений и без проверок.
- Google отправляет браузеру URL переадресации, содержащий зашифрованный SAML-запрос, который будет передан партнерской SSO.
- Браузер перенаправляет пользователя по URL системы единого входа.
- Партнер расшифровывает SAML-запрос и находит ссылку на сервис Assertion Consumer Service компании Google (ACS) и целевой URL (параметр RelayState).
- Затем партнер проводит аутентификацию пользователя, запрашивая пароль или выполняя поиск файлов cookie сеанса.
- Партнер генерирует SAML-ответ, содержащий имя пользователя, прошедшего аутентификацию. В соответствии со спецификацией SAML 2.0, ответ подписывается открытым и закрытым ключом DSA или RSA, принадлежащим партнеру.
- Партнер шифрует SAML-ответ и параметр RelayState, а затем отправляет данные обратно в браузер. Партнер предоставляет механизм, с помощью которого браузер передает данные в ACS Google. Это может быть как форма с SAML-ответом и целевым URL, которую пользователь отправляет в Google, нажимая кнопку, так и код JavaScript, который отправляет форму в Google.
- Браузер отправляет ответ по URL ACS. ACS проверяет SAML-ответ с помощью открытого ключа партнера. Если проверка проходит успешно, ACS переадресует пользователя на целевой URL.
- Пользователь выполнил вход в приложение Google.