Устранение неполадок системы единого входа

В этой статье объясняется, как исправить возможные ошибки при интеграции и использовании системы единого входа на базе SAML в G Suite, если Google является поставщиком услуг.

Конфигурация и активация

"Конфигурация этого домена не позволяет использовать единый набор реквизитов."

Эта ошибка обычно указывает на то, что вы пытаетесь использовать систему единого входа в бесплатной версии G Suite, в которой такая услуга не предоставляется. Если у вас поддерживаемый пакет G Suite или G Suite for Education либо пакет от интернет-провайдера, проверьте конфигурацию поставщика идентификационной информации и убедитесь, что правильно указали доменное имя G Suite.

"Этот аккаунт недоступен, так как домен настроен неправильно. Повторите попытку позже."

Это сообщение указывает на неправильные параметры Системы единого входа в панели управления Google Apps. Чтобы исправить ошибку, выполните следующие действия:

  1. В консоли администратора Google откройте раздел Безопасность > Установить единый вход (SSO) и установите флажок Настроить систему единого входа со сторонним поставщиком идентификационной информации.
  2. Укажите URL для страниц входа, выхода и изменения пароля в соответствующих полях.
  3. В поле Проверочный сертификат выберите и загрузите файл действительного проверочного сертификата.
  4. Нажмите Сохранить изменения, подождите пару минут, пока выбранные настройки будут применены в системе, и попробуйте войти ещё раз.

Анализ ответов SAML

"Отсутствует обязательный параметр ответа SAMLResponse."

Эта сообщение указывает на то, что поставщик услуг аутентификации не предоставил Google соответствующий ответ SAML. В большинстве случаев это связано с ошибками в конфигурации у поставщика.

  • Проверьте журналы поставщика и убедитесь, что ничего не препятствует правильной отправке ответов SAML.
  • Убедитесь, что поставщик идентификационной информации не шифрует ответы SAML при их отправке в G Suite (система принимает эти данные только в незашифрованном виде). В частности, обратите внимание, что служба Active Directory Federation Services 2.0 корпорации Microsoft по умолчанию отправляет зашифрованные ответы SAML.
"Отсутствует обязательный параметр ответа RelayState."

В спецификации для SAML 2.0 указано, что поставщик идентификационной информации получает значение параметра URL RelayState у поставщика ресурса (в данном случае – G Suite) и отправляет его обратно. G Suite предоставляет это значение в запросе SAML, и оно может изменяться при каждом входе. Для успешного завершения аутентификации в ответе SAML должно содержаться точное значение параметра RelayState. Согласно спецификации стандарта SAML, поставщик услуг аутентификации не должен изменять значение RelayState в процессе входа.

  • Чтобы установить причину проблемы, зафиксируйте заголовки HTTP при попытке входа. Извлеките значение RelayState из HTTP-заголовков запроса и ответа SAML, а затем убедитесь, что эти значения совпадают.
  • Большинство поставщиков идентификационной информации для коммерческих и бесплатных систем единого входа по умолчанию передают точное значение RelayState. Чтобы добиться максимального уровня безопасности и надежности, мы рекомендуем использовать уже существующие решения и не поддерживаем системы единого входа, разработанные пользователями.

Содержание ответов SAML

"Невозможно получить доступ к службе, так как запрос на вход содержал недопустимые данные ([destination|audience|recipient]). Войдите и повторите попытку."

Эта ошибка указывает на то, что элементы destination, audience или recipient в выражении SAML содержат недопустимые данные или значения для них не указаны. Все эти элементы должны быть включены в выражение SAML. Описание и примеры каждого элемента приводятся в таблице.

Элемент <Audience>
Описание Этот URI определяет целевую аудиторию. Требуется значение URI ACS. Оно не может быть пустым.
Требуемое значение https://www.google.com/a/<vash-domen.ru>/acs
Пример

<saml:Conditions
NotBefore="2014-11-05T17:31:37Z"

NotOnOrAfter="2014-11-05T17:37:07Z"
<saml:AudienceRestriction>
<saml:Audience>https://www.google.com/a/vash-domen.ru/acs<saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>

 

Элемент Атрибут Destination типа <StatusResponseType>
Описание URI, по которому отправляется выражение SAML. Это необязательный атрибут. Если он заявлен, то должен содержать значение URI ACS.
Требуемое значение https://www.google.com/a/<vash-domen.ru>/acs
Пример

<saml:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"

xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="7840062d379d82598d87ca04c8622f436bb03aa1c7"
Version="2.0"
IssueInstant="2014-11-05T17:32:07Z"

Destination+"https://www.google.com/a/vash-domen.ru/acs
       InResponseTo="midihfjkfkpcmbmfhhoehbokhbkeapbbinldpeen">

 

Элемент Атрибут Recipient типа <SubjectConfirmationData>
 
Описание

Атрибут Recipient указывает на объект, который должен получить  
данные из поля "Тема".

Это обязательный атрибут, который должен содержать URI ACS.

Примечание. Вводится с учетом регистра.

 

Требуемое

значение

https://www.google.com/a/<vash-domen.ru>/acs
 
Пример

<saml:Subject>

<saml:NameID SPNameQualifier="google.com/a/vash-domen.ru"

Format="urn:oasis:names:tc:SAML:2.0:nameid-format:email">polzovatel@vash-domen.ru</saml:NameID>

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">

<saml:SubjectConfirmationData NotOnOrAfter="2014-11-05T17:37:07Z"

Recipient="https://www.google.com/a/vash-domen.ru/acs"

InResponseTo="midihfjkfkpcmbmfhjoehbokhbkeapbbinldpeen"

</saml:SubjectConfirmation> 

Подробное описание всех обязательных элементов приведено в этой статье.

"К этой службе невозможно получить доступ, поскольку ваш запрос на вход не содержит информации о получателе. Войдите и повторите попытку."

Эта ошибка обычно указывает на то, что в ответе SAML поставщика идентификационной информации отсутствует распознаваемое значение Recipient или оно указано неправильно. Значение Recipient – важный элемент ответов SAML.

  1. Чтобы установить причину проблемы, зафиксируйте заголовки HTTP при попытке входа.
  2. Извлеките запрос и ответ SAML из заголовков HTTP.
  3. Убедитесь, что в ответе SAML есть значение Recipient, которое совпадает с аналогичным значением в запросе SAML.

Примечание. При возникновении этой ошибки также может появляться сообщение "К этой службе невозможно получить доступ, поскольку ваш запрос на вход содержит неверную информацию о получателе. Войдите и повторите попытку."

"Этот аккаунт недоступен, так как не удалось подтвердить ваши реквизиты."

Эта ошибка указывает на проблему с сертификатами, используемыми для аутентификации. В данном случае это означает, что закрытый ключ, используемый для подписи ответа SAML, не соответствует сертификату открытого ключа в системе G Suite.

Эта ошибка также может означать, что в ответе SAML не содержится действительное имя пользователя аккаунта Google. В системе G Suite из ответов SAML выделяется XML-элемент NameID, который должен содержать имя или полный адрес электронной почты пользователя G Suite.

  • В панели управления G Suite нажмите Дополнительные инструменты > Установить единый вход, чтобы открыть страницу настройки системы единого входа. Убедитесь, что используете действительный сертификат, и повторно загрузите его в форму настройки единого входа.
  • Если вы указываете полный адрес электронной почты в элементе NameID (такой формат обязателен для системы единого входа в многодоменной среде G Suite), убедитесь, что значение атрибута Format элемента NameID предписывает использовать полный адрес. Пример: Format="urn:oasis:names:tc:SAML:2.0:nameid-format:email".
  • Элемент NameID должен содержать действительное имя пользователя или адрес электронной почты. Чтобы проверить NameID, извлеките ответ SAML, который вы отправляете в G Suite, и обратите внимание на содержащееся в нем значение.
  • Если ваш поставщик услуг аутентификации шифрует подтверждения SAML, отключите шифрование и убедитесь, что подтверждение отправляется в незашифрованном формате, который поддерживается системой G Suite.
  • Убедитесь, что нестандартные символы ASCII не включены в ответ SAML. Эта ошибка обычно возникает в атрибутах DisplayName, GivenName и Surname в AttributeStatement.

Например:
<Attribute Name="http://schemas.microsoft.com/identity/claims/displayname">
<AttributeValue>Попова, Мария</AttributeValue>
</Attribute>
<Attribute  
Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname">
<AttributeValue>Мария</AttributeValue>
</Attribute>
<Attribute  
Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname">
<AttributeValue>Попова</AttributeValue>
</Attribute>

Эти атрибуты не поддерживаются, поэтому их можно опустить. Если это невозможно,  
они должны содержать только стандартные символы ASCII. 
 

"Эта служба недоступна, так как срок действия ваших реквизитов истек. Войдите и повторите попытку."

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

  • Проверьте часы на сервере поставщика услуг аутентификации. Из-за ошибок в их настройке ответ SAML может содержать неверные временные метки.
  • Синхронизируйте часы на сервере поставщика с надежным сервером точного времени в Интернете. Если подобная ошибка неожиданно происходит в уже работающей системе, она обычно связана со сбоем синхронизации, в результате которого время на сервере становится неточным. Быстро решить эту проблему поможет повторная синхронизация с сервером точного времени (желательно – более надежным).
  • Кроме того, эта ошибка может возникнуть при повторной отправке ответа SAML, использовавшегося для предыдущей попытки входа. Для отладки проверьте запросы и ответы SAML (их можно найти в журналах заголовков HTTP, созданных во время последнего входа).
"К этой службе невозможно получить доступ, поскольку ваши реквизиты для входа ещё не действительны. Войдите и повторите попытку."

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

  • Проверьте часы на сервере поставщика услуг аутентификации. Из-за ошибок в их настройке ответ SAML может содержать неверные временные метки.
  • Синхронизируйте часы на сервере поставщика с надежным сервером точного времени в Интернете. Если подобная ошибка неожиданно происходит в уже работающей системе, она обычно связана со сбоем синхронизации, в результате которого время на сервере становится неточным. Быстро решить эту проблему поможет повторная синхронизация с сервером точного времени (желательно – более надежным).
Эта информация оказалась полезной?
Как можно улучшить эту статью?