我们有一个基于静态前端的应用程序,并且API托管在一个单独的子域下(例如,web.theapp.com与api.theapp.com)。我们最近实现了一个基于Azure Blob存储构建的文档管理组件,并在API中添加了自定义元数据。下载文件时,我们希望用户访问API(进行授权检查等),然后再使用短暂的SAS令牌将其指定/重定向到Blob存储URL。在我们可以接受请求,进行所有必需的访问检查,创建SAS并生成指向文件的URL并重定向到该文件的范围内,我们的API部分已“完成”。
但是:对于API中的身份验证,当前使用的是Bearer令牌,该令牌显然不适用于单击链接所导致的GET请求。
针对这种类型的问题是否有很好的“定位”解决方案?
我们一直在考虑创建一个页面,上面写着“您的文件在3 ... 2 ... 1 ...中下载”,就像老式的托管服务一样,但这有点俗气。我们还考虑过添加某种cookie方案,因此API可以使用承载令牌或cookie接受身份验证,但是我们未能找到有关如何配置cookie身份验证的信息(相关技术堆栈:Azure AD OAuth2和ASP .NET Web API 2)。
这种类型的问题是否有好的模式?