google-apps-script - 使用来自 ScriptService 的 Id Token 对 IAP(身份感知代理)进行 API 调用
问题描述
我正在制作一个插件(Google 日历的侧边栏插件),该插件需要调用托管在 Google IAP(身份识别代理)后面的 API。IAP 需要一个 openid 令牌,而 id 令牌需要通过使用 Audience 参数从 Google 的 OAuth2 服务授予。我可以通过包含这个 oauth2 库来完成这项工作,但是用户必须登录两次。首先是插件,其次是 IAP 服务。由于两次登录都是 Google 的,并且使用相同的用户,因此他们似乎只需要登录一次。apps 脚本中的 ScriptApp 服务有一个函数getIdentityToken(),但该令牌不适用于 IAP,因为它在生成令牌时没有使用受众参数。有谁知道使用从 ScriptApp 派生的令牌调用 IAP 的方法,以便用户不必登录两次?如果没有直接访问刷新令牌,我自己将无法使用观众参数创建 id 令牌。
解决方案
目前这是不可能的。作为用户,您必须经历两个不同的 OAuth 身份验证流程才能在您的应用程序中使用 IAP。
正如您正确描述的那样,这是由于附加组件当前身份验证流程(不允许您包含“audience”参数)以及无法从当前会话中检索刷新令牌。
如果您有兴趣将您的 IAP 作为附加身份验证流程的一部分包含在内,我建议您向 Google 的公共问题跟踪器 ( https://issuetracker.google.com/issues ) 提交功能请求。
推荐阅读
- angular - 使用 ngif 进行 Angular 表单验证
- tmux - 如何在 tmux 绑定键映射中使用 env 变量?
- amazon-ecs - ECS容器在健康检查中发送404状态码
- swiftui - matchGeometryEffect 不适用于 PageTabView
- html - HTML5 中的 void 元素是否允许结束标记?
- r - 使用 R 中的 apply() 函数查找 2 个矩阵的每一行的加权特征
- c++ - 为什么在这种情况下我会在 C++ 中收到 C2064 和 c 2056 错误
- aws-lambda - aws lambda put-metric-data 超时
- websphere - IBM ACE - 调用 Oracle 过程返回一个行类型(通过 ESQL 计算节点)
- paypal - PayPal 结帐返回 UNPROCESSABLE_ENTITY