问题标签 [cognito]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2264 浏览

amazon-web-services - serverless.yml 如何在 Cognito Lambda Config 中引用 lambda 函数

我对无服务器很陌生,我正在尝试从无服务器 yaml 文件为 Cognito 设置自定义挑战。我有以下功能

functions: t-challenge-define: handler: t-auth-challenge.define t-challenge-create: handler: t-auth-challenge.create t-challenge-response: handler: t-auth-challenge.verifyResponse resources: Resources: CognitoUserPool: Type: AWS::Cognito::UserPool Properties: UserPoolName: my_user_pool_name MfaConfiguration: "OFF" UsernameAttributes: - phone_number Schema: - Name: phone_number AttributeDataType: String Mutable: false Required: true - Name: locale AttributeDataType: String Mutable: true Required: true LambdaConfig: DefineAuthChallenge: (how do i reference func here)

0 投票
1 回答
1596 浏览

amazon-web-services - AWS Cognito 自定义身份验证 - 将元数据发送到挑战 lambda 函数

我正在开发一个自定义无密码身份验证来登录 Cognito 用户池。我将描述我正在尝试实现的内容,以防万一有什么愚蠢的。我希望用户输入他们的电子邮件地址,然后通过电子邮件收到一个神奇的登录链接,当他们点击该链接时,将被带回网站并登录。

这使用自定义身份验证 lambda 函数来定义/创建具有基于时间的密码的质询,并将其通过电子邮件发送给用户。我有几个问题:

问题 1)

当用户返回代码时,他们可能不在同一个浏览器/设备中,当然也不会在同一个选项卡中,因此他们没有会话,这意味着我需要再次调用 cognitoUser.initiateAuth。这将再次通过定义/创建挑战 lambdas,因此即使此时用户来自电子邮件链接,因此已经发送了第二封电子邮件。注意:创建挑战时,会话 id 在事件对象中不可用,而且我仅在最后 3 分钟内阅读了这些会话,而基于时间的密码将持续约 15 分钟,所以我认为我不能包含会话电子邮件中的 ID。

问题2)

您可以从几个地方(浏览器、android 应用程序等)登录,我希望能够将 url 或至少包含协议作为参数来控制电子邮件中发送的内容,例如,如果您在android 应用程序,那么您收到的电子邮件将是 myapp://login?code=xxx,如果您是在网络上完成的,它将是https://example.com/login?code=xxx

如果我能找到某种方法将自定义元数据发送到 DefineChallenge 和 CreateChallenge lambda,这样它就会出现在事件对象中,我似乎就能够实现这两者以正常工作。我认为将 ValidationData 添加到 AuthenticationDetails 对象可以做到这一点,但该信息不会出现在 Lambda fns 的事件对象中。

我发现的解决方法是为每种情况创建一个新的客户端 ID - 一个用于启动身份验证,一个用于兑换令牌,并为每个不同的协议重复。但这很快就会有很多客户 ID - 维护起来很痛苦而且很笨拙。

所以 tl;dr 是:我想在 JS 中从我的 cognitoUser.initiateAuth(...) 调用发送自定义元数据,并让它在我的定义/创建挑战 lambda fns 中可用。

0 投票
1 回答
450 浏览

amazon-web-services - 如何为特定 Cognito 身份的 SQS 队列创建 IAM 策略

我正在尝试创建要应用于 SQS 队列的 IAM 策略。该策略应将对队列的访问限制为单个 Cognito 联合身份。

我从亚马逊找到了这个关于如何实现这一点的参考,但是在将策略应用到 SQS 队列时遇到了问题。

这是我要申请的政策。

用于编辑策略的在线 UI 显示在审核屏幕中:

一旦我按下应用,就会出现以下错误:

我不确定政策出了什么问题。我正在寻找任何帮助来修复策略或实现将 SQS 队列限制为单个 Cognito 身份的不同策略。

0 投票
0 回答
2918 浏览

python - AWS Cognito / React 前端 / Django Rest 后端的最佳模式

努力让这个完全正常工作 - 这是我的应用程序工作流程:

React 前端 - 用户直接使用 Cognito 进行身份验证(使用 AWS Amplify) - 我的工作正常。前端需要处理这个问题,因为它对其他 AWS 服务进行单独的直接调用。

DRF 后端 - React 然后使用 Amplify.API 对 DRF 端点进行 API 调用,其中包括请求标头中的 x-amz-security-token(这似乎是 Amplify 调用 cognito-idp 服务返回的会话令牌)。所以现在后端有会话令牌(但没有访问令牌或刷新令牌)

然后,后端只需验证前端用户(我假设其经过身份验证的身份由会话令牌表示)是根据 Cognito 的有效且当前经过身份验证的用户。所以后端需要单独调用 Cognito 来验证这一点。

这是我失败的地方 - 我查看了 django-warrant,但我无法从文档中辨别这是否适合我的用例(甚至如何真正使用它 - 建议的默认设置会导致各种boto3 错误,缺少凭据等)。我还查看了保证,并直接查看了 boto3 和 botocore,但我不清楚在哪里使这一切发生。我是否错过了在这些库中看到某种 is_user_valid 和 is_session_token_valid 方法?

如果有人知道如何使用 django-warrant 直接执行此操作,它会有所帮助,如果不是关于最佳前进方式的一点建议,也将不胜感激(我是否编写自己的身份验证支持或中间件来拦截请求,以某种方式进行身份验证 w / boto3 或 botocore,还是什么?)

非常感谢

0 投票
0 回答
77 浏览

ios - AWS Cognito 登录,无响应

我不想使用 AWSCognito UI,因此我在 GitHub 上找到了一些关于登录独立于 UI 的工作。但是,当我实施它时,没有响应,也没有任何反应。

代码:

0 投票
1 回答
483 浏览

filebeat - 来自 filebeat 的 Cognito 身份验证

我使用此博客为 AWS Kibana 添加了安全性。Kibana 现在是安全的,我必须使用用户池中的用户登录。但是现在 filebeat 不能再写入弹性搜索端点了。我尝试将用户名和密码添加到 filebeat 配置,但我仍然得到Failed to connect: 403 Forbidden。如果我删除 Cognito 身份验证 filebeat 可以再次写入。

对此的任何帮助将不胜感激

0 投票
1 回答
366 浏览

authentication - 自定义 Web 应用程序中的 AWS Cognito 社交提供商

我正在尝试将身份验证集成到我的 Web 应用程序中。
按照Cognito文档,我已经成功地创建了一个具有用户名和密码身份验证以及 facebook 提供程序的服务。

一遍又一遍地阅读文档,我无法在自定义网页中找到社交提供者身份验证的示例。
似乎只有他们托管的网页与这些服务集成。

如何集成Cognito到自定义 Web 应用程序中?
我想使用用户名 + 密码和 Facebook 身份验证创建一个不同的页面(无法从有限的托管 UI 自定义它)。

0 投票
1 回答
2429 浏览

jmeter - 如何为 AWS cognito 登录编写 Jmeter 脚本

我正在尝试创建 jmeter 脚本以登录 iphone 本机应用程序。应用程序正在使用 cognito 对用户进行身份验证。作为应用程序第一页的响应,我得到了 SALT 和 Secret 块。我在下一个请求中传递了这个秘密块和其他必需的参数,但是我收到错误消息,因为“用户名或密码正确”。

有没有人在类似的事情上成功地工作过可以帮助我的事情。

0 投票
1 回答
267 浏览

amazon-cognito - 使用 AWS Coginito 内置网页进行身份验证

我正在使用 AWS Cognito 内置网页构建身份验证。

(我正在使用 Cognito 用户池和身份池,没有任何其他提供者)

Cognito 网页返回给我一个令牌(idtoken),我把它放在了 cookie 中。

当我尝试使用此令牌获取凭据时,使用以下代码:

我收到此错误:

我怎么解决这个问题?

我是否错过了获取凭据之间的一些步骤?

可能是我想念 Cognito 配置中的某些东西吗?

0 投票
1 回答
4114 浏览

react-native - AWS-Amplify:此身份池不支持未经身份验证的访问

我正在使用:https ://github.com/aws-amplify/amplify-js

是否有任何工作示例如何使用经过身份验证的 AWS 访问?我正在使用这个:

如果没问题(没问题):

但我不断得到:

[未处理的承诺拒绝:NotAuthorizedException:此身份池不支持未经身份验证的访问。]