我正在为以下对象设置 Amazon Cognito使用 Kibana 实例的身份验证。我只允许管理员创建用户,并且只允许 Cognito 用户池身份提供商。创建用户池时,我将多重身份验证设置为“必需”,并仅启用“基于时间的一次性密码”选项。我使用 Amazon Cognito 域作为登录页面。
当我从 AWS 控制台创建 Cognito 用户时,我会通过电子邮件发送邀请。当转到 Kibana URL 时,服务器会按预期重定向到 Cognito 登录页面。使用电子邮件中的临时密码登录后,用户需要更改密码,然后再次尝试登录。
问题在于需要 MFA,但用户没有机会设置 TOTP 应用程序。我本以为 TOTP 设置会遵循所需的密码更改。相反,Cognito 拒绝登录,因为未启用 MFA:
您必须设置多重身份验证 (MFA) 才能登录。请设置 MFA 并重试。
在 AWS 控制台中管理用户会显示一个启用选项短信MFA。但是,我没有使用 SMS。
这TOTP 软件令牌 MFA 文档状态:
当您的用户选择 TOTP 软件令牌 MFA 时,请调用关联软件代币返回为用户帐户生成的唯一共享密钥代码。此 API 方法的请求需要访问令牌或会话字符串,但不能同时使用两者。为方便起见,您可以将密钥分发为快速响应 (QR) 码。
但这听起来像是我需要在用户“选择” TOTP 后以某种方式进行 API 调用。我没有编写自己的可以进行 API 调用的应用程序 - 此身份验证仅用于访问 Amazon Elasticsearch Service 提供的 Kibana 实例。
用户如何初始化TOTP以便按要求使用它完成登录?