Создайте пользователя на Keycloak с Angular 7 от REST API - PullRequest
0 голосов
/ 15 ноября 2018

У меня небольшая проблема при регистрации пользователя на Keycloak.

Я использую keycloak-admin-client:

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

Когда клиент пытается создать пользователя, сервер говорит 403 запрещено.

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.

У клиента есть роль администратора.

Role Settings on keycloak

client settings

У кого-нибудь есть совет для меня?Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2018

Я понял.Вы должны добавить роли из клиента управления областями к своей роли администратора.

Разрешить

После этого у пользователя должна быть роль администратора.Затем clientSettings должен быть расширен в приложении Angular:

  • Добавить имя пользователя и пароль вашего администратора
  • Изменить тип_приложения для пароля

    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
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...