【问题标题】:Authorizing Client Acces to App Engine Backend授权客户端访问 App Engine 后端
【发布时间】:2015-09-15 19:00:07
【问题描述】:

我有一个用于 Android 客户端的简单 Google App Engine 后端(用 Python 编写)。后端负责接受一个键并返回一个值;它通常是一个分类器,只需在 Cloud SQL 表中查找键即可实现,尽管这种特定行为将来会发生变化。

后端和客户端通过 Google Cloud Endpoints 进行通信。我想限制对我的后端 API 的访问,只接受来自我的客户端的请求,并且想知道 OAuth 2.0 是否真的是这样做的方法。

我不需要来自用户的任何上下文或额外信息,因此,我不希望用户操作来授予任何类型的授权。我需要做的就是确定请求来自我的应用程序。我正在考虑简单地生成一个静态密钥并在我的客户端和后端对其进行硬编码,但我认为必须有一种更优雅的方式来做到这一点。

TL;DR:如何通过 OAuth 2.0 或其他方式将我的后端的访问权限限制为仅对我的客户端/应用程序而不需要用户上下文/输入?

【问题讨论】:

  • 找到了一个很好的解释here

标签: android google-app-engine oauth-2.0 google-cloud-endpoints


【解决方案1】:

我不知道 OP 是否解决了他们的问题,但我将其发布在这里供其他人使用。我在这个特定问题上浪费了好几个小时。

步骤:

1.Create an oAuth 2.0 client ID for your Android client.

2. 在 endpoints.api 的 allowed_client_ids 参数中指定客户端 ID。在本例中(Android),在 allowed_client_ids 中提供其 Android 客户端 ID 和 Web 客户端 ID。

3. 在设置为 Web 客户端 ID 的 endpoints.api 中也提供 Audiences 参数。

4.Add a user check to the protected methods.

5.重新部署 API 后端。

6.重新生成客户端库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-21
    • 2018-12-01
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    相关资源
    最近更新 更多