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.

SAML 身份验证

如果使用 SAML 单一登录 (SSO),并且用户无法通过身份验证来访问 GitHub.com,可以排查问题。

错误:“当前时间早于 NotBefore 条件”

当 IdP 与 GitHub Enterprise Cloud 之间的时间差太大时可能会发生此错误,这通常发生在自托管 IdP 中。

如果遇到此错误,请确保 IdP 上的时间与 NTP 服务器正确同步。

如果使用 ADFS 作为 IdP,则对于 GitHub,也将 ADFS 中的 NotBeforeSkew 设置为 1 分钟。 如果 NotBeforeSkew 设置为 0,即使非常小的时间差(包括几毫秒)也会导致身份验证问题。

用户反复重定向到身份验证

如果在循环中反复将用户重定向到 SAML 身份验证提示,则可能需要在 IdP 设置中增加 SAML 会话持续时间。

SAML 响应中发送的 SessionNotOnOrAfter 值决定何时将用户重定向回 IdP 进行身份验证。 如果 SAML 会话持续时间配置为 2 小时或更短,GitHub.com 将在 SAML 会话过期前 5 分钟刷新它。 如果会话持续时间配置为 5 分钟或更短,则用户可能会卡在 SAML 身份验证循环中。

若要解决此问题,建议将 SAML 会话的最短持续时间配置为 4 小时。 有关详细信息,请参阅“SAML 配置参考”。