gpt4 book ai didi

php - keycloak-传递参数满足密码策略要求

转载 作者:行者123 更新时间:2023-12-04 15:10:59 24 4
gpt4 key购买 nike

我已经在我的 Symfony 项目中定义了 get Keycloak 方法。

我在提取密码策略列表的数组中得到了异常结果。目前仅设置“非用户名”规则:

enter image description here

我在文档中找不到 keycloak 中的任何其他端点,我可以将我的密码字符串作为参数传递,并查看它是否满足 密码策略 中定义的要求。

我将提供 GET 函数,它返回我刚才描述的内容。我认为,如果可以对其进行修改以提供密码字符串,它就能完成工作。

public function validateKeycloakPassword()
{
$options = [
'headers' => $this->getAuthJsonHeaders()

];

try {
$endpoint = sprintf('auth/admin/realms/%s/', $this->realm);
return $this->request('GET', $endpoint, $options);
} catch (\Exception $e) {
$this->exception('Can`t get password policy information on Keycloak. ' . $e->getMessage());
}
}

在我的 Controller 中,端点:

 /**
* @Route("/check", name="check")
*/
public function validatePassword()
{

$violations = $this->service->validateKeycloakPassword();
return $violations['passwordPolicy'];
}

求和:

在 keycloak 中是否有任何端点我可以传递我的密码变量并检查它是否满足 password policies 中定义的要求可能使用 PUT 方法。

最佳答案

据我所知,没有这样的端点。不过,您可以使用一个解决方法,创建一个 dummy_user 来测试密码。从该用户那里获取 ID,您可以从 Keycloak 管理控制台或使用端点获取它:

curl -X GET  <KEYCLOAK_HOST>/auth/admin/realms/<REALM_NAME>/users/?username=dummy_user

JSON 响应中,提取用户 ID。然后调用以下端点:

PUT <KEYCLOAK_HOST>/auth/admin/realms/<REALM_NAME>/users/<USER_ID>/reset-password

带有请求负载:

{"type":"password","value":"<THE_PASSWORD_THAT_YOU_WANT_TO_TEST>","temporary":false}

如果密码无效,您将收到 400,您可以通过响应查看错误。此类响应的示例:

error:"invalidPasswordMinLengthMessage"
error_description:"Invalid password minimum length 8"

显然,这不适用于 username 策略,但可以轻松地在您的应用中 checkin 该策略(例如, password != username)

关于php - keycloak-传递参数满足密码策略要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65203938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com