所以,我的用例不涉及使用密码重置 API,但是对于那些有兴趣在外部生成新密码,然后进行 api 调用以将其设置为该用户的新密码的人,这里是一个代码示例根据上面 Milind 的回答:
Python3
def change_password_snow(user, pwd, new_pwd, snow_url, sys_id):
# Set the request parameters
url = snow_url + sys_id
# Set proper headers
headers = {"Content-Type":"application/xml","Accept":"application/json"}
# Set query params
params = {"sysparm_input_display_value": "true", "sysparm_fields": "user_password"}
# Do the HTTP request
response = requests.patch(url, auth=(user, pwd), headers=headers, params=params, data=f"<request><entry><user_password>{new_pwd}</user_password></entry></request>")
return response
在 ServiceNow 上设置
为此,您在 ServiceNow 中进行身份验证的用户需要具有管理员权限。
要么这样,要么修改 sys_user.user_password ACL 以允许非管理员用户读取和写入该字段(如果他们具有您选择的角色)。对于我的用例,我创建了一个自定义角色并将其附加到该用户。