问题标签 [service-accounts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
82 浏览

google-app-engine - 我可以使用 google 服务帐户来验证 INCOMING 请求吗?

我们目前有一个 App Engine 应用程序和一些 Google Compute Engine 后端。不幸的是,App Engine 不被视为“网络内”,因此为了让 App Engine 向后端服务器发出请求,相关端口必须在防火墙中公开可用,这显然存在安全风险。如果我们的 App Engine 应用程序可以通过使用服务帐户客户端发出请求来自动“签署”所有请求到我们的后端,那将非常方便。这可能吗?

同样,我也想在另一个方向上这样做,只要请求是从 GCE 服务帐户发出的,来自我们 GCE 服务器的请求就可以由 App Engine 进行身份验证。我天真地尝试了后者,方法是从 GCE 向应用引擎上的测试处理程序发出请求,该处理程序检查当前用户(通过用户服务),但不出所料,用户为空(因为“用户”和“服务帐户”并不完全是同样,我没想到这会起作用-但是值得一试)。

网络上有相当多的信息用于发出服务帐户身份验证的请求(例如,谷歌 API),但我找不到任何关于验证传入请求的信息。这样的事情存在吗?(理想情况下在 Go 中)

0 投票
1 回答
103 浏览

oauth-2.0 - 没有服务帐户的服务器到服务器请求

简短版本:我的应用程序可以在不使用服务帐户的情况下使用 OAuth 2.0 进行身份验证吗?

长版:我在使用服务帐户时遇到的问题是它们不能被授予与创建它们的原始帐户相同的权限。具体来说,出于安全原因,我的公司不授予外部帐户写入权限。服务帐户在技术上是一个特定于应用程序的帐户,在创建它的帐户的域之外,并且比最终用户帐户具有更多的访问限制。

应用程序是否可以将自己验证为用户帐户?

0 投票
0 回答
329 浏览

python - google联系人api服务账号oauth2.0子用户

我正在尝试使用 Google Contacts API 连接到我的 Google 应用程序域上的用户联系信息。

在为我的项目使用 API 密钥时使用 gdata api 的 ContactsService clientlogin 函数生成 access_token 工作正常,但我不希望存储用户的凭据,并且根据我发现该方法使用 OAuth1.0 的信息

所以,要使用 OAuth2.0,我有:

  1. 在开发者控制台中为我的项目生成了一个服务帐户
  2. 在 Google Apps 域管理面板中授予对https://www.google.com/m8/feeds/范围内服务帐户的访问权限
  3. 尝试使用 SignedJwtAssertionCredentials 生成凭据:

    /li>

我遇到的问题是尝试使用此方法生成访问令牌失败。当我删除 sub 参数时,它成功生成了令牌,但是当我尝试获取用户的联系人时,该令牌失败。

有谁知道为什么会发生这种情况?

0 投票
1 回答
2604 浏览

google-calendar-api - 服务帐号身份验证

我正在尝试通过 PHP 为一个特定用户创建日历事件 - 例如 development@example.com。

我在 Google Developers Console 中创建了服务帐户,获得了 ClientID、电子邮件地址和私钥。身份验证通过代码完成:

这种类型的身份验证似乎还不错。但是所有事件都是作为用户创建的,其电子邮件地址为 somelongstring@developer.gserviceaccount.com 而不是 development@example.com。

我试过设置子参数:

但是这段代码抛出异常:

现在我迷路了。有什么建议吗?

0 投票
0 回答
55 浏览

google-cloud-endpoints - 谷歌云端点为谷歌 OAuth 2.0 端点配置“服务帐户”支持服务器到服务器交互

我正在使用 Python 应用程序实现 Cloud Endpoints,我需要以安全的方式 https(这是自动的)公开 restAPI,此端点的使用者将是 java 应用程序(不是 Web 浏览器或应用程序 android 或 ios),并且我的问题是,是否有任何方法可以限制仅针对该应用程序使用此服务。

我见过“服务帐户”oauth,但我不知道我是否可以将它用于这个问题,如果可能的话,我不知道如何配置它。

非常感谢。

0 投票
1 回答
851 浏览

oauth-2.0 - 作为 iOS 应用程序向 Google Cloud Endpoints 进行身份验证(不是具有 Google 帐户凭据的用户)

我的一个 iOS 应用程序使用 Google Cloud Endpoints 与我的一项服务联系,我想将对该服务的访问限制为该应用程序的实例。

我已按照有关添加授权的说明进行操作,并创建了一个与我的应用程序包 ID 和应用商店 ID 相关联的 iOS 客户端 ID。我现在很难理解这部分说明

如果您的 iOS 应用程序正在调用需要身份验证的端点,您必须将登录对话框添加到您的 iOS 客户端。

我不希望我的用户登录,而是希望我的应用程序将其凭据提供给服务以进行身份​​验证,而无需用户交互。我认为,由于客户端 ID(可能以加密方式)与客户端 ID 和捆绑 ID 相关联,因此只有应用程序(以某种方式)能够这样做,并且客户端 ID 可以像服务帐户一样有效地服务。

Google Cloud Endpoints(适用于 iOS 客户端)是否支持这种类型的应用程序(非用户)身份验证方案,还是我必须通过在应用程序级协议中传递一些秘密来滚动我自己的应用程序身份验证?以下是针对 Android 客户端的一些 较早的相关(未回答)问题。

0 投票
1 回答
938 浏览

php - 使用 OAuth 2.0 和服务帐户的 Gmail IMAP 失败,状态为 400

当我尝试使用 XOAUTH2 机制和服务帐户连接到 Gmail IMAP 服务器时,我收到以下响应:

我在 PHP 中使用的代码是:

按照http://www.limilabs.com/blog/oauth2-gmail-imap-service-account的说明,我授权访问邮件。(当然,然后在我的测试域中重新安装了该应用程序)但我仍然失败了。

我可以得到令牌,但无法向 IMAP 进行身份验证。

我还尝试使用服务帐户访问非域谷歌用户的 Gmail IMAP(访问令牌包括“offline_token”) - 它对我来说效果很好!

有谁知道我做错了什么?

0 投票
2 回答
1709 浏览

php - 身份验证 Google Content Api 服务帐户 - 错误“用户无法访问帐户”

我正用头撞墙,试图让我的代码正常工作。我已经通过使用带有重定向 url 的身份验证路由成功连接到 google Api。

但是,我需要让它作为一个独立的服务工作,它将在 crontab 中运行。

所以现在我正在尝试使用“服务帐户”进行身份验证。

这是我的代码,您会在下面找到它给我的错误。

所以这是我在运行代码时得到的消息。(请注意,令牌已创建,但我无法访问 Google 购物提要的内容。)

我已经尝试找到解决方案 2 天了,但是我发现的任何提示都对我没有帮助。我还使用新的 Api 身份验证密钥创建了一个新项目,但没有任何效果,而且我总是收到上述消息。请问谁能帮帮我?

问候,马丁

0 投票
1 回答
131 浏览

android - 允许 Android 上的 Google Drive SDK 连接到应用拥有的帐户

我正在寻找制作一个连接到 Drive 帐户以上传文件的 android 应用程序的可能性。限制是此帐户应该是服务帐户而不是用户帐户。

https://developers.google.com/drive/web/service-accounts展示了如何在应用程序的服务器端执行此操作,但是否可以在 Android 中执行此操作?

我知道 SDK 不是为此目的而设计的,但是有什么解决方法可以做到这一点吗?甚至可能吗?

欢迎提供任何示例或指导。我想将 Drive SDK 用于其可恢复上传协议,因此我也欢迎其他替代方案在 Android 上进行可恢复上传。

0 投票
2 回答
335 浏览

google-analytics-api - 通过服务帐户使用 GoogleAnalytics

我正在尝试使用Google.Apis.Analytics.v3客户端库来检索指标,并且我想使用Service Account

根据 StackOverflow 上的文档和几个问题,我认为这应该可行。过去我已经针对 Google BigQuery 和 Google Cloud Storage API 使用过服务帐户,所以我认为我可以让它很容易地工作。

不幸的是,每次我对 Google Analytics 执行操作时,都会收到以下错误:

TokenResponseException: 附加信息:错误:“invalid_grant”,描述:“”,Uri:“”

为了记录,这里我做了什么:

  • 在 Google Developer Console 中创建了一个全新的项目。
  • 启用谷歌分析 API。
  • 创建一个“服务帐户”客户端 ID。
  • 记下证书及其密码的“客户 ID”。
  • 将服务帐户“电子邮件地址”添加为对 Google Analytics 帐户具有完全权限的用户。

这是我用来连接到 Google Analytics 的代码:

有人可以帮我解决这个问题吗?