WSO2IS-升级现有部署的PasswordDigest属性

WSO2IS-升级现有部署的PasswordDigest属性,wso2,wso2is,Wso2,Wso2is,我们打算更改user-mgt.xml文件的摘要属性,以更改密码的存储方式(WSO2IS 5.3.0) 。。。 沙 沙 假的 ... 我很好奇WSO2IS是否会自动处理现有用户的升级,或者我是否需要遵循与所述流程类似的流程 编辑:我还将注意到,我们也将开始添加密码。到目前为止,我的方法(再次假设wso2不会自动处理此问题)将是在基本身份验证器之前添加一个新的本地身份验证器,以无盐更新密码。编写自定义本地身份验证器可能不是您的最佳解决方案,但您可以根据给定的要求选择以下选项 使用新的Passwo

我们打算更改user-mgt.xml文件的摘要属性,以更改密码的存储方式(WSO2IS 5.3.0)

。。。
沙
沙
假的
...
我很好奇WSO2IS是否会自动处理现有用户的升级,或者我是否需要遵循与所述流程类似的流程


编辑:我还将注意到,我们也将开始添加密码。到目前为止,我的方法(再次假设wso2不会自动处理此问题)将是在基本身份验证器之前添加一个新的本地身份验证器,以无盐更新密码。

编写自定义本地身份验证器可能不是您的最佳解决方案,但您可以根据给定的要求选择以下选项

  • 使用新的PasswordDigest配置辅助用户存储, passwordHashMethod值。需要将新用户添加到辅助服务器 用户商店。在身份验证过程中,将对旧用户进行身份验证 对主用户存储和新用户进行身份验证 针对辅助用户存储
请注意PasswordDigest将是 JDBC用户存储中受影响,passwordHashMethod将受影响 在LDAP用户存储上

  • 对于旧用户,您可以启动忘记密码或密码恢复 由于身份验证失败而导致的流
  • 在使用JDBC用户存储管理器的情况下,您可以编写简单的 程序检索旧密码并使用新密码还原它们 加密。(存储数据库中的表UM_用户列UM_用户密码)

感谢您提供多种解决方案(我们使用的是JDBCUserStoreManager)。对每个解决方案分别做出响应:1)明确地说,新用户将是唯一拥有我们更新的密码摘要的用户?老用户还会有过时的吗?2) 我想避免使用这个解决方案(因为它会将问题转移到用户身上),尽管这肯定是最简单的3)这个解决方案似乎很有希望,但我不知道我们如何恢复明文密码(因为SHA1是一种方法)以重新散列它。如果你能详细介绍一下这个,那将是令人惊叹的,对于自定义本地身份验证方法,请参见我提出的问题。从理论上讲,这是可行的,但我遇到了这里提到的问题。我还意识到,另一个选择可能是添加一个类,扩展AbstractIdentityUserOperationEventListener,该类可以更新doPreAuthenticate上的凭据,让我知道你对此的看法1)是的,你的理解是正确的2)避免了3)是的,你的观点是正确的,我在想基于证书的加密我会更正答案。是的,doPreAuthenticate也是一个可能的选项,但如何识别更新的密码摘要和旧密码摘要?您可能需要处理用户尝试使用无效密码的情况。我认为预身份验证方法必须先尝试使用旧摘要进行身份验证(避免重新调用预身份验证方法和无限循环…),然后再更新到新摘要。把它打出来似乎是一个不太理想的解决方案,我接受了你的答案,因为你给出了一个技术上可行的解决方案(第二个)。我将继续使用预授权方法或自定义验证器方法
...
            <Property name="PasswordDigest">SHA</Property>
            <Property name="passwordHashMethod">SHA</Property>
            <Property name="StoreSaltedPassword">false</Property> 
...