- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在查看网站的 javascript 文件以找到我想要的端点,在此期间我发现了这样的一行。
DASHBOARD_API_Token=eyJraWQiOiJVS2paTnB3SWdBK292QzB3RWdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
最佳答案
好吧,就其 JWT token 以及您可以使用它们做什么而言,AWS Cognito 是一个非常有趣的野兽。
首先,当您根据 Cognito 用户池对用户进行身份验证时,您会获得 3 个不同的 token :AccessToken
, IdToken
, 和 RefreshToken
.两个AccessToken
和 IdToken
有效期为 1 小时(您无法更改)。这就是为什么你会得到 RefreshToken
,您可以使用它来获得新的 AccessToken
和 IdToken
例如,通过调用 InitiateAuth . RefreshToken
默认情况下有效期为 30 天,但您可以在 Cognito 用户池的设置中更改它。
访问 token
这是 Cognito 提供的最强大的 token 。如果您拥有有效的 AccessToken
,您可以调用几个非常敏感的 Cognito API。
一个非常令人惊讶的例子是您可以调用 DeleteUser API 通过提供 AccessToken
它将从 Cognito 用户池中完全删除您的帐户。这里“最好”的一点是,如果你有一个有效的 AccessToken
,应用程序开发人员就无法阻止你这样做。 . AWS 开发人员是 saying “它的设计”。这是我们决定不将 Cognito 访问 token 传递到应用程序前端的最重要原因之一。
说到 AccessToken
的有效载荷,唯一可能敏感的声明是 client_id
,其中包含用于对用户进行身份验证的 Cognito 客户端 ID。如果这个客户端没有客户端密码(这可能首先应该被认为是一个安全漏洞),那么 client_id
可用于调用相当广泛的 Cognito API。但是,Cognito 认为 client_id
成为公共(public)信息。所有其他声明都被视为公开,您可以查看声明的完整列表 here .
身份 token
包含有关播放器的信息。它可能包含有关玩家的一些个人信息,具体取决于您在 Cognito 用户池中配置的标准声明和自定义属性,但是也可以使用 Pre Token Generation Lambda Trigger 禁止或覆盖这些声明.使用此触发器可以隐藏或屏蔽玩家属性,这些属性被认为是敏感的,不应出现在 IdToken
中。 .
据我所知,您不能使用 IdToken
调用 Cognito API。
刷新 token
只能用于请求新的AccessToken
和 IdToken
, 不能用于调用 Cognito API。在我们的特定用例中,我们必须避免传递 RefreshToken
到应用程序前端,因为它可以用来获取 AccessToken
反对公共(public) Cognito API(这意味着我们不能阻止用户这样做)。
使用 Cognito token 获取 AWS 凭证
仅当 Cognito 用户池已与 Cognito 身份池显式集成(假设应用程序开发人员知道他们在做什么)时,这才有可能。当您交换 Cognito JWT token 时,您会获得临时 AWS 凭证,其权限绑定(bind)到在 Cognito 身份池中配置的特定 IAM 角色。这是完全合法的流程和预期的行为。此外,如果 Cognito 身份池配置为允许未经身份验证的访问,您甚至可以在没有 Cognito JWT token 的情况下获得临时 AWS 凭证(但这些凭证将绑定(bind)到另一个可能更具限制性的 IAM 角色)。
将 Cognito token 与 API 网关一起使用
AWS API Gateway 资源可以是 integrated使用 Cognito 用户池。根据集成的完成方式,您可以使用 AccessToken
或 IdToken
来自集成的 Cognito 用户池。
撤销 token
您可以通过调用 GlobalSignOut 撤销在 Cognito 用户池中为您的帐户发行的所有代币。 API 并提供有效的 AccessToken
.由于此 API 是公开的,如果您拥有有效的 AccessToken
,则无需联系网站。 .
关于amazon-web-services - 在前端 javascript 中存储 aws cognito JWT key 不安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50509709/
查看“mysqldump -d”并看到一个键是 KEY,而不是“PRIMARY KEY”或“FOREIGN KEY” 什么是关键? 示例: CREATE TABLE IF NOT EXISTS `TA
在我开始使用 Python 的过程中尝试找出最佳编码实践。我用 Pandas 写了一个 csv 到数据框阅读器。它使用格式: dataframe = read_csv(csv_input, useco
在 Flutter 中,用一个例子可以清楚地解释什么? 我的困惑是关于 key,如下面的代码所示。 MyHomepage({Key key, this.title}) : super(key: key
我在我的 Android 应用程序中使用 GCM。要使用 GCM 服务,我们需要创建 Google API key 。因此,我为 android、服务器和浏览器 key 创建了 API key 。似乎
我想在 azure key 保管库中创建一个 secret ,该 key 将具有多个 key (例如 JSON)。 例如- { "storageAccountKey":"XXXXX", "Co
尝试通过带有 encodeforURL() 的 url 发送 key 时,我不断收到错误消息和 decodefromUrl() .代码示例如下。 这是我的入口页面: key = generateSec
是否有检查雪花变体字段中是否存在键的函数? 最佳答案 您可以使用 IS_NULL_VALUE 来查看 key 是否存在。如果键不存在,则结果将为 NULL。如果键存在,如果值为 JSON null,则
我正在尝试运行此命令: sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A 但我收到一个错误: Execu
我有一个 csv 文件,我正在尝试对 row[3] 进行计数,然后将其与 row[0] 连接 row[0] row[3] 'A01' 'a' 'B02'
如何编写具有这种形式的函数: A(key, B(key, C(key, ValFactory(key)))) 其中 A、B 和 C 具有此签名: TResult GetOrAdd(string key
审查 this method我很好奇为什么它使用 Object.keys(this).map(key => (this as any)[key])? 只调用 Object.keys(this).ind
我有一个奇怪的情况。我有一个字典,self.containing_dict。使用调试器,我看到了字典的内容,并且可以看到 self 是其中的一个键。但是看看这个: >>> self in self.c
我需要在我的 Google Apps 脚本中使用 RSA-SHA256 和公钥签署消息。 我正在尝试使用 Utilities.computeRsaSha256Signature(value, key)
我是 React 的初学者开发人员,几天前我看到了一些我不理解的有趣语法。 View组件上有{...{key}},我会写成 key={key} ,它完全一样吗?你有链接或解释吗? render()
代理 key 、合成 key 和人工 key 之间有什么区别吗? 我不清楚确切的区别。 最佳答案 代理键、合成键和人工键是同义词。技术关键是另一个。它们都表示“没有商业意义的主键”。它们不同于具有超出
问题陈述:在 Web/控制台 C# 应用程序中以编程方式检索并使用存储在 Azure Key Vault 中的敏感值(例如数据库连接字符串)。 据我所知,您可以在 AAD 中注册应用,并使用其客户端
问题陈述:在 Web/控制台 C# 应用程序中以编程方式检索并使用存储在 Azure Key Vault 中的敏感值(例如数据库连接字符串)。 据我所知,您可以在 AAD 中注册应用,并使用其客户端
我正在寻找 Perl 警告的解决方案 “引用键是实验性的” 我从这样的代码中得到这个: foreach my $f (keys($normal{$nuc}{$e})) {#x, y, and z 我在
我正在为 HSM 实现 JCE 提供程序 JCE中有没有机制指定 key 生成类型例如: session key 或永久 key KeyGenerator keygen = KeyGener
我在 Facebook 上创建了一个应用程序。我已经正确添加了 keyhash 并且应用程序运行良好但是当我今天来并尝试再次运行它时它给了我这个错误。 这已经是第二次了。 Previsouly 当我收
我是一名优秀的程序员,十分优秀!