如何在 Google Cloud Functions 的 python 环境中检查 HTTP 基本身份验证

How to check HTTP basic auth on the python environment of Google Cloud Functions

如何实现?

我不确定是否可以使用各种与 Flask 相关的库,因为它们使用 python 装饰器 - 而且我无权访问 Flask 路由。

我的解决方案是手动获取 headers,然后手动解析授权字符串。但我实际上不确定 Authorization 遵循什么格式 - 是否有一些库可以为我处理这种复杂情况?

requirements.txt:

basicauth==0.4.1

代码:

from basicauth import decode


encoded_str = request.headers.get('Authorization')
username, password = decode(encoded_str)

if (username == "example", password == "*********"):
    authed_request = True

Cloud Functions (CF) 主要设计用于执行简单的独立任务,而不是复杂的应用程序。

推荐的CF访问控制方法基于service accounts and IAM. From Runtime service account:

At runtime, Cloud Functions uses the service account PROJECT_ID@appspot.gserviceaccount.com, which has the Editor role on the project. You can change the roles of this service account to limit or extend the permissions for your running functions.

此访问控制方法在实际 CF 执行之外强制执行,因此您无需担心 CF 代码中的身份验证 - 您已经知道它只能使用相应的服务帐户凭据执行。

是的,可能可以使用类似于在更复杂的应用程序中使用的自定义身份验证方案,但这并非微不足道 - 它不是CF 的设计目的是什么。查看某种相关的