Php KeyClope-传递参数以满足密码策略要求
我已经在我的Symfony项目中定义了get-keydape方法 在提取密码策略列表的数组问题上,我得到了例外的结果。目前只设置了“非用户名”规则: 我在文档中找不到KeyClope中的任何其他端点,我可以将密码字符串作为参数传递,并查看它是否满足Php KeyClope-传递参数以满足密码策略要求,php,symfony,keycloak,keycloak-services,keycloak-rest-api,Php,Symfony,Keycloak,Keycloak Services,Keycloak Rest Api,我已经在我的Symfony项目中定义了get-keydape方法 在提取密码策略列表的数组问题上,我得到了例外的结果。目前只设置了“非用户名”规则: 我在文档中找不到KeyClope中的任何其他端点,我可以将密码字符串作为参数传递,并查看它是否满足密码策略中定义的要求 我将提供GET函数,返回我刚才描述的内容。我认为如果可以修改它以提供密码字符串,它将完成这项工作 public function validateKeycloakPassword() { $options = [
密码策略中定义的要求
我将提供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());
}
}
在我的控制器endpoint中:
/**
* @Route("/check", name="check")
*/
public function validatePassword()
{
$violations = $this->service->validateKeycloakPassword();
return $violations['passwordPolicy'];
}
curl -X GET <KEYCLOAK_HOST>/auth/admin/realms/<REALM_NAME>/users/?username=dummy_user
PUT <KEYCLOAK_HOST>/auth/admin/realms/<REALM_NAME>/users/<USER_ID>/reset-password
总结:
KeyClope中是否有任何端点,我可以在其中传递我的密码变量,并检查它是否符合密码策略中定义的要求
可能使用PUT
方法。据我所知,没有这样的端点。尽管如此,您还是可以做一个变通方法,创建一个虚拟用户
,用于测试密码。从该用户处获取ID
,您可以从KeyClope管理控制台或使用端点获取该ID:
/**
* @Route("/check", name="check")
*/
public function validatePassword()
{
$violations = $this->service->validateKeycloakPassword();
return $violations['passwordPolicy'];
}
curl -X GET <KEYCLOAK_HOST>/auth/admin/realms/<REALM_NAME>/users/?username=dummy_user
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}
显然,这不适用于用户名
策略,但可以轻松地在应用程序中检查该策略(例如,密码!=用户名
)