gpt4 book ai didi

python - 使用 AWS ALB/Cognito 进行身份验证

转载 作者:行者123 更新时间:2023-12-05 06:04:16 33 4
gpt4 key购买 nike

我正在尝试通过 Python 的 ALB 进行授权。据我了解,ALB 在让您访问该网站之前会查找“AWSELBAuthSessionCookie”cookie。我自己登录应用程序时(使用用户名和密码)也看到了这些 cookie。问题是,如果我想从 python 程序向网站/api 验证自己的身份,我该如何获取这些 cookie 的值。以前有人这样做过吗?

最佳答案

我遇到了完全相同的问题,只能使用 API 网关使其工作,因为它们允许在请求的授权 header 中通过 JWT 进行授权。这可以在 Python 中轻松完成,例如

import boto3
import requests

client = boto3.client(
"cognito-idp",
region_name="<aws region of the cognito app client>"
)

response = client.initiate_auth(
ClientId="<cognito app client ID>",
AuthFlow="USER_PASSWORD_AUTH",
AuthParameters={
"USERNAME": "<username>",
"PASSWORD": "<password>",
"SECRET_HASH": "<secret hash>",
},
)

token = response["AuthenticationResult"]["AccessToken"]

headers = {"Authorization": f"Bearer {token}"}
requests.get("<api gateway url>", headers=headers)

但是,我还需要允许通过 Cognito UI 进行授权。因此,我不得不同时使用 ALB 和 API 网关。

虽然这解决了使我的应用程序可从浏览器(即人类)和代码(即机器)使用的问题,但它引入了许多我必须使用的额外 AWS 组件。而且,作为不利的副作用,API 的请求负载限制为 10MB,无法增加。这对我来说是另一个问题。

我知道已经过去一年了,但如果您已经解决了这个问题,请随时分享您的解决方案。

关于python - 使用 AWS ALB/Cognito 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66386678/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com