Skip to main content

Устранение неполадок с проверкой подлинности SAML

Если вы используете единый вход SAML и пользователи не могут пройти проверку подлинности для доступа к GitHub, можно устранить проблему.

Сведения о проблемах с проверкой подлинности SAML

GitHub Enterprise Server регистрирует сообщения об ошибках для неудачной проверки подлинности SAML в журналах системного журнала для github-unicorn контейнера. Вы можете просмотреть ответы в этом журнале и настроить более подробное ведение журнала.

Дополнительные сведения о требованиях к ответу SAML см. в разделе Справочник по конфигурации SAML.

Настройка отладки SAML

Вы можете настроить GitHub Enterprise Server для записи подробных журналов отладки для каждой попытки проверки подлинности SAML. Возможно, вы сможете устранить неполадки неудачных попыток проверки подлинности с помощью этих дополнительных выходных данных.

Предупреждение

  • Включайте отладку SAML только на время и отключайте ее сразу после завершения устранения неполадок. Если вы не включили отладку, размер журналов увеличивается гораздо быстрее, чем обычно, что может негативно повлиять на производительность GitHub Enterprise Server.
  • Проверьте новые параметры проверки подлинности для ваш экземпляр GitHub Enterprise Server в промежуточной среде перед применением параметров в рабочей среде. Дополнительные сведения см. в разделе Настройка промежуточного экземпляра.
  1. В правом верхнем углу GitHub Enterprise Serverщелкните рисунок профиля, а затем выберите параметры Enterprise.

  2. В левой части страницы на боковой панели учетной записи предприятия щелкните Policies.

  3. В разделе Policies, нажмите кнопку "Параметры".

  4. В разделе "Отладка SAML" нажмите раскрывающийся список и выберите Включено.

  5. Попытайтесь войти в ваш экземпляр GitHub Enterprise Server с помощью поставщика удостоверений SAML.

  6. Просмотрите выходные данные отладки в журнале systemd для github-unicorn ваш экземпляр GitHub Enterprise Server. Дополнительные сведения см. в разделе Сведения о системных журналах.

  7. Завершив устранение неполадок, откройте раскрывающийся список и выберите Отключено.

Декодирование ответов

Некоторые выходные данные в журнале systemd``github-unicorn могут быть закодированы в кодировке Base64. Вы можете получить доступ к административной оболочке и использовать служебную base64 программу для ваш экземпляр GitHub Enterprise Server, чтобы декодировать эти ответы. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

Чтобы декодировать выходные данные, выполните следующую команду, заменив ENCODED_OUTPUT кодированные выходные данные из журнала.

base64 --decode ENCODED_OUTPUT

Ошибка: "Другой пользователь уже владеет этой учетной записью"

Когда пользователь впервые входит в ваш экземпляр GitHub Enterprise Server с проверкой подлинности SAML, GitHub создает учетную запись пользователя на экземпляре и сопоставляет SAML NameID и nameid-format учетную запись.

При повторном входе пользователя GitHub Enterprise Server сравнивает учетную запись NameID и nameid-format сопоставляет ответ поставщика удостоверений. NameID nameid-format Если ответ поставщика удостоверений больше не соответствует значениям, которые GitHub ожидает пользователя, вход завершится ошибкой. Пользователь увидит следующее сообщение.

Другой пользователь уже владеет этой учетной записью. Попросите администратора проверить журнал аутентификации.

Сообщение обычно указывает, что имя пользователя или адрес электронной почты были изменены у поставщика удостоверений. Убедитесь, что NameID учетная nameid-format запись пользователя на GitHub Enterprise Server соответствует идентификатору пользователя NameID и nameid-format вашему idP. Дополнительные сведения см. в разделе Обновление SAML NameID пользователя.

Ошибка: "Получатель в ответе SAML пустой или недопустимый"

          `Recipient` Если URL-адрес ACS не соответствует ваш экземпляр GitHub Enterprise Server, одно из следующих двух сообщений об ошибках появится в журнале проверки подлинности при попытке пользователя пройти проверку подлинности.
Recipient in the SAML response must not be blank.
Recipient in the SAML response was not valid.

Убедитесь, что для Recipient поставщика удостоверений задано значение полного URL-адреса ACS для ваш экземпляр GitHub Enterprise Server. Например: https://ghe.corp.example.com/saml/consume.

Ошибка: "Ответ SAML не подписан или изменен"

Если поставщик удостоверений не подписал ответ SAML или подпись не соответствует содержимому, в журнале проверки подлинности появится следующее сообщение об ошибке.

SAML Response is not signed or has been modified.

Убедитесь, что вы настроите подписанные утверждения для приложения GitHub в idP.

Ошибка: "Аудитория недопустима" или "Утверждение не найдено"

Если в ответе поставщика удостоверений отсутствует или неверное значение Audience, в журнале проверки подлинности появится следующее сообщение об ошибке.

Audience is invalid. Audience attribute does not match https://YOUR-INSTANCE-URL

Убедитесь, что для поставщика удостоверений Audience задано значение EntityId ваш экземпляр GitHub Enterprise Server, которое является полным URL-адресом экземпляра. Например: https://ghe.corp.example.com.

Ошибка: "сбой — обновленная проверка SAML вернула недопустимый результат"

Эта ошибка может возникать в версии 3.17.0 или более поздней версии ваш экземпляр GitHub Enterprise Server. Он указывает, что GitHub не может правильно обработать ответ SAML, полученный от поставщика удостоверений. Откройте запрос в службу поддержки GitHub, чтобы группы поддержки и инженерии GitHub могли изучить и устранить проблему.

Ошибка: несоответствие дайджеста

Ошибка "Несоответствие дайджеста" указывает, что поставщик удостоверений SAML использует другой сертификат подписи SAML, отличный от того, который был отправлен в GitHub или метод сигнатуры** или дайджест, настроенный на GitHub отличается от того, **что ваш поставщик удостоверений использует.

Повторно скачайте этот сертификат SAML из поставщика удостоверений и проверьте его с помощью онлайн-инструмента, например средства форматирования сертификата x509 из OneLogin. Затем снова отправьте сертификат SAML в разделе "Проверка подлинности" в консоль управления GitHub Enterprise Server. См. Администрирование экземпляра из веб-интерфейса.