标签: aws-userpools

自定义属性未传递到 AWS Cognito 创建的 ID_TOKEN

用户成功登录后,我无法从 AWS Cognito 返回的ID_TOKEN 中获取自定义属性

我试过的步骤:

1.创建用户池 2.创建应用客户端并检查自定义属性(customattrib1,customattrib2

用户池屏幕:

在此处输入图片说明

检查应用程序客户端配置中的自定义属性

在此处输入图片说明

3.使用admin-create-user api创建用户

下图显示了用户属性的值:

在此处输入图片说明

4.在客户端应用程序中使用 aws-cognito-auth.js 登录的用户。返回的 ID 令牌不包含自定义属性。

ID_TOKEN

{
  "at_hash": "PKfjYDaiEty5mUOyJZlPQA",
  "sub": "639d5016-2bd3-4c6f-b82d-21ae38071b09",
  "email_verified": true,
  "iss": "https://cognito-idp.ap-south-1.amazonaws.com/ap-south-1_XXXXXXX",
  "phone_number_verified": true,
  "cognito:username": "testuser",
  "aud": "XYXYXYXYX",
  "token_use": "id",
  "auth_time": 1549349674,
  "phone_number": "##########",
  "exp": 1549353274,
  "iat": 1549349674,
  "email": "testuser@somedomain.com"
}
Run Code Online (Sandbox Code Playgroud)

我已经检查了下面的链接,其中包含有关此问题的一些信息,但到目前为止没有任何帮助。

在池创建后添加 Cognito 自定义属性?

如果用户池配置了 SAML 身份提供者,则 Cognito 用户池自定义属性不会显示在 ID 令牌中

如果用户池配置了 SAML 身份提供者,则 Cognito 用户池自定义属性不会显示在 ID 令牌中

https://www.reddit.com/r/aws/comments/a07dwg/cognito_add_custom_attribute_to_jwt_token/

请帮我弄清楚我是否遗漏了什么..

amazon-web-services openid-connect amazon-cognito aws-sdk aws-userpools

22
推荐指数
2
解决办法
7343
查看次数

如何将 AWS Cognito 用户池用户存储在数据库中(例如 DynamoDB)?

在我看来,“AWS Cognito”是“AWS 的 IdentityServer”。我做了一个 POC - 通过注册 API 调用创建了用户。在 AWS Cognito 用户池中创建用户并返回访问令牌。但是,为了关联事物,我想在 DynamoDB 的用户表中而不是在用户池中创建用户。

预期场景:

1) 新用户 --> 注册 --> AWS Cognito --> DynamoDB 中添加新用户记录 --> AWS Cognito 返回访问令牌

2) 现有活动用户 --> 登录 --> AWS Cognito --> 从 DynamoDB 检索用户详细信息 --> AWS Cognito 返回访问令牌

Qn -1:类似于在 SQL Server 数据库表中创建 IdentityServer 用户。这可以在 AWS Cognito 中完成吗?可以绕过用户池并从数据库中获取用户数据吗?即使没有绕过,用户池是否可以从数据库表映射其用户?

Qn - 2:用户池用户存储在哪里?最终在数据库中的某个地方?

注意:以下问题看起来与我的相似,但尚未回答:

用户会话并将 aws cognito 用户存储在本地数据库中

amazon-dynamodb amazon-cognito identityserver4 aws-userpools

11
推荐指数
1
解决办法
6123
查看次数

配置Cognito用户池以使用SES发送电子邮件

今天早上,我在用户池设置中发现了一条以前从未注意到的警报:

在此处输入图片说明

我看着设置屏幕,有一个单选按钮:

在此处输入图片说明

我已经有一个发件人地址。如何使用CloudFormation将该设置设置为“是”?

Cognito CloudFormation文档看起来是这样的:

Type: AWS::Cognito::UserPool
Properties:
  AdminCreateUserConfig: 
    AdminCreateUserConfig
  AliasAttributes: 
    - String
  AutoVerifiedAttributes: 
    - String
  DeviceConfiguration: 
    DeviceConfiguration
  EmailConfiguration: 
    EmailConfiguration
  EmailVerificationMessage: String
  EmailVerificationSubject: String
  LambdaConfig: 
    LambdaConfig
  MfaConfiguration: String
  Policies: 
    Policies
  Schema: 
    - SchemaAttribute
  SmsAuthenticationMessage: String
  SmsConfiguration: 
    SmsConfiguration
  SmsVerificationMessage: String
  UsernameAttributes: 
    - String
  UserPoolName: String
  UserPoolTags: 
    String: String
Run Code Online (Sandbox Code Playgroud)

EmailConfiguration是我在其中设置发件人地址的地方,我想也许他们在此添加了该地址,但是EmailConfiguration文档似乎也没有任何内容。

知道如何配置Cognito用户池以将SES用于电子邮件吗?

amazon-web-services amazon-ses aws-cloudformation amazon-cognito aws-userpools

10
推荐指数
1
解决办法
622
查看次数

AWS Cognito 用户池的服务器发现终端节点(众所周知的 url)是什么?

OpenID 提供商在众所周知的 URL 上发布其元数据。在 Okta 中,它看起来像这样:https://dev-599740.okta.com/oauth2/default/.well-known/oauth-authorization-server AWS Cognito 用户池是否有类似的 URL?如果不是,我如何找到 AWS Cognito 用户池的以下端点?

  1. 客户端注册端点
  2. 自省端点
  3. 令牌撤销端点

amazon-web-services amazon-cognito aws-api-gateway ibm-api-management aws-userpools

10
推荐指数
1
解决办法
7874
查看次数

AWS Cognito UI 在调用回调页面时使用哈希来包含参数

我在使用 AWS Cognito 提供的 UI 时遇到问题。

当我尝试使用提供的 UI 时,我使用填充的 URL 调用端点:

https://mydomain.auth.ap-northeast-1.amazoncognito.com/login?response_type=token&client_id=123456789&redirect_uri=http://localhost:3000/callback/

现在的问题是,在身份验证后,Cognito 使用 # 发回所需的参数。结果如下所示:

http://localhost:3000/callback/#id_token=eyJragIsm2PqVpw&access_token=eyJraWQiOiJ&expires_in=3600&token_type=Bearer

我很难在我的回调页面(这是一个 vue 应用程序)中读取 id_token 和 access_token。

如何配置 Cognito 以使用通常的问号 (?) 来传递查询字符串,或者,如何在哈希 (#) 后读取传递的参数。

我很感激你在这方面的建议。

vue.js vue-router vuejs2 aws-cognito aws-userpools

9
推荐指数
1
解决办法
968
查看次数

如何从AWS Cognito用户池检查用户密码?

我需要检查用户提供的输入是否与当前密码(来自 Cognito 用户池)匹配。我正在实现一个确认对话框,要求用户再次提供密码(用户必须登录才能访问此功能),并检查它是否有效。

我在 Android 上使用适用于 Java 的 AWS 开发工具包,当前的实现执行以下操作:

getUserPool() // com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool
    .getCurrentUser()
    .changePasswordInBackground(
        password, // oldUserPassword
        password, // newUserPassword
        new GenericHandler() {
            @Override
            public void onSuccess() {
                // provided password is correct
            }
            @Override
            public void onFailure(Exception e) {
                // provided password is incorrect
            }
        }
    );
Run Code Online (Sandbox Code Playgroud)

然而,这感觉像是一种黑客行为,并且受到失败尝试限制的影响,这使得自动化一些测试用例变得不可行。

SDK 中是否有可以用于此目的的 API?

谢谢你!

java android amazon-web-services amazon-cognito aws-userpools

8
推荐指数
0
解决办法
5880
查看次数

无法在新用户池中配置 From 电子邮件

我正在配置一个新的 Cognito 用户池。我有一个经过验证的电子邮件地址,我正在使用它,但是当我尝试创建用户池时,我收到以下错误,但没有提示哪个参数无效:

Cannot configure From email address for default email configuration (Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: InvalidParameterException*'*
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

amazon-cognito aws-userpools

8
推荐指数
2
解决办法
2302
查看次数

Cognito 保存用户池中的更改不起作用

我们正在使用 cognito 用户池进行身份验证,并且我在MFA 和验证下启用了电子邮件验证,因此一段时间后我尝试通过取消选中电子邮件复选框来删除该验证,我总是收到错误消息您的角色仍在创建中。请稍候再试。我等了一周,问题仍然存在。我只需要取消选中电子邮件验证。先感谢您。

amazon-web-services email-verification amazon-cognito aws-userpools

7
推荐指数
1
解决办法
2795
查看次数

如何通过在 AWS CloudFormation YAML 模板中连接参数值和字符串来动态创建资源(用户池)名称?

我正在尝试使用 YAML 创建 AWS CloudFormation 模板。我添加一个 UserPool 资源,如下所示。用户池名称和 ID 应通过参数值获取,即,如果参数 paramUserPoolName 的值为“Sample”,则:

用户池名称 = 示例

UserPool 资源名称 = SampleUserPool 即“paramUserPoolName + UserPool”的串联值

Parameters:
  paramUserPoolName:
    Type: String
Resources:
  <I need 'paramUserPoolName + UserPool' here >:
    Type: 'AWS::Cognito::UserPool'
    Properties: {
        "UserPoolName": paramUserPoolName
    }
Run Code Online (Sandbox Code Playgroud)

如何在 CloudFormation 模板中动态创建资源 id?

附:

以下工作有效:

    Resources:
     SampleUserPool:
      Type: 'AWS::Cognito::UserPool'
      Properties:
       UserPoolName: !Sub ${paramUserPoolName}UserPool
Run Code Online (Sandbox Code Playgroud)

aws-cloudformation amazon-cognito aws-userpools

7
推荐指数
1
解决办法
3836
查看次数

无法找到 AWS Cognito 托管 UI 服务器 IP 地址

我一直在尝试按照https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-中的文档设置我的 Cognito 用户池和托管 UI 登录网页应用程序集成.html

\n\n

按照信中的步骤操作,但是,当我尝试启动登录网页时,它似乎不起作用

\n\n
\n

无法访问此站点\xe2\x80\x99\n {myprefix}.auth.us-west-2.amazoncognito.com\xe2\x80\x99s 找不到服务器 IP 地址。

\n
\n\n

我从应用程序集成 -> 应用程序客户端设置 -> 启动托管 UI 按钮调用它,因此无需对看起来像这样的 URL 进行操作https://{myprefix}.auth.us-west-2.amazoncognito.com/login?client_id=<some_client_id>&response_type=code&scope=aws.cognito.signin.user.admin+email+openid+phone+profile&redirect_uri=https://mybucket.s3-us-west-2.amazonaws.com/index.html

\n\n

我缺少什么吗?

\n

amazon-web-services amazon-cognito aws-userpools

7
推荐指数
1
解决办法
2049
查看次数