繁体   English   中英

通过 REST API 使用 Angular 7 在 keycloak 上创建用户

[英]Create user on keycloak with Angular 7 by REST API

我在 Keycloak 上注册用户时遇到了一个小问题。

我使用keycloak-admin-client

let keycloakAdminClient = require('keycloak-admin-client');

当客户端尝试创建用户时,服务器显示 403 forbidden。

keycloakAdminClient(clientSettings)
  .then((clients) => {
    console.log('[newRegistration - keycloakAdminClient] init success');
    console.log(clients.token);
    clients.users.create(environment.KEYCLOAK_REALM, newKeycloakUser)
      .then((createdUser) => {
        console.log('[newRegistration - keycloakAdminClient - client.users.create] success - createdUser = ' + createdUser);
        // findNewUserId(newKeycloakUser.username);
        return newKeycloakUser.username;
      })
      .catch((err) => {

        console.log('[newRegistration - keycloakAdminClient - client.users.create] error - code = ', err);
      });
  })
  .catch((err) => {
    console.log('[newRegistration - keycloakAdminClient] init error - code = ', err);
  });
console.log('[newRegistration] END');
};

这是客户端的设置:

 export const environment = {
  production: false,
  KEYCLOAK_URL: 'http://10.10.15.35:8080/auth',
  KEYCLOAK_REALM: 'baulogistik_test',
  KEYCLOAK_CLIENTID: 'angular-frontend',
  BACKEND_URL: 'http://10.10.15.35:8080/api',
  CLIENT_SECRET: '296f7a0f-a0f5-4395-a120-ece8565bbce1'
};

const clientSettings = {
    production: environment.production,
    baseUrl: environment.KEYCLOAK_URL,
    client_id: environment.KEYCLOAK_CLIENTID,
    realmName: environment.KEYCLOAK_REALM,
    grant_type: 'client_credentials',
    client_secret: environment.CLIENT_SECRET
}

我可以通过密钥登录客户端并获取accessToken

客户端具有管理员角色。

keycloak 上的角色设置

客户端设置

有人给我建议吗? 谢谢!

我知道了。 您必须将领域管理客户端中的角色添加到您的管理员角色。

在此处输入图片说明

之后,用户必须具有管理员角色。 然后必须在 Angular 应用程序中扩展 clientSettings:

  • 添加您的管理员用户的用户名和密码

  • 修改 grant_type 为密码

     const clientSettings = { production: environment.production, baseUrl: environment.KEYCLOAK_URL, client_id: environment.KEYCLOAK_CLIENTID, realmName: environment.KEYCLOAK_REALM, grant_type: 'password',//'client_credentials', username: environment.username, password: environment.password, client_secret: environment.CLIENT_SECRET

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM