Keycloak-在领域中创建管理员用户

时间:2019-06-24 19:53:14

标签: keycloak

如何在Keycloak的领域中创建管理员用户?我尝试了/bin/add-user.sh -r myrealm -u admin -p <pwd> 它给了我错误:


 * Error *
WFLYDM0065: The user supplied realm name 'myrealm' does not match the realm name discovered from the property file(s) 'ManagementRealm'.

Exception in thread "main" org.jboss.as.domain.management.security.adduser.AddUserFailedException: WFLYDM0065: The user supplied realm name 'myrealm' does not match the realm name discovered from the property file(s) 'ManagementRealm'.
    at org.jboss.as.domain.management.security.adduser.ErrorState.execute(ErrorState.java:72)
    at org.jboss.as.domain.management.security.adduser.AddUser.run(AddUser.java:133)
    at org.jboss.as.domain.management.security.adduser.AddUser.main(AddUser.java:231)
    at org.jboss.modules.Module.run(Module.java:352)
    at org.jboss.modules.Module.run(Module.java:320)
    at org.jboss.modules.Main.main(Main.java:593)

我尝试了/bin/add-user-keycloak.sh -r myrealm -u admin -p <pwd>。它要求我重启服务器,但是我也没有看到用户。

如果知道如何使用python客户端进行制作,那也很好。

4 个答案:

答案 0 :(得分:1)

以您的示例为例,我想您想创建一个可以管理新领域的管理员。然后,管理员形成了这个新领域,不同于主领域(默认)。

简单来说,这是在领域中创建管理员的方法。

1-创建领域

  • Master领域创建一个新领域(Myrealm
  • 确保位于该新领域(在主领域下的列表中选择它)

2-为新创建的领域创建admin角色

  • 在菜单(位于左侧)的Configure主标题下,选择Roles
  • Realm Roles标签中,单击按钮Add Role并为其命名(admin)和描述(Myrealm admin role),然后打开{{1 }}
  • 在新显示的部分(复合角色)中,输入Composite Role字段:领域管理,然后选择它。
  • client roles中选择该选择中的所有可用元素,然后单击[添加所选内容]按钮。

/!\此角色仅在该领域有效,只会影响与该领域相关的用户。

3-影响管理员角色的用户

  • 仍在同一领域中,创建或选择一个您希望其成为管理员的用户
  • 转到其Available Roles标签,然后将可用角色Role Mappings发送到已分配角色。

尝试登录admin(用创建用户的领域名称替换REALM_NAME),并调整该领域管理员用户的权限(从具有主管理员帐户的另一个浏览器)。例如,新的管理员领域用户可以删除角色(这是不正常的),它可以在他们的领域中做很多事情,而您不希望它明确地执行...(我想)

仅此而已。

答案 1 :(得分:0)

您应该可以使用add-user-keycloak命令进行创建,但是您需要重新启动密钥斗篷服务器才能实际添加用户。这是documentation

/bin/add-user-keycloak.sh -r myrealm -u admin -p <password>

但是在添加用户之前,您需要使用

创建领域myrealm
  kcadm.sh create realms ........

答案 2 :(得分:0)

请查看此命令

/bin/add-user.sh -r myrealm -u admin -p <pwd>

在这里,您尝试运行一个Shell脚本,该脚本将创建一个用户admin,其中的password位于领域myrealm下。

因此,在您要在其下创建用户之前,应存在其强制性myrealm领域。

如果这不起作用,请尝试在master领域下创建用户,该领域是安装密钥库之后的默认领域。

您不知道如何创建领域的ID,这里有一些admin-clicurl命令来实现

如何在admin-cli的帮助下创建领域

/opt/keycloak/bin/kcadm.sh create realms -s realm=<Realm-NAME> -s id="<realm-id>" -s enabled=true -s 

如何使用curl命令创建领域

curl -v <Keycloak-Ip-address>:<Port>/auth/admin/realms -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" --data  '{"realm":"Realm-name","id":"Realm-id","enabled":"true"}' -k

答案 3 :(得分:0)

  1. 在领域中创建普通用户。
  2. 转到“角色映射”选项卡:
    1. 在“客户端角色”下选择realm-management
    2. 选择所有可用角色,然后按添加选定的内容。
  3. 转到http://keycloak/auth/admin/REALM_NAME/console(用您选择的领域名称替换 REALM_NAME )并在新创建的用户下登录。
  4. 您应该仅在此领域看到管理界面。

您还可以通过Admin REST API自动创建用户:https://www.keycloak.org/docs-api/6.0/rest-api/index.html