【发布时间】:2018-06-11 12:12:05
【问题描述】:
我们使用 VSTS 仪表板,喜欢使用“嵌入式网页”小部件来显示自定义信息。我们通过链接到一个服务器来做到这一点,我们在其中放置了一些调用 VSTS rest api 的代码。我们使用存储在服务器上的个人访问令牌(PAT)进行身份验证
为了简化这个过程,我们可以使用嵌入式网页小部件完全跳过服务器和 PAT,并将其指向一个 html 文件。此 html 文件将包含 javascript 并执行对 VSTS 的 api 调用并显示信息。然而,由于 CORS 限制,这是不可能的。我们需要提供 PAT 来执行 CORS,这会使事情变得复杂。
解决此问题的一种方法是在 VSTS 中的 git 中托管 html 页面。如果我们这样做,CORS 策略将匹配,但无法从 git 获取内容类型为 text/html 的文件,因此在放入小部件时不会呈现 html。
我还尝试了允许来自 data: URI 的 iframe 的 IFrame 扩展,但数据 URI 似乎具有不同的来源,因此它不会传输 cookie,这意味着它不会进行身份验证。
我了解存在安全风险,即可以代表查看仪表板的任何人执行 api 调用,因此如果不可能的话,这可能是设计使然。
是否可以在不使用 PAT 的情况下在纯 html 中制作一个调用 VSTS api 的 VSTS 小部件?
【问题讨论】:
-
看的不是很清楚,能否提供样例解释一下?
-
我可以尝试详细说明,但很难为不起作用的东西提供样本。有没有具体的部分不清楚?
-
不知道你想达到什么目的,好像和凭证有关。如果是这样,您可以使用 VSS.getAccessToken() 获取当前用户的访问令牌。
-
我正在尝试使用其余的 api 以纯 html 编写它。为了清楚起见,我重写了问题
标签: azure-devops