为什么在Azure B2C迁移示例的this file中,MigrateUsersWithRandomPasswordAsync
方法同时调用了两个方法:
'b2CGraphClient.CreateAccount()'
和
table.Execute(insertOperation);
MigrateUsersWithPasswordAsync()
上方的方法几乎只执行完全相同的操作:
b2CGraphClient.CreateAccount()
答案 0 :(得分:0)
我曾考虑删除此问题,但是为了以防万一,我会留在这里。如果我会继续阅读有关如何迁移用户的教程found here,那么我会找到答案。
基本上,可以在本节的本教程中对其进行总结:
要跟踪密码更改,请使用Azure表。当您运行 使用命令行参数2进行预迁移过程,您将创建一个 Azure表中的用户实体。您的服务执行以下操作:
在登录时,Azure AD B2C策略调用您的迁移RESTful 服务,发送电子邮件作为输入声明。服务 在Azure表中搜索电子邮件地址。如果地址 存在,该服务将引发错误消息:您必须更改密码。
用户成功更改密码后,删除实体 从Azure表中。
对于可能仍然有挥之不去的问题的任何人,我都会感到沮丧:
使用临时密码迁移用户时,您需要为用户配置难以破解的随机密码,以使这些新帐户位于B2C中时,不会被黑客入侵。此临时随机密码不是您将发送给用户的密码,仅用于保护帐户。
在将用户添加到B2C帐户的同时,您还需要在名为“用户”的新Azure表中添加一个条目,该表仅包含用户的登录ID(意味着他们需要更改密码)。稍后,您将使用自定义登录策略,该策略将检查此表以查看该表中是否存在用户。如果是这样,他们将收到一条自定义消息,告诉他们更改密码并提供一个链接。实际上,该过程与“忘记密码”相同,该过程使用用户的电子邮件来帮助他们更改密码。
用户更改密码后,将删除他们在新Azure表中的条目,表示他们已更改了密码,并且将不再收到更改密码的消息。