3

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

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

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

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

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

4

1 回答 1

1

我现在已经得出结论,Google Cloud Endpoints仅允许基于 Google 帐户凭据进行身份验证。我需要的是整个应用程序(而不是其用户)的凭证,类似于服务帐户或 API 密钥。

我已经使用服务帐户进行服务器到服务器的通信。似乎不可能为应用程序创建服务帐户(与 GAE 应用程序相反)。

GTLService有财产APIKey。但是,如果我的客户端将其设置为我在 Google Developer Console 中为我的 GAE 应用程序创建的公共访问密钥(iOS 密钥),则服务器会返回错误Access Not Configured. Please use Google Developers Console to activate the API for your project,但没有(明显的)方法可以配置非 Google API,例如我的服务 API .

因此,在另行通知之前,我将在我的应用程序级 API 请求中添加一个 API 密钥,并在每个@ApiMethod.

于 2014-06-28T13:42:07.343 回答