Skip to main content

Устранение неполадок с управлением удостоверениями и доступом для вашей организации

Просмотрите и разрешите распространенные ошибки по устранению неполадок с управлением единым входом SAML вашей организации, синхронизацией команд или подключением поставщика удостоверений (IdP).

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

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

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

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

Пользователи многократно направляются на проверку подлинности

Если пользователи попадают в цикл непрерывных перенаправлений на проверку подлинности SAML, вам следует увеличить длительность сеанса SAML в параметрах поставщика удостоверений.

Значение SessionNotOnOrAfter, которое отправляется в ответе SAML, определяет длительность периода, после которого пользователь будет снова перенаправлен к поставщику удостоверений для проверки подлинности. Если длительность сеанса SAML настроена в течение 2 часов или меньше, GitHub обновит сеанс SAML 5 минут до истечения срока действия. Это означает, что при длительности сеанса в 5 минут и менее пользователи застревают в цикле постоянной проверки подлинности SAML.

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

Некоторые пользователи не подготовлены или их подготовка отменена системой SCIM

При возникновении проблем с подготовкой пользователей рекомендуется проверить наличие метаданных SCIM.

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

Если у участника организации отсутствуют метаданные SCIM, можно вручную повторно подготовить SCIM для пользователя с помощью поставщика удостоверений.

Аудит пользователей для отсутствия метаданных SCIM

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

Чтобы проверить, есть ли у пользователей удостоверение SCIM (метаданные SCIM) во внешнем удостоверении, можно просмотреть метаданные SCIM для одного члена организации за раз на GitHub или программно проверить всех членов организации с помощью API GitHub .

Когда поставщик удостоверений отправляет вызов подготовки к API SCIM GitHub, scIM userName в этом вызове API должен соответствовать сохраненной SAML в связанном удостоверении SAML nameID пользователя в организации. Если эти два значения не совпадают, метаданные SCIM не будут заполнены, а удостоверение SCIM не будет успешно связано. Чтобы проверить соответствие этих значений, используйте API GitHub .

Аудит участников организации в GitHub

Чтобы подтвердить, что метаданные SCIM существуют для одного участника организации, владельцу организации необходимо перейти на этот URL-адрес и заменить <organization> и <username>:

https://github.com/orgs/<organization>/people/<username>/sso

Если внешнее удостоверение пользователя содержит метаданные SCIM, владелец организации увидит на этой странице раздел удостоверений SCIM. Если внешнее удостоверение не содержит метаданные SCIM, раздел "Удостоверение SCIM" не будет существовать.

Аудит участников организации посредством API GitHub

Как владелец организации, вы также можете запросить REST API SCIM или GraphQL, чтобы получить список всех подготовленных удостоверений SCIM в организации.

Использование REST API

REST API SCIM будет возвращать данные только для пользователей с метаданными SCIM, заполненными в разделе их внешних удостоверений. Рекомендуется сравнить список подготовленных удостоверений SCIM со списком всех участников организации.

Дополнительные сведения см. в разделе:

Использование GraphQL

В этом запросе GraphQL показаны SAML NameId, SCIM UserName и имя пользователя GitHub (login) для каждого пользователя в организации. Чтобы использовать этот запрос, замените ORG на название своей организации.

{
  organization(login: "ORG") {
    samlIdentityProvider {
      ssoUrl
      externalIdentities(first: 100) {
        edges {
          node {
            samlIdentity {
              nameId
            }
            scimIdentity {
              username
            }
            user {
              login
            }
          }
        }
      }
    }
  }
}
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" -d '{ "query": "{ organization(login: \"ORG\") { samlIdentityProvider { externalIdentities(first: 100) { pageInfo { endCursor startCursor hasNextPage } edges { cursor node { samlIdentity { nameId } scimIdentity {username} user { login } } } } } } }" }' https://api.github.com/graphql

Дополнительные сведения об использовании API GraphQL см. в разделе:

Повторная подготовка SCIM для пользователей с помощью поставщика удостоверений

ScIM можно вручную повторно подготовить для пользователей с помощью поставщика удостоверений. Например, чтобы устранить ошибки подготовки для Okta, на портале администрирования Okta можно отменить назначение и переназначить пользователей приложению GitHub. При этом должен активироваться Okta, чтобы выполнить вызов API для заполнения метаданных SCIM для этих пользователей в GitHub. Дополнительные сведения см. в разделе "Отмена назначения пользователей из приложений " или "Назначение пользователей приложениям " в документации okta.

Чтобы убедиться, что удостоверение SCIM пользователя создано, рекомендуется протестировать этот процесс с одним участником организации, для которого подтверждено отсутствие внешнего удостоверения SCIM. После обновления пользователей в IdP вручную можно проверить, создано ли удостоверение SCIM пользователя с помощью API SCIM или с помощью GitHub. Дополнительные сведения см. в разделе "Аудит пользователей" для отсутствующих метаданных SCIM или Конечные точки REST API для SCIM.

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

Дополнительные материалы