【发布时间】:2021-10-22 00:01:59
【问题描述】:
我正在按照 Row level filtering with Embedded dashboards 教程使用 Data Studio 作为报告 UI/后端(在 Python 中将 Anvil 作为前端)构建一个安全的多租户仪表板,目的是过滤来自基于特定用户权限的 BigQuery 表。
我已按照建议成功完成initial connector tutorial。到目前为止,我也成功完成了以下步骤(1-4):
- 在 Anvil 中构建用户身份验证并在
user表中设置权限(JSON 包含每个用户可以查看的特定字段值) - 构建机制以在 Anvil 中创建
access_token,基于用户和 unix 时间戳组合的十六进制 md5 哈希,有效期为一小时 - 在 Anvil 中安全地设置和存储
app_secret以验证入站请求 - 在 Anvil 中创建 API 端点,该端点验证
app_secret并验证access_token并返回包含user_email和permitted_accounts的 JSON
现在我要构建自定义连接器了,目的是构建流程的下一部分:
- 按照this 部分,通过编码并将
access_token包含在嵌入URL 中(报表将通过iFrame 嵌入),将access_token传递给Data Studio - 根据语句“这将用于从嵌入 URL 的参数中捕获令牌”,从应用脚本中的嵌入 URL 中提取
access_token。来自this部分 - 使用 App Script 中的
app_secret和access_token访问 API 端点,以验证并接收与access_token关联的用户权限,如果验证检查在 Anvil 中通过,则返回相应的错误消息 - 根据用户权限构造查询并使用此approach 从 BigQuery 获取数据 ...然后设置架构等...
但是,在到达此流程的第 6 步时,我需要从 URL 中解析 access_token,Write the Connector Code 部分中包含的代码将 token 作为用户输入的文本字段,并且不采用它来自嵌入 URL 的参数(这对我来说毫无意义,因为让用户不断手动转置短期令牌似乎否定了本练习的意义)。
我也无法在 API reference 中找到有关如何实现此目的的文档。
请问,有人知道如何从 App Script Community Connector 中的报告嵌入 URL 中捕获参数吗?我从文档中认为这是可能的:
getConfig() 应该返回至少一个配置项。这将用于从嵌入 URL 的参数中捕获令牌。
感谢您抽出宝贵时间!
【问题讨论】:
-
在配置中是令牌参数
.setAllowOverride(true);并且在报告设置中启用了按 url 的过滤器被激活了吗?在您的报告中创建一个虚拟输入框并在 url 中查看它。
标签: google-apps-script google-cloud-platform google-bigquery google-data-studio anvil