keycloak 2.2.3 → 2.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 56394d9a2afd46a62e144d429b830845c0cd0efd
4
- data.tar.gz: 0b8bd943c94758bae77966c704149f6b7164580e
3
+ metadata.gz: c12d7d40888c54116b3acf7b8c557f5cc3f8cf3e
4
+ data.tar.gz: '087f959c26357e9b0b42dd1d75bd3f5c092ac8e6'
5
5
  SHA512:
6
- metadata.gz: 18b4ccf55b2172573e6bebc55ac991209aa773ff29d5338d504f031c4d7df699ea85632b3a865add2da42286a724a8ec44ee34e0a1a81f9041f504b311490f87
7
- data.tar.gz: a79d9431d74b22eb7e685143243e26553b48982716158bb5ca6b800e2364f5fa06c79cacec8e9457e1adc7e30555b7d709fa449ce4b8796e6f4a67afb2cfb33c
6
+ metadata.gz: 56adbcfc6faf37f64fe34946ec479442d7a174af62cb9160e340b2439304bd3d2c3c9cf0908f8e869cd55e31553219aab065bb268e4eb72cf8d8856f084aac34
7
+ data.tar.gz: c47d7d3e4b8dd908f75fb447cf6b6102ed90faca575c75cd5b81881426734180bb3d2d58dd3b8a07d3b2bbf21fc931bf49a4adabca0fd19a8335af23d346750b
data/README.md CHANGED
@@ -88,9 +88,9 @@ end
88
88
  <b>Observação:</b> Os atributos `Keycloak.proc_cookie_token` e `Keycloak.proc_external_attributes` podem ser definidos no `initialize` do controler `ApplicationController`.
89
89
 
90
90
 
91
- ### Client
91
+ ### Keycloak::Client
92
92
 
93
- Esse módulo possui os métodos que representam as APIs de <b>endpoints</b>. Esses serviços são fundamentais para a criação e atualização de tokens, efetuação de login e logout, e, também para a obtenção de informações sintéticas de um usuário logado. O que habilita a gem a fazer uso de todos esses serviços é o arquivo de instalação do client citado anteriormente.
93
+ O módulo `Keycloak::Client` possui os métodos que representam os serviços de <b>endpoints</b>. Esses serviços são fundamentais para a criação e atualização de tokens, efetuação de login e logout, e, também para a obtenção de informações sintéticas de um usuário logado. O que habilita a gem a fazer uso de todos esses serviços é o arquivo de instalação do client citado anteriormente.
94
94
 
95
95
  Vamos ao detalhamento de cada um desses métodos:
96
96
 
@@ -191,3 +191,137 @@ Keycloak::Client.external_attributes
191
191
  ```
192
192
 
193
193
  Quando implementado o método `Keycloak.proc_external_attributes`, o método `external_attributes` o retornará. A finalidade desse método é retornar os atributos específicos da aplicação não mapeados no Keycloak.
194
+
195
+
196
+ ### Keycloak::Admin
197
+
198
+ O módulo `Keycloak::Admin`disponibiliza métodos que representam as [REST APIs do Keycloak](http://www.keycloak.org/docs-api/3.2/rest-api/index.html). Para a utilização dessas APIs, será necessário um `access_token` ativo, ou seja, a autenticação deverá ocorrer antes da utilização dos métodos para que um token válido seja utilizado como credencial. Caso o `access_token` não seja informado, então a gem utilizará o `access_token` do cookie. O usuário autenticado deverá ter o `role` do respectivo serviço invocado - roles do client `realm-management`, que representa o gerênciamento do reino.
199
+
200
+ Segue abaixo a lista dos métodos. O parâmetro de rota `{realm}` de todas as APIs será obtido do arquivo de instalação `keycloak.json`:
201
+
202
+
203
+ ```ruby
204
+ # GET /admin/realms/{realm}/users
205
+ Keycloak::Admin.get_users(query_parameters = nil, access_token = nil)
206
+ ```
207
+
208
+ `get_users` retorna uma lista de usuários, filtrada de acordo com o hash de parâmetros passado em `query_parameters`.
209
+
210
+
211
+ ```ruby
212
+ # POST /admin/realms/{realm}/users
213
+ Keycloak::Admin.create_user(user_representation, access_token = nil)
214
+ ```
215
+
216
+ `create_user` cria um novo usuário no Keycloak. O parâmetro `user_representation` deve ser um hash conforme o [UserRepresentation](http://www.keycloak.org/docs-api/3.2/rest-api/index.html#_userrepresentation) do Keycloak. O retorno deste método será `true` para o caso de sucesso.
217
+
218
+
219
+ ```ruby
220
+ # GET /admin/realms/{realm}/users/count
221
+ Keycloak::Admin.count_users(access_token = nil)
222
+ ```
223
+
224
+ `count_users` retorna a quantidade de usuários do reino.
225
+
226
+
227
+ ```ruby
228
+ # GET /admin/realms/{realm}/users/{id}
229
+ Keycloak::Admin.get_user(id, access_token = nil)
230
+ ```
231
+
232
+ `get_user` retorna a representação do usuário identificado pelo parâmetro `id` - que é o <b>ID</b> criado pelo Keycloak ao criar um novo usuário.
233
+
234
+
235
+ ```ruby
236
+ # PUT /admin/realms/{realm}/users/{id}
237
+ Keycloak::Admin.update_user(id, user_representation, access_token = nil)
238
+ ```
239
+
240
+ `update_user` atualiza o cadastro do usuário identificado pelo `id` - que é o <b>ID</b> criado pelo Keycloak ao criar um novo usuário. No parâmetro `user_representation` deverá ser uma hash com os campos que serão alterados, respeitando o [UserRepresentation](http://www.keycloak.org/docs-api/3.2/rest-api/index.html#_userrepresentation) do Keycloak. O retorno deste método será `true` para o caso de sucesso.
241
+
242
+
243
+ ```ruby
244
+ # DELETE /admin/realms/{realm}/users/{id}
245
+ Keycloak::Admin.delete_user(id, access_token = nil)
246
+ ```
247
+
248
+ `delete_user` exclui o cadastro do usuário identificado pelo `id` - que é o <b>ID</b> criado pelo Keycloak ao criar um novo usuário. O retorno deste método será `true` para o caso de sucesso.
249
+
250
+
251
+ ```ruby
252
+ # DELETE /admin/realms/{realm}/users/{id}/consents/{client}
253
+ Keycloak::Admin.revoke_consent_user(id, client_id = nil, access_token = nil)
254
+ ```
255
+
256
+ `revoke_consent_user` revoga os tokens de um usuário identificado pelo `id` - que é o <b>ID</b> criado pelo Keycloak ao criar um novo usuário - no client identificado pelo parâmetro `client_id`.
257
+
258
+
259
+ ```ruby
260
+ # PUT /admin/realms/{realm}/users/{id}/execute-actions-email
261
+ Keycloak::Admin.update_account_email(id, actions, redirect_uri = '', client_id = nil, access_token = nil)
262
+ ```
263
+
264
+ `update_account_email` envia um e-mail de atualização da conta para o usuário representado pelo parâmetro `id`. O email contém um link que o usuário poderá clicar para executar um conjunto de ações representados pelo parâmetro `actions` - que aguarda um `array` de [ações definidas pelo Keycloak](http://www.keycloak.org/docs/3.2/server_admin/topics/users/required-actions.html). Um exemplo de valor que pode ser passado para o parâmetro `actions` é `['UPDATE_PASSWORD']`, que indica que a ação que o usuário deverá tomar ao clicar o link do e-mail é de alterar a sua senha. No parâmetro `redirect_uri`, caso necessário, deverá ser passada uma <b>url</b> para que, ao término do envio do e-mail, a aplicação seja redirecionada. O parâmetro `client_id` deverá ser informado caso o Client responsável pela as ações que deverão ser executadas não seja o mesmo do arquivo de instalação `keycloak.json`.
265
+
266
+
267
+ ```ruby
268
+ # GET /admin/realms/{realm}/users/{id}/role-mappings
269
+ Keycloak::Admin.get_role_mappings(id, access_token = nil)
270
+ ```
271
+
272
+ `get_role_mappings` retorna todas as <b>Role Mappings</b> do reino atribuídas ao usuário identificado pelo parâmetro `id`, independentemente do Client.
273
+
274
+
275
+ ```ruby
276
+ # GET /admin/realms/{realm}/clients
277
+ Keycloak::Admin.get_clients(query_parameters = nil, access_token = nil)
278
+ ```
279
+
280
+ `get_clients` retorna uma lista de [ClientRepresentation](http://www.keycloak.org/docs-api/3.2/rest-api/index.html#_clientrepresentation) Clients pertencentes ao reino. O parâmetro `query_parameters` espera um hash com os atributos `clientId` - caso deseje que a lista seja filtrada pelo `client_id` - e `viewableOnly` - para filtrar se os Clients de administração do Keycloak serão ou não retornados na lista.
281
+
282
+
283
+ ```ruby
284
+ # GET /admin/realms/{realm}/clients/{id}/roles
285
+ Keycloak::Admin.get_all_roles_client(id, access_token = nil)
286
+ ```
287
+
288
+ `get_all_roles_client` retorna uma lista de [RoleRepresentation](http://www.keycloak.org/docs-api/3.2/rest-api/index.html#_rolerepresentation) com todos os <b>roles</b> do client identidicado pelo parâmetro `id` - deve ser passado nesse parâmetro o `ID` do Client e não o `client_id`.
289
+
290
+
291
+ ```ruby
292
+ # GET /admin/realms/{realm}/clients/{id}/roles/{role-name}
293
+ Keycloak::Admin.get_roles_client_by_name(id, role_name, access_token = nil)
294
+ ```
295
+
296
+ `get_roles_client_by_name` retorna a [RoleRepresentation](http://www.keycloak.org/docs-api/3.2/rest-api/index.html#_rolerepresentation) do role identificado pelo parâmetro `role_name` - que é o nome do role.
297
+
298
+
299
+ ```ruby
300
+ # POST /admin/realms/{realm}/users/{id}/role-mappings/clients/{client}
301
+ Keycloak::Admin.add_client_level_roles_to_user(id, client, role_representation, access_token = nil)
302
+ ```
303
+
304
+ `add_client_level_roles_to_user` insere um <b>role</b> do Client (representado pelo parâmetro `client`) ao usuário representado pelo parâmetro `id`. O parâmetro `role_representation` deverá receber um `array` de [RoleRepresentation](http://www.keycloak.org/docs-api/3.2/rest-api/index.html#_rolerepresentation) que serão inseridos no usuário. Em caso de sucesso, o retorno será `true`.
305
+
306
+
307
+ ```ruby
308
+ # DELETE /admin/realms/{realm}/users/{id}/role-mappings/clients/{client}
309
+ Keycloak::Admin.delete_client_level_roles_from_user(id, client, role_representation, access_token = nil)
310
+ ```
311
+
312
+ `delete_client_level_roles_from_user` exclui um <b>Client-Role</b> (representado pelo parâmetro `client`) do usuário representado pelo parâmetro `id`. O parâmetro `role_representation` deverá receber um `array` de [RoleRepresentation](http://www.keycloak.org/docs-api/3.2/rest-api/index.html#_rolerepresentation) que serão retirados do usuário. Em caso de sucesso, o retorno será `true`.
313
+
314
+
315
+ ```ruby
316
+ # GET /admin/realms/{realm}/users/{id}/role-mappings/clients/{client}
317
+ Keycloak::Admin.get_client_level_role_for_user_and_app(id, client, access_token = nil)
318
+ ```
319
+
320
+ `get_client_level_role_for_user_and_app` retorna uma lista de [RoleRepresentation](http://www.keycloak.org/docs-api/3.2/rest-api/index.html#_rolerepresentation) dos <b>Client-Roles</b> do Client representado pelo parâmetro `client` vinculados ao usuário representado pelo parâmetro `id`.
321
+
322
+
323
+ ```ruby
324
+ Keycloak::Admin.update_effective_user_roles(id, client_id, roles_names, access_token = nil)
325
+ ```
326
+
327
+ `update_effective_user_roles` não está na lista de <b>Admin APIs</b> do Keycloak. Este método vincula ao usuário representado pelo parâmetro `id` todos os roles passados em um `array` no parâmetro `roles_names`. Os roles passados no parâmetro `roles_names` deverão pertencer ao Client representado pelo parâmetro `client_id`. Caso o usuário possua o vínculo com um role que não esteja no parâmetro `roles_names`, esse vínculo será removido, pois a finalidade desse método é que o usuário assuma efetivamente os roles passados nesse parâmetro. Em caso de sucesso, o retorno será `true`.
@@ -404,7 +404,7 @@ module Keycloak
404
404
 
405
405
  roles = Array.new
406
406
  # Include new role
407
- rolesNames.each do |r|
407
+ roles_names.each do |r|
408
408
  if r && !r.empty?
409
409
  found = false
410
410
  user_roles.each do |ur|
@@ -423,7 +423,7 @@ module Keycloak
423
423
  # Exclude old role
424
424
  user_roles.each do |ur|
425
425
  found = false
426
- rolesNames.each do |r|
426
+ roles_names.each do |r|
427
427
  if r && !r.empty?
428
428
  found = ur['name'] == r
429
429
  break if found
@@ -444,8 +444,8 @@ module Keycloak
444
444
  end
445
445
  end
446
446
 
447
- def self.reset_password(id, credentialRepresentation, access_token = nil)
448
- generic_put("users/#{id}/reset-password", nil, credentialRepresentation, access_token)
447
+ def self.reset_password(id, credential_representation, access_token = nil)
448
+ generic_put("users/#{id}/reset-password", nil, credential_representation, access_token)
449
449
  end
450
450
 
451
451
  def self.get_effective_client_level_role_composite_user(id, client, access_token = nil)
@@ -1,3 +1,3 @@
1
1
  module Keycloak
2
- VERSION = "2.2.3"
2
+ VERSION = "2.2.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keycloak
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.3
4
+ version: 2.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guilherme Portugues
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-11 00:00:00.000000000 Z
11
+ date: 2017-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler