keycloak 2.2.3 → 2.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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