Flask 如何在Google Cloud函数的python环境中检查HTTP basic auth
如何实现这一点 我不确定是否可以像使用python装饰器那样使用各种与flask相关的库,而且我没有访问flask路由的权限 我的解决方案是手动获取标题,并手动解析授权字符串。但实际上我不确定授权遵循的是什么格式-是否有一些库可以为我处理这个复杂问题?requirements.txt:Flask 如何在Google Cloud函数的python环境中检查HTTP basic auth,flask,google-cloud-platform,google-cloud-build,Flask,Google Cloud Platform,Google Cloud Build,如何实现这一点 我不确定是否可以像使用python装饰器那样使用各种与flask相关的库,而且我没有访问flask路由的权限 我的解决方案是手动获取标题,并手动解析授权字符串。但实际上我不确定授权遵循的是什么格式-是否有一些库可以为我处理这个复杂问题?requirements.txt: basicauth==0.4.1 以及守则: from basicauth import decode encoded_str = request.headers.get('Authorization')
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
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
云功能(CFs)主要用于执行简单、独立的任务,而不是复杂的应用程序
推荐的CF访问控制方法基于和。发件人:
在运行时,云函数使用服务帐户
项目_ID@appspot.gserviceaccount.com
,它具有编辑器
项目中的角色。您可以更改此服务帐户的角色
限制或扩展运行功能的权限
此访问控制方法在实际CF执行之外强制实施,因此您不必担心CF代码中的身份验证—您已经知道它只能使用相应的服务帐户凭据执行
是的,可以使用类似于在更复杂的应用程序中使用的自定义身份验证方案,但这不会是微不足道的——这不是CFs的设计目的。请参阅相关的云功能(CFs)主要用于执行简单、独立的任务,而不是复杂的应用程序
推荐的CF访问控制方法基于和。发件人:
在运行时,云函数使用服务帐户
项目_ID@appspot.gserviceaccount.com
,它具有编辑器
项目中的角色。您可以更改此服务帐户的角色
限制或扩展运行功能的权限
此访问控制方法在实际CF执行之外强制实施,因此您不必担心CF代码中的身份验证—您已经知道它只能使用相应的服务帐户凭据执行
是的,可以使用类似于在更复杂的应用程序中使用的自定义身份验证方案,但这不会是微不足道的——这不是CFs的设计目的。请参阅相关的URL是公开的-不确定服务帐户如何以这种方式提供任何身份验证。啊,你的意思是在入口端。我想象IAM检查
cloudfunctions.functions.call的权限是在CF触发器级别完成的。因此,如果触发器是HTTP,是的,URL是公共的,但它位于Google拥有的cloudfunctions.net
域中,因此在收到HTTP请求后但在实际调用CF之前,很容易进行IAM检查。因此,您不需要在CF代码本身内部执行任何操作,您只需要注意配置CF和IAM角色和权限。我仍然不明白为什么这与HTTP的“基本访问身份验证”有关?我想我想说的是,我认为尝试解析/使用CF代码中的基本身份验证信息毫无意义。由于特定的CF总是在Google策划的环境中执行,因此信息要么丢失,要么是静态的,由相同的身份/用户发送。它作为HTTP头在HTTP请求中发送-这样我可以检查它是否匹配用户名和密码。URL是公开的-不确定服务帐户如何以这种方式提供任何身份验证。啊,你的意思是在入口端。我想象IAM检查cloudfunctions.functions.call的权限是在CF触发器级别完成的。因此,如果触发器是HTTP,是的,URL是公共的,但它位于Google拥有的cloudfunctions.net
域中,因此在收到HTTP请求后但在实际调用CF之前,很容易进行IAM检查。因此,您不需要在CF代码本身内部执行任何操作,您只需要注意配置CF和IAM角色和权限。我仍然不明白为什么这与HTTP的“基本访问身份验证”有关?我想我想说的是,我认为尝试解析/使用CF代码中的基本身份验证信息毫无意义。信息要么丢失,要么是静态的,因为特定的CF总是由同一身份/用户在谷歌管理的环境中执行。它作为HTTP头发送到HTTP请求中,因此我可以检查它是否与用户名和密码匹配。