Skip to main content

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 配置参考”。