当前位置: 首页 > 知识库问答 >
问题:

Active Directory:用户下次登录时必须更改密码

常明亮
2023-03-14

我正在尝试通过使用LDAP以编程方式更改用户密码。用户在Active Directory中具有标志“用户必须在下一次登录时更改密码”。但无法通过此用户对Active Directory进行身份验证。我使用了两种LDAP身份验证类型--simple和GSSAPI(Kerberos)。有人能解释一下,当检查“用户必须更改密码”时,Windows自己是如何更改密码的吗?在身份验证时,Kerberos落在as_req-as_rsp(AS)步骤上,并返回错误status_password_must_change

共有1个答案

沈永贞
2023-03-14

谢谢参孙的评论。

当用户选中“下一次登录时必须更改密码”时,Windows首先尝试获取SPN kadmin/changepw的票证,然后使用KPASSWD服务(464 UPD/TCP)使用KPASSWD协议(https://tools.ietf.org/html/rfc3244)更改用户密码。我尝试使用Windows为“必须更改密码”的用户更改密码,之后通过Wireshark分析包,全部工作在RFC3244。还有,我试着使用MIT的KPASSWD工具,密码也像Windows一样被更改了。

 类似资料:
  • 唯一的区别是异常消息中word数据的值。我不想依赖这个消息。如何区分“用户下次登录时必须更改密码”和“密码错误”用例?

  • 是否可以在Linux中使用C语言中的ldap协议重置此Active directory用户的密码(下一次登录时重置密码已设置)?

  • 问题内容: 我知道我可以使用serialVersionUID来控制类的版本。我读到我可以添加或删除字段,并且该类仍将兼容,它将仅使用默认值。 什么时候 必须 更改serialVersionUID? 问题答案: 当对类的结构进行不兼容的更改时,最好更改serialVersionUID字段的值。Java对象序列化规范中列出了不兼容更改的完整列表。 为了进一步扩展,对类的不兼容更改将阻止反序列化机制创建

  • 当此用户登录系统时,我想更改用户名。我实现了自己的加密算法,但无法获得真正的密码来进行新的认证并将其放入

  • 首次登陆的用户名和密码有二个,分别为: 用户名:admin     密码 :admin 用户名:user0     密码:user0 账号admin是系统管理员权限,账号user0是普通用户,属于设计角色,拥有设计权限。 在登录后,注意更改账号密码。

  • 问题内容: 我需要输入USER表的USER_ID字段作为另一个表中的外键。因此,我认为我需要在用户登录时启动一个会话。我很难让它在任何地方回显。我能够启动一个会话,该会话允许我回显USERNAME,但无法将其复制为ID。 请帮忙吗?我的处理代码如下。我还粘贴了本节,我暂时尝试对其进行回显以进行测试。 处理脚本: 我希望USER_ID出现在哪里: 问题答案: 使用FETCH_ASSOC而不是FETC