【问题标题】:Using Google oAuth between applications which the same user is authenticated into?在对同一用户进行身份验证的应用程序之间使用 Google oAuth?
【发布时间】:2015-04-06 09:39:29
【问题描述】:

我在使用 oAuth 时遇到了一些挑战,我想请教一些专家的建议!

挑战如下:

场景
1.用户 A 同步使用两个独立的外部网络应用程序(应用 X 和应用 Y)。
2. 用户 A 使用相同的 Google 身份验证凭据 (OpenID / oAuth) 向应用 X 和应用 Y 进行身份验证。
3. 应用 X 和应用 Y 目前为用户持有授权的 Google 身份验证令牌A.
4. 应用 X 和应用 Y 需要在它们之间共享信息(通过 REST/SOAP 请求),以满足用户 A 的要求。
5. 应用 X 和应用 Y 具有安全要求,需要任何外部应用在接受 REST/SOAP 请求之前进行身份验证。

问题
应用 X 和应用 Y 能否利用用户 A 的 Google 凭据(令牌)在彼此生成/发送 REST/SOAP 请求之前进行相互身份验证?

如果有更好的方法,我会欣赏你的想法。

提前谢谢你。

【问题讨论】:

  • 视情况而定。如果每个应用程序为用户声明授权,它是否信任另一个应用程序?还是每个应用都需要向其他应用证明它已被授权代表用户?
  • 嗨,亚伯拉罕。在回答您的问题时,App X 和 App Y 在交换信息之前需要相互证明它们已获得同一用户的授权。授权方式是谷歌。您是否碰巧知道他们如何做到这一点?谢谢

标签: google-apps-script google-api google-apps google-oauth


【解决方案1】:

您不能使用来自 App X 的令牌来运行 App Y。当您从浏览器运行脚本时,它会从用户 cookie 中提取一些身份验证值。即使您将这些值添加到 UrlFetchApp 的标头,它们也会被 Apps 脚本剥离。 如果应用 Y 设置为以“我”身份运行,则来自应用 X 的令牌可用于满足“谁可以访问网络应用”。这是通过在标头对象“Authorization”中发送它来完成的:“Bearer TokenFromAppX”。在 App Y 中,您可以处理自己的 OAuth 并通过 REST 调用访问用户数据。见:

https://github.com/googlesamples/apps-script-oauth2

【讨论】:

    猜你喜欢
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多