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

2024-04-29

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

我已按照有关添加的说明进行操作授权 https://developers.google.com/appengine/docs/java/endpoints/auth并创建了一个与我的应用程序的捆绑包 ID 和应用程序商店 ID 绑定的 iOS 客户端 ID。我现在很难理解这部分指示 https://developers.google.com/appengine/docs/java/endpoints/consume_ios:

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

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

Google Cloud Endpoints(适用于 iOS 客户端)是否支持这种类型的应用程序(而非用户)身份验证方案,或者我是否必须通过在应用程序级协议中传递一些机密来进行自己的应用程序身份验证?这里有some https://stackoverflow.com/questions/20396577/authenticate-my-app-to-google-cloud-endpoints-not-a-user earlier https://stackoverflow.com/questions/17873993/restrict-access-to-google-cloud-endpoints-to-android-appAndroid 客户端的相关(未解答)问题。


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

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

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

因此,在进一步通知之前,我将向我的应用程序级 API 请求添加一个 API 密钥,并在每个请求中检查它@ApiMethod.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐