将 Cloudflare 访问规则用于依赖 REST 的通配符域上的应用程序 API
Using Clouflare Access rules for application on wildcard domain relying on REST API
我们正在使用 Cloudflare Access 来控制谁可以访问我们的暂存环境。我们使用简单的 Google 身份验证来识别我们团队中的用户。
为URL*.mydomain.com
定义的策略是这样的:
- 包括以
@myteam.com
结尾的电子邮件
问题是,在有问题的 URL 上,我们使用了通配符,因为我们有各种应用程序 运行,例如:
dashboard.mydomain.com
client.mydomain.com
当一个应用程序通过 REST API 与另一个应用程序通信时,这会导致问题。从 client.mydomain.com
到 dashboard.mydomain.com/api
发出的请求被 Cloudflare 阻止,即。重定向到授权页面。
我已经尝试为 dashboard.mydomain.com/api
添加另一个策略并允许所有人(只是为了尝试)但它没有用:
我的设置方法正确吗?
您的配置看起来没问题,我相信可能发生的情况是在 API 请求期间身份验证 (cookie) 未传递到您的第二个子域。这通常可以追溯到 CORS 问题。
https://developers.cloudflare.com/cloudflare-one/policies/zero-trust/cors/
具体来说,您的 API 子域可能未正确设置 Access-Control-Allow-Credentials
以允许发送 cookie。在启用之前,您需要确保您还需要确保其他 CORS headers 已正确设置以限制哪些站点可以允许请求(现在您允许经过身份验证的请求,从而降低 XSS 攻击的风险)。
我们正在使用 Cloudflare Access 来控制谁可以访问我们的暂存环境。我们使用简单的 Google 身份验证来识别我们团队中的用户。
为URL*.mydomain.com
定义的策略是这样的:
- 包括以
@myteam.com
结尾的电子邮件
问题是,在有问题的 URL 上,我们使用了通配符,因为我们有各种应用程序 运行,例如:
dashboard.mydomain.com
client.mydomain.com
当一个应用程序通过 REST API 与另一个应用程序通信时,这会导致问题。从 client.mydomain.com
到 dashboard.mydomain.com/api
发出的请求被 Cloudflare 阻止,即。重定向到授权页面。
我已经尝试为 dashboard.mydomain.com/api
添加另一个策略并允许所有人(只是为了尝试)但它没有用:
我的设置方法正确吗?
您的配置看起来没问题,我相信可能发生的情况是在 API 请求期间身份验证 (cookie) 未传递到您的第二个子域。这通常可以追溯到 CORS 问题。
https://developers.cloudflare.com/cloudflare-one/policies/zero-trust/cors/
具体来说,您的 API 子域可能未正确设置 Access-Control-Allow-Credentials
以允许发送 cookie。在启用之前,您需要确保您还需要确保其他 CORS headers 已正确设置以限制哪些站点可以允许请求(现在您允许经过身份验证的请求,从而降低 XSS 攻击的风险)。