AWS Cognito 用户如何更改密码 - 不是密码重置或强制更改,而是用户发起的更改?

问题描述 投票:0回答:1

我们有一个通过 OIDC 与 Cognito 配合使用的基本 JavaScript Web 应用程序。效果很好。用户可以注册并且他们的帐户位于 Cognito 中。它可以向用户发送确认电子邮件。它通过向用户发送恢复链接来非常轻松地处理密码重置。

但它不能做的一件事是允许用户更改自己的密码。假设用户决定需要一个新密码并想要更改它。似乎没有任何 Cognito Web 界面可以实现此目的。我意识到我可以添加一些 JavaScript 来执行 user.setPassword(newpassword) 操作。但随后我必须为此编写自己的 UI,更糟糕的是,这将绕过所有 Cognito 密码强度要求,或者,我必须构建一个 UI 来强制执行这些要求。 Cognito 的全部目的是让我不必再从事密码业务,但它似乎迫使我处理密码......

我意识到另一种选择是联合另一个 IdP 并让该 IdP 处理密码更改。例如,Google 用户可以登录 Google 并更改密码。但如果我这样做,我会完全跳过 Cognito 并使用 Google 作为我的 OIDC 提供商。 (更现实地说,我会使用像 Okta 这样的专用 OIDC 提供商。)

关于如何做到这一点有什么建议吗?让我感到惊讶的是,AWS 不知何故“忘记”允许用户更改密码,或者迫使开发人员重新回到密码业务,这是造成巨大问题的原因。

amazon-cognito
1个回答
0
投票

对此咨询了一些专家后,结论是:

  1. 您可以建议用户执行“密码重置”流程。这不好,因为这不是用户期望的流量。
  2. 您可以实现 ChangePassword API 调用。这需要用户管理范围,这是一个安全问题,并且需要实现整个更改密码屏幕。不是很好。我们的想法是我们不应该涉足密码业务。

就是这样。

Cognito 是为联合身份提供商而设计的,而不是为管理用户池而设计的。我们将把我们的系统切换到另一个身份提供商。

© www.soinside.com 2019 - 2024. All rights reserved.