在Keycloak 10中部署一个Javascript策略

3

我按照Create a JAR with the scripts to deploy指南创建了一个自定义 Javascript 策略用于检查用户属性,看起来已经成功部署了。然而,在“创建策略”下拉列表中我无法看到策略名称,请问这个功能是否需要开启某些设置?请注意保留 HTML 标签。

.jar文件上传到/keycloak/standalone/deployments后,它会显示WFLYSRV0010: Deployed "script.jar" (runtime-name : "script.jar")而且没有任何错误。我还可以看到我的脚本文件旁边的{filename}.jar.deployed

环境设置:我使用 docker-compose 启动了一个版本为10.0.1的容器。以下是我的 Docker Compose 文件内容:

version: "3.1"
services:
    keycloak:
        image: jboss/keycloak
        restart: always
        ports:
            - 8080:8080
        environment:
            KEYCLOAK_PASSWORD: admin
            KEYCLOAK_USER: admin
        volumes:
            - ./deployments:/opt/jboss/keycloak/standalone/deployments

keycloak-scripts.json:

{
    "policies": [
        {
            "name": "my-policy",
            "fileName": "my-script-policy.js",
            "description": "My Policy from a JS file"
        }
    ]
}

my-script-policy.js:

var context = $evaluation.getContext();
var contextAttributes = context.getAttributes();

if (contextAttributes.containsValue('kc.client.network.ip_address', '127.0.0.1')) {
    $evaluation.grant();
}

客户端策略设置

非常感谢任何建议。


你找到任何解决方案了吗? - undefined
这对于Keycloak 15.0.2非常有效。你能在这里检查选项吗? - undefined
1个回答

1
很久没用这个策略了!但是我还是设法在当时创建了一个javascript策略。我相信问题出在脚本文件名上: 我的keycloak-provider仓库 我会尽力改进README文件,并使用最新版本的Keycloak进行测试,看看它是否仍然有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接