Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Поддержка этой версии GitHub Enterprise была прекращена 2023-01-18. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, укрепления безопасности и новых функций установите последнюю версию GitHub Enterprise. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

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

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

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

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

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

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

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

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

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

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

    Снимок экрана: раскрывающийся список для включения отладки SAML

  3. Попробуйте войти в your GitHub Enterprise Server instance через поставщика удостоверений SAML.

  4. Просмотрите выходные данные отладки в файле /var/log/github/auth.log в your GitHub Enterprise Server instance.

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

    Снимок экрана: раскрывающийся список для отключения отладки SAML

Декодирование ответов в auth.log

Некоторые выходные данные в auth.log могут быть закодированы в кодировке Base64. Вы можете получить доступ к административной оболочке и использовать base64 служебную программу в your GitHub Enterprise Server instance для декодирования этих ответов. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).

$ base64 --decode ENCODED_OUTPUT

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

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

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

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

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

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

Recipient Если не соответствует URL-адресу ACS для your GitHub Enterprise Server instance, при попытке пользователя пройти проверку подлинности в журнале будет отображаться одно из следующих двух сообщений об ошибке.

Recipient in the SAML response must not be blank.
Recipient in the SAML response was not valid.

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

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

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

SAML Response is not signed or has been modified.

Убедитесь, что вы настроили подписанные утверждения для приложения GitHub Enterprise Server у поставщика удостоверений.

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

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

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

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

Ошибка: "Текущее время раньше, чем указано в условии NotBefore"

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

Чтобы предотвратить возникновение таких проблем, мы рекомендуем назначить для вашего устройства тот же источник сетевого протокола времени (NTP), который использует поставщик удостоверений. При возникновении этой ошибки убедитесь, что время на вашем устройстве правильно синхронизируется с NTP-сервером.

Если в качестве поставщика удостоверений вы используете ADFS, также установите значение 1 минута в ADFS в параметре NotBeforeSkew для GitHub. Если NotBeforeSkew имеет значение 0, то проблемы с проверкой подлинности будут возникать даже при очень небольших различиях во времени, даже в несколько миллисекунд.