【问题标题】:View report using an access token使用访问令牌查看报告
【发布时间】:2020-11-03 04:57:03
【问题描述】:

我正在构建一个嵌入数据工作室报告的 Web 应用程序。我遇到的挑战是我希望只允许从 Web 应用程序内部访问报告。为此,我的想法是不要共享报告并使用访问令牌查看嵌入式报告。

documentation here 说明调用google api时,可以附加访问令牌作为查询参数。这种类型的解决方案适用于来自谷歌驱动器的文件;但是,没有官方 api 来获取数据工作室报告,所以我认为也许通过调用嵌入式链接或预览链接并将访问令牌作为查询参数附加就可以了,但事实并非如此。

例如,假设嵌入的 url 是:
https://datastudio.google.com/embed/reporting/0BxscwH5YAPRRMVRWYTZVOMMptbVk/page/m2YH

如果我在使用有权查看报告的用户登录 google 时尝试在浏览器中访问该 url,我会得到数据。

如果我在以无权查看报告的用户登录 google 时尝试在浏览器中访问该 URL,我会收到一条消息,指出未经授权...这是预期的。

现在,我按照right here 的步骤操作,并且能够获得访问令牌。我尝试调用网址: https://datastudio.google.com/embed/reporting/0BxscwH5YAPRRMVRWYTZVOMMptbVk/page/m2YH?access_token=y29.jADSFhkjce0asdfaMDFaso 但它不起作用。

没有文档明确说明这应该有效。我只是想克服我面临的这个挑战。有谁知道是否有办法做到这一点?

附:我还尝试使用包含驱动器 api 范围的访问令牌无济于事。

【问题讨论】:

  • 很抱歉发表这种评论(我真的很讨厌自己),但你为什么要这样做?为什么不直接将报告分享给知道链接的任何人并将其嵌入到您的应用程序中? (没有链接,没有人会访问它)我认为您的“硬编码身份验证机制”不会比 Google 已经为每个报告提供的随机数(=0BxscwH5YAPRRMVRWYTZVOMMptbVk)更安全。如果是为了挑战,那就去吧。但如果不是这样,我会建议更简单(且受支持)的替代方案。
  • @DiegoQueiroz 感谢您的建议。问题是它包含敏感信息。公司内部的一些人可以访问该 url,他们可以与其他人共享该 url。目标是如果他们共享它,其他人将无法看到它,因此是令牌策略。
  • 但是您不能对最终用户隐藏 URL 吗?当我需要不同的仪表板权限时,我经常做的是复制它。这样,您可以与您的用户共享具有限制权限的副本。并且具有开放权限的版本(但仍然需要链接),您可以嵌入到您的应用程序中并保持 URL 隐藏。您的令牌策略的问题在于 Google 身份验证应该是交互式的。
  • @DiegoQueiroz 创建重复的仪表板意味着双重工作,由于仪表板经常更新,这会适得其反。 google 身份验证不应该是交互式的,事实上,有一个特定的流程,称为服务器到服务器授权,在 Google Workspace 帐户中非常有用。目前,我们正在研究 Data Studio 之外的解决方案。谢谢你的建议,很亲切!
  • 我会将其中一份报告称为主报告并仅对其进行更改。每次更改时,我都会复制它并删除前一个。显然,这不是一个优雅的解决方案,但它确实有效。

标签: google-api google-authentication google-data-studio


【解决方案1】:

目前唯一的解决方案是实现Row Level Filtering。基本上,该解决方案包括实现您自己的身份验证机制和您自己的基于令牌的数据显示。逐步实施教程非常耗时,但文档包含高级别的所有细节。这应该足以让您入门。

【讨论】:

  • 你能实现这个令牌吗?我有同样的要求。如果我的理解是正确的,那么通过嵌入 url 传递的令牌将被解密以知道哪个用户正在尝试访问它?我已经有一个身份验证机制。但我不确定嵌入 URL 中的令牌应该包含什么。谢谢!
【解决方案2】:

我认为这是不可能的。 Data Studio 身份验证由与 API 不同的机制处理。

请注意,您甚至无需启用 Data Studio API 即可嵌入报告。这是因为它们是不同的东西。这类似于使用 Gmail API 令牌访问您的 Gmail 帐户:它不应该工作。

当您获得访问令牌时,您获取它是为了满足特定需求(即 Data Studio API 范围)。 Data Studio API 非常简单,只允许您搜索报告/数据源和管理权限(它是 Google Drive API 的一种扩展)。目前,它不允许您与报告进行交互。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多