【问题标题】:In AWS Cognito set temporary password for existing user and set status to "Enabled / FORCE_CHANGE_PASSWORD"在 AWS Cognito 中为现有用户设置临时密码并将状态设置为“启用/FORCE_CHANGE_PASSWORD”
【发布时间】:2019-10-20 06:07:10
【问题描述】:

是否有管理员 api 为现有用户设置临时密码并将帐户设置回“启用/FORCE_CHANGE_PASSWORD”?

我们正处于将旧 Winform 应用程序中的身份验证更改为使用 AWS Cognito 的早期阶段。我们不能指望拥有电子邮件或短信(工厂车间)的用户。我们在池中创建了新用户并提供了第一次临时密码。用户处于“启用/FORCE_CHANGE_PASSWORD”状态。我们对此进行了测试,当他们第一次使用临时密码登录时,我们会收到 Cognito 挑战,然后他们会进入输入新密码屏幕。

除了设置密码和帐户状态的 AdminCreateUser 之外,我找不到任何页面或文档。所有似乎都依赖于涉及经过验证的电子邮件或电话的流程。

我的“google-foo”可能已经关闭,所以问这个问题。

这是我们为添加用户而创建的控制台应用程序中的代码...

            var request = new AdminCreateUserRequest()
            {
                Username = user.COGNITO_ID,
                UserPoolId = COGNITO_POOL_ID_USEAST,
                TemporaryPassword = user.Password
            };

            var cognitoClient = new AmazonCognitoIdentityProviderClient(creds, Amazon.RegionEndpoint.USEast1);

            var result = cognitoClient.AdminCreateUserAsync(request).Result;

            return "User created as Enabled / FORCE_CHANGE_PASSWORD";

我可以删除并重新添加用户(他们没有属性)但想避免这种情况。

【问题讨论】:

    标签: c# vb.net amazon-cognito


    【解决方案1】:

    您可以使用AdminUpdateUserAttributesAccount Status 更新为 FORCE_CHANGE_PASSWORD。如果这不起作用,您可以简单地添加一个自定义属性,作为您要禁用的帐户的标志。然后你可以简单地添加一个 lambda post login 来检查这个标志并强制用户更改他的密码。

    【讨论】:

    • 谢谢@Ninad。我将查看帐户状态的 AdminUpdateUserAttributes。我认为最大的问题是我需要设置某种临时密码,就像添加新用户场景一样。
    • 您可以使用它来设置临时密码。 docs.aws.amazon.com/cognito-user-identity-pools/latest/… 我认为如果您选择临时,这将自动处理强制更改。试一试。
    • 根据文档,这正是它要做的。不需要 adminupdateuserattributes。
    • 这看起来正是我所需要的!今天试试这个。
    • Ninad Gaikwad 发现 AmazonCognitoIdentityProviderClient 中的 AdminSetUserPassword 方法正是我所需要的。将他的原始答案标记为正确 - 现在不知道如何将代码显示为示例。
    猜你喜欢
    • 2022-11-04
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2015-04-08
    • 2018-08-09
    相关资源
    最近更新 更多