我只希望授权用户可以在 Akamai 上查看他们的图像。这可以实现吗?

I want only the authorized users to view their images on Akamai. Can this be achieved?

目前在我的系统中,所有经过身份验证的私有图像都是从我的后端应用程序服务器提供的。所有其他非私有图像都直接从 CDN (Akamai) 提供。

私图服务流程是这样的

客户端浏览器 -> 应用服务器 -> 授权 -> Return 图片位图到浏览器

我也想对私有图像使用 CDN,因为它给我的应用程序服务器带来了沉重的负担。请建议如何实现?

在 akamai 中使用 Auth 2.0 行为。您可以在文档中找到更多详细信息。

另一种选择是使用 Akamai 的 EdgeAuth 令牌在其边缘服务器上进行某种形式的授权。这允许您在令牌中指定 ACL 以向客户端提供适当的访问权限,例如

"/public/*"

将允许访问您在 /public

下提供的所有图像
/client123/*

将只允许访问在 /client123

下提供的图像

您也可以组合这些并建立任意组合:

/client/*|/public/*

等等

这确实意味着您需要能够以这种方式按路径分割图像,如果在客户端可以访问的内容方面存在很多不可预测的交叉,它会变得复杂。

将此服务提供给您的客户端的流程在一定程度上取决于您的客户端的工作方式,您可以将令牌标记到图像 URL 本身或在 cookie 中提供(您配置的名称与阿卡迈)。令牌通过 HMAC 签名得到保护,因此它们不会被篡改,您可以根据需要将 window 设置得尽可能小以确保其有效性。

最新的 info/code/samples 链接自 this article, this can be used from .NET and other tech as well as Java. There's also this node library

如果以上方法对您不起作用,也可以让 Akamai 始终通过您的后端验证(即授权),但从 CDN 提供资产。这显然消除了使用 CDN 的一些好处,但在特殊情况下,如有必要,它可能对您的一小部分流量有益。