Php 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 = [

我已经在我的Symfony项目中定义了get-keydape方法

在提取密码策略列表的数组问题上,我得到了例外的结果。目前只设置了“非用户名”规则:

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

我将提供
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}
显然,这不适用于
用户名
策略,但可以轻松地在应用程序中检查该策略(例如,
密码!=用户名