标签: aws-userpools

Cognito托管的UI中的可选标识符不起作用

我一直在具有托管“登录”页面的Userpool上使用SAML身份联盟。我同时配置了Azure Active Directory和cognito用户池,以便可以使用AD用户登录。我以类似的方式添加了多个SAML提供程序,并且可以正常工作。当我使用通过从电子邮件中提取域名来登录到相应IDP的Identifiers属性时,就会出现问题。我遵循了文档。这就是在AWS控制台中的外观。

在此处输入图片说明

现在,当我尝试使用AD用户电子邮件登录时,出现了“不允许登录”错误。当我不使用此标识符可选参数时,它运行良好。

在此处输入图片说明

有人可以帮我解决这个问题吗?

amazon-web-services cognito aws-userpools

5
推荐指数
1
解决办法
293
查看次数

防止联合登录中出现重复的用户名

我有 Cognito 设置,支持多个身份提供商(Cognito 用户池、Facebook 和 Google)登录。在我的用户池配置中,我将电子邮件用作用户名。所需的功能是让用户名在所有身份提供者中都是唯一的。即如果用户使用 Facebook 登录并且他们的 facebook 电子邮件是“user@test.com”,然后他们使用 Google 登录并且他们的谷歌电子邮件是“user@test.com”,那么他们应该无法登录或他们的联合身份应该合并。

这是连接设备的用户管理。我不希望用户在登录 Facebook 时设置一些设备,然后使用 Google 登录并且无法从他们的 Facebook 帐户看到他们的设备。

我知道这会变得很复杂,因为您只需一个电话号码就可以创建一个 Facebook 帐户。

我知道 Cognito 用户池中有一个预身份验证触发器,但是当我使用联合身份登录时它似乎没有触发。无论我使用哪个身份提供者(用户池、Facebook、谷歌),是否有我可以使用的触发器?

谢谢,

facebook amazon-web-services amazon-cognito aws-userpools

5
推荐指数
0
解决办法
265
查看次数

如果禁用了自动预热,如何使用ses专用IP?

我正在为我的ses地区使用专用IP。但是由于某些原因,我没有收到来自该专用IP的邮件。

我已禁用专用IP池的自动预热过程。据我了解,所有邮件都应来自专用ip。但是它没有发生。

我正在使用Amazon Cognito用户池进行用户管理,并希望从我们拥有的专用IP接收Inviation并忘记密码电子邮件。

amazon-ses amazon-cognito aws-userpools

5
推荐指数
1
解决办法
72
查看次数

循环依赖地形

我有 terraform 的循环依赖问题。我有一个user_pool调用 lambda 的用户池user_signup_lambda,当用户注册时,它此 lambda 还需要用户池的 Id 作为环境变量。

我的地形看起来像这样

resource "aws_lambda_function" "user_signup_lambda" {
  function_name = "user_signup_lambda"
  filename = var.file_name
  source_code_hash = filebase64sha256(var.file_name)
  handler = var.handler
  runtime = var.runtime
  memory_size = var.memory_size
  timeout = var.timeout
  role = var.iam_role_arn

  environment {
    variables = aws_cognito_user_pool.user_pool.id
  }
}

resource "aws_cognito_user_pool" "user_pool" {
  name = "some-user-pool"

  ....other config

  lambda_config {
     post_confirmation = module.user_signup_lambda.arn
  }
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

Error: Cycle: module.user_signup_lambda.var.environment_variables, module.user_signup_lambda.aws_lambda_function.lambda_function, module.user_signup_lambda.output.arn, aws_cognito_user_pool.user_pool
Run Code Online (Sandbox Code Playgroud)

除了对用户池 ID 进行硬编码之外,还有其他解决办法吗?

amazon-cognito aws-lambda terraform aws-userpools

5
推荐指数
1
解决办法
1719
查看次数

找到带有“userPools”提供程序的 @auth 指令,但该项目没有配置 Cognito 用户池身份验证提供程序

当我尝试执行“放大推送”时,此错误消息显示在我的 ide 控制台中。

\n

\xc3\x97 将资源推送到云时发生错误\n@auth 指令并找到“userPools”提供程序,但项目没有配置 Cognito 用户池身份验证提供程序。

\n

有人可以帮我解决这个问题吗?

\n

aws-amplify aws-userpools

5
推荐指数
1
解决办法
3054
查看次数

React Cognito 用户池 - 客户端尝试写入未经授权的属性

我正把头撞在墙上,试图弄清楚这个问题。我的反应应用程序中有下面的代码。我需要添加某种方式让用户添加单元/公寓号,因此我添加了一个自定义属性。

一切正常,但是当我包含时apt_number: this.state.unitNumber,出现错误{code: "NotAuthorizedException", name: "NotAuthorizedException", message: "A client attempted to write unauthorized attribute"}

我确实进入了我的设置并使属性可写(我尝试了两个属性Unitapt number

这是我的代码:

const receivedNewUser = await Auth.signUp({
  username: this.state.email,
  password: this.state.password,
  attributes: {
    phone_number: this.state.phone,
    address: this.state.streetAddress,
    birthdate: this.state.dob,
    locale: this.state.zipCode,
    given_name: this.state.fname,
    family_name: this.state.lname,
    apt_number: this.state.unitNumber,
  },
});
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?

在此输入图像描述

reactjs amazon-cognito aws-amplify aws-userpools

4
推荐指数
1
解决办法
1785
查看次数

更新 Cognito 用户池/AWS 资源

我正在使用无服务器框架来部署 AWS 资源(用户池、身份池、Dynamo 表)。我知道一旦创建了用户池(以及类似的 Dynamo 索引),您就不能对其进行更改。我想知道更新这些类型的资源而不删除用户/数据的最佳实践是什么?值得庆幸的是,无服务器在部署时发现了问题

不允许更新属性 - UserPoolName

但我听说有人因不小心更新用户池而删除用户。

有什么建议么?

amazon-web-services amazon-cognito serverless-framework aws-userpools

4
推荐指数
1
解决办法
2334
查看次数

是否可以更改 AWS cognito 托管的 UI?

我们可以更改 AWS Cognito 托管的 UI HTML 吗?我创建了自己的登录页面,我想将其用作登录功能的托管 UI。

我尝试过 CSS 自定义,这是可能的,但无法更改 AWS Cognito 托管 UI 的 HTML。我也尝试联系 AWS 支持团队,但没有得到任何回复。

感谢帮助?

amazon-web-services amazon-cognito aws-userpools

2
推荐指数
1
解决办法
7440
查看次数

无效的 AttributeDataType 输入,考虑使用提供的 AttributeDataType 枚举

我正在尝试使用 aws cdk 创建 aws cognito 用户池。下面是我的代码 -

user_pool = _cognito.UserPool(
    stack,
    id="user-pool-id",
    user_pool_name="temp-user-pool",
    self_sign_up_enabled=True,
    sign_in_aliases={
        "username": False,
        "email": True
    },
    required_attributes={
        "email": True
    }   
)
Run Code Online (Sandbox Code Playgroud)

我想在用户池中为电子邮件设置“属性”部分。但上面的代码给了我这个例外 -

Invalid AttributeDataType input, consider using the provided AttributeDataType enum. (Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: InvalidParameterException; Request ID:
Run Code Online (Sandbox Code Playgroud)

我尝试了很多场景,但没有奏效。我在这里错过了什么。任何帮助,将不胜感激。谢谢!我指的是这个 AWS 文档来创建用户池 - https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_cognito/UserPool.htmlhttps://docs.aws.amazon.com/ cdk/api/latest/python/aws_cdk.aws_cognito/RequiredAttributes.html#aws_cdk.aws_cognito.RequiredAttributes

python amazon-web-services amazon-cognito aws-userpools aws-cdk

2
推荐指数
1
解决办法
1056
查看次数

将自定义角色添加到 AWS Cognito 用户池访问令牌

我正在使用 AWS Cognito 用户池来保护我的 Web 应用程序、移动应用程序和 API。我有一个定义了角色和权限的数据库。我想在登录过程中将“角色”添加到访问令牌,这样我就不需要进行数据库调用来检查用户角色。

我将无法使用 Cognito 自定义属性,因为人们可以从前端创建自定义角色,并且所有这些信息都保存在数据库中。

openid-connect amazon-cognito aws-userpools

2
推荐指数
1
解决办法
1325
查看次数

AWS Cognito 更改电子邮件 - 更新前需要验证

我已将用户池设置为使用电子邮件作为用户标识符(也配置为需要电子邮件验证)。每个主要操作/流程(登录、注册、更改密码、重置密码)似乎都按预期正常工作。

一件重要的事情并不像人们想象的那样有效,那就是改变电子邮件流:

当请求更改电子邮件时,Cognito 按预期将验证码发送到新电子邮件,但它还会在验证之前将电子邮件更新为新值。

当例如:新电子邮件输入错误(因此验证码永远不会到达)并且用户忘记其密码时,这会导致问题。似乎没有办法从中恢复。我是否遗漏、配置错误或滥用了某些内容?我做了一个最小的用户池自定义(可能不区分大小写除外)。

AWS 允许在验证之前更改电子邮件的原因是什么(即使 Cognito 实际上需要在注册期间、创建帐户之前进行验证)?

是否缺少一些用户池配置设置(或amba)或本地 SDK 设置?

顺便说一句:我使用AWSMobileClientiOS SDK 作为客户端,但这可能并不重要(?)。

amazon-cognito aws-userpools

2
推荐指数
1
解决办法
5009
查看次数

如何配置AWS用户认知身份验证流程以在Java sdk后端生成身份令牌、访问令牌?

  1. 我正在使用 AWS Cognito 身份验证进行签名机制。为了获取凭证(访问、秘密和会话令牌),我们需要获取身份令牌。
  2. 我有用户名、密码、clientId、userPoolId、identityPoolId 信息。但是,当我尝试使用 USER_PASSWORD_AUTH 作为身份验证流类型生成 id 令牌时,出现以下错误 原因 为:com.amazonaws.services.cognitoidp.model.AWSCognitoIdentityProviderException:缺少身份验证令牌(服务:AWSCognitoIdentityProvider;状态代码:400;错误代码:MissingAuthenticationTokenException;请求 ID:;代理:null)

下面是代码:

AnonymousAWSCredentials awsCreds = new AnonymousAWSCredentials();

    AWSCognitoIdentityProvider provider = AWSCognitoIdentityProviderClientBuilder.standard()
            .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
            .withRegion(//region)
            .build();
           

    AdminInitiateAuthRequest authRequest = new AdminInitiateAuthRequest()
            .withAuthFlow(AuthFlowType.USER_PASSWORD_AUTH)
            .withClientId("")
            .withUserPoolId("")
            .withAuthParameters(map);
    Map<String,String> map = new HashMap<>();
    map.put("USERNAME","");
    map.put("PASSWORD","");
Run Code Online (Sandbox Code Playgroud)

这里的地图将有用户名和密码。

有人可以帮助了解如何在 Java 中配置身份验证以生成 id 令牌和访问令牌吗?提前致谢!!

java authentication access-keys amazon-cognito aws-userpools

0
推荐指数
1
解决办法
2558
查看次数