我一直在具有托管“登录”页面的Userpool上使用SAML身份联盟。我同时配置了Azure Active Directory和cognito用户池,以便可以使用AD用户登录。我以类似的方式添加了多个SAML提供程序,并且可以正常工作。当我使用通过从电子邮件中提取域名来登录到相应IDP的Identifiers属性时,就会出现问题。我遵循了本文档。这就是在AWS控制台中的外观。
现在,当我尝试使用AD用户电子邮件登录时,出现了“不允许登录”错误。当我不使用此标识符可选参数时,它运行良好。
有人可以帮我解决这个问题吗?
我有 Cognito 设置,支持多个身份提供商(Cognito 用户池、Facebook 和 Google)登录。在我的用户池配置中,我将电子邮件用作用户名。所需的功能是让用户名在所有身份提供者中都是唯一的。即如果用户使用 Facebook 登录并且他们的 facebook 电子邮件是“user@test.com”,然后他们使用 Google 登录并且他们的谷歌电子邮件是“user@test.com”,那么他们应该无法登录或他们的联合身份应该合并。
这是连接设备的用户管理。我不希望用户在登录 Facebook 时设置一些设备,然后使用 Google 登录并且无法从他们的 Facebook 帐户看到他们的设备。
我知道这会变得很复杂,因为您只需一个电话号码就可以创建一个 Facebook 帐户。
我知道 Cognito 用户池中有一个预身份验证触发器,但是当我使用联合身份登录时它似乎没有触发。无论我使用哪个身份提供者(用户池、Facebook、谷歌),是否有我可以使用的触发器?
谢谢,
我正在为我的ses地区使用专用IP。但是由于某些原因,我没有收到来自该专用IP的邮件。
我已禁用专用IP池的自动预热过程。据我了解,所有邮件都应来自专用ip。但是它没有发生。
我正在使用Amazon Cognito用户池进行用户管理,并希望从我们拥有的专用IP接收Inviation并忘记密码电子邮件。
我有 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 进行硬编码之外,还有其他解决办法吗?
当我尝试执行“放大推送”时,此错误消息显示在我的 ide 控制台中。
\n\xc3\x97 将资源推送到云时发生错误\n@auth 指令并找到“userPools”提供程序,但项目没有配置 Cognito 用户池身份验证提供程序。
\n有人可以帮我解决这个问题吗?
\n我正把头撞在墙上,试图弄清楚这个问题。我的反应应用程序中有下面的代码。我需要添加某种方式让用户添加单元/公寓号,因此我添加了一个自定义属性。
一切正常,但是当我包含时apt_number: this.state.unitNumber,出现错误{code: "NotAuthorizedException", name: "NotAuthorizedException", message: "A client attempted to write unauthorized attribute"}。
我确实进入了我的设置并使属性可写(我尝试了两个属性Unit和apt 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)
到底是怎么回事?
我正在使用无服务器框架来部署 AWS 资源(用户池、身份池、Dynamo 表)。我知道一旦创建了用户池(以及类似的 Dynamo 索引),您就不能对其进行更改。我想知道更新这些类型的资源而不删除用户/数据的最佳实践是什么?值得庆幸的是,无服务器在部署时发现了问题
不允许更新属性 - UserPoolName
但我听说有人因不小心更新用户池而删除用户。
有什么建议么?
amazon-web-services amazon-cognito serverless-framework aws-userpools
我们可以更改 AWS Cognito 托管的 UI HTML 吗?我创建了自己的登录页面,我想将其用作登录功能的托管 UI。
我尝试过 CSS 自定义,这是可能的,但无法更改 AWS Cognito 托管 UI 的 HTML。我也尝试联系 AWS 支持团队,但没有得到任何回复。
感谢帮助?
我正在尝试使用 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.html和https://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
我正在使用 AWS Cognito 用户池来保护我的 Web 应用程序、移动应用程序和 API。我有一个定义了角色和权限的数据库。我想在登录过程中将“角色”添加到访问令牌,这样我就不需要进行数据库调用来检查用户角色。
我将无法使用 Cognito 自定义属性,因为人们可以从前端创建自定义角色,并且所有这些信息都保存在数据库中。
我已将用户池设置为使用电子邮件作为用户标识符(也配置为需要电子邮件验证)。每个主要操作/流程(登录、注册、更改密码、重置密码)似乎都按预期正常工作。
一件重要的事情并不像人们想象的那样有效,那就是改变电子邮件流:
当请求更改电子邮件时,Cognito 按预期将验证码发送到新电子邮件,但它还会在验证之前将电子邮件更新为新值。
当例如:新电子邮件输入错误(因此验证码永远不会到达)并且用户忘记其密码时,这会导致问题。似乎没有办法从中恢复。我是否遗漏、配置错误或滥用了某些内容?我做了一个最小的用户池自定义(可能不区分大小写除外)。
AWS 允许在验证之前更改电子邮件的原因是什么(即使 Cognito 实际上需要在注册期间、创建帐户之前进行验证)?
是否缺少一些用户池配置设置(或amba)或本地 SDK 设置?
顺便说一句:我使用AWSMobileClientiOS SDK 作为客户端,但这可能并不重要(?)。
下面是代码:
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
aws-userpools ×12
amazon-cognito ×10
aws-amplify ×2
access-keys ×1
amazon-ses ×1
aws-cdk ×1
aws-lambda ×1
cognito ×1
facebook ×1
java ×1
python ×1
reactjs ×1
terraform ×1