许多安全组织的一个共同目标是实现持续的身份验证和授权。借助 Cloudflare Access JWT 验证,你可以实现此目标,而无需引入显着的用户打扰或要求最终用户改变行为。
正如在前一页中所讨论的,你的某些应用程序当前可能依赖直接 SSO 集成来对请求进行身份验证。但是,如果你将这种类型的应用程序置于 Cloudflare 后面以启用远程访问,你的用户将需要身份验证两次。首先,他们必须通过 Cloudflare Access 向你的身份提供者进行身份验证。一旦他们向 Access 完成身份验证,你的用户将到达内部应用程序的前门,在该处他们必须通过直接 SSO 集成完成第二次身份验证事件。
我们建议使用 Cloudflare Access 颁发的 JSON Web Token (JWT) 来对请求进行身份验证,而不是在应用程序中管理直接 SSO 集成。Cloudflare 成为验证从你的 SSO 提供程序返回的令牌的主要责任方。通过允许你的应用程序消耗 Cloudflare JWT,用户只需进行一次身份验证即可访问应用程序,并且你可以以更低的开销更好地管理对内部服务的授权。
当 Cloudflare 向你的应用程序发送请求时,该请求将包含一个使用特定于你的账户的密钥对签名的 JWT。你可以在应用程序中构建工作流以验证 Cloudflare Access JWT。这将为已向 Cloudflare 进行身份验证的用户提供比 HTML 更强的安全性,并使你的用户登录体验变得无缝。
授权流程在下图中进行了说明:
当应用程序没有集成 SSO 或任何其他提供即时 (JIT) 用户预配或管理的方法时,在 Cloudflare 内部寻找一种自动将用户信息传递到私有应用程序的方法是很常见的。为了最出色地完成此操作,我们建议使用 Cloudflare Workers 发送自定义 HTTP 标头。当请求通过 Cloudflare 的网络路由到你的应用程序时,Worker 可以向请求中插入标头,其中包含用户的身份、设备姿态属性以及来自 Cloudflare Access JWT 的其他自定义 SAML/OIDC 断言。
有关设置详细信息,请参阅本教程。