Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 设置API和目录API之间密码长度强制执行的差异?_Google Api_Google Admin Sdk - Fatal编程技术网

Google api 设置API和目录API之间密码长度强制执行的差异?

Google api 设置API和目录API之间密码长度强制执行的差异?,google-api,google-admin-sdk,Google Api,Google Admin Sdk,在我的组织中,我们有一个与谷歌同步用户密码更改的流程。我们最近将此过程从配置API转换为管理SDK目录API。然而,在这样做的过程中,我们开始收到少量密码更改的错误响应,经过调查,我们确定我们的内部支持人员正在通过设置不符合谷歌域中定义的密码长度要求的临时密码来响应用户的密码重设请求。显然,我们需要在内部进行一些流程更改 这些错误仅在切换到AdminSDK目录API之后出现,这就引出了我的问题这两个API执行域中定义的密码长度要求的方式是否存在差异?更具体地说,设置API没有强制执行这些要求吗?

在我的组织中,我们有一个与谷歌同步用户密码更改的流程。我们最近将此过程从配置API转换为管理SDK目录API。然而,在这样做的过程中,我们开始收到少量密码更改的错误响应,经过调查,我们确定我们的内部支持人员正在通过设置不符合谷歌域中定义的密码长度要求的临时密码来响应用户的密码重设请求。显然,我们需要在内部进行一些流程更改


这些错误仅在切换到AdminSDK目录API之后出现,这就引出了我的问题这两个API执行域中定义的密码长度要求的方式是否存在差异?更具体地说,设置API没有强制执行这些要求吗?

我不知道设置API和目录API之间的密码长度要求/强制执行有任何更改。话虽如此,如果你的客户端发送了用MD5、SHA-1或crypt散列的密码,那么谷歌的服务器将无法确定实际密码,因此无法确认它是否满足长度要求。我建议将密码作为salted crypt散列发送。在Linux或Mac OS命令行上生成这些命令非常简单:

$ echo 1234 | mkpasswd -s -m SHA-512
$6$/LHr6nGP$sqS21G30MNh/NAaNHuVitvk/ld3b8u5Ky8N7Rbs.5eptnETaPlV9hUk8mAOJdQ2KHacdJ5OGMRKD2ZXBuINyN1
因此,请求主体如下所示:

{
  "hashFunction": "crypt",
  "password": "$6$/LHr6nGP$sqS21G30MNh/NAaNHuVitvk/ld3b8u5Ky8N7Rbs.5eptnETaPlV9hUk8mAOJdQ2KHacdJ5OGMRKD2ZXBuINyN1"
}
将用户的密码设置为1234。该密码对用户有效,因为谷歌无法确定设置密码时的长度或强度

当然,正如您在上面指出的,您确实应该强制执行最小密码长度(更不用说强度)

要生成哈希,可以使用:


我还没有听说由于API的变化,密码长度要求有任何变化,他们已经同时工作了一段时间了。这可能是由于您正在使用的API(如果您正在使用)。只是一个想法,如果你用“试试看!”当其中一个密码失败时,功能打开,它是否仍然失败?
from passlib.handlers.sha2_crypt import sha512_crypt
hashed_password = sha512_crypt.encrypt(password)