联合用户注册并链接到 Cognito 中的本地用户后,如何自动将 email_verified 设置为 True?

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

有一个用户池、其中的本地用户和一些联合身份提供商(在我的例子中是用于 Azure 的 SAML)。还有一些在预注册触发器上设置的 Lambda 函数,它使用 admin_link_provider_for_user 将新的联合用户链接到现有的本地用户(并提供相关权限)。当分配用户时,无论本地用户 email_verified 状态如何,结果都是 False。有没有办法让它自动为真?

我尝试将其设置为:

event['response']['autoVerifyEmail'] = True

event['request']['userAttributes']['email_verified'] = True

在 Lambda 函数中,还使用了从同一个 Lambda 到 email_verified 的

admin_update_user_attributes
,但这两种方式都不起作用。

有什么想法让它发挥作用吗?

aws-lambda amazon-cognito aws-userpools
1个回答
0
投票

这是因为对于联合用户来说,该值来自属性映射。

当您将联合身份链接到本机 Cognito 用户时,属性将被合并并且:

  • 如果在两个身份中都设置了某个属性,则较新的值优先。
  • 如果在一个身份中设置了某个属性,则该值是最终的值。

作为联合用户,没有映射到

email_verified
,合并的值来自本机 Cognito 用户。

至于合并您使用的 AdminLinkProviderForUser 调用,请在绑定到联合身份的本机 Cognito 用户上执行 AdminUpdateUserAttributes 调用后立即执行此操作,以将

email_verified
属性更新为
true

作为一个理由,

event['response']['autoVerifyEmail'] = True
适用于本机 Cognito 用户注册控制,而不是联合。

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