nao exista, retorna uma listagem nula. userPermissions(application, user): permission[] Prove a listagem das permissoes autorizadas ao usuario em uma determinada aplicacao. A verificacao e feita com base nos papeis associados ao usuario. Uma permissao e composta pelo par operacao recurso (Barker, 2008, p. 144). Caso a aplicacao ou o usuario informado nao exista, retorna uma listagem nula. authenticate (username, password): boolean Executa o processo de autenticacao do usuario tomando como base o seu nome e senha. Este servico retorna um valor verdadeiro em caso de sucesso, ou falso caso ocorra falha no processo de autenticacao. Este servico nao e exigido pelo padrao RBAC. userDetail (username): user Obtem as credenciais do usuario com base no seu nome. Se o usuario existir, retorna um objeto contendo as suas credenciais; caso contrario, retorna um objeto nulo. Este servico nao e exigido pelo padrao RBAC. Ao contrario do EndPoint de controle de acesso, o EndPoint de gerenciamento prove operacoes de modificacao de dados no servidor. Em concordancia ao padrao RBAC e aos conceitos SOA, segue a especificacao dos servicos de gerenciamento: addUser(user) Adiciona um novo usuario na base centralizada de usuarios. Caso o usuario ja exista ou ocorra alguma falha na validacao dos dados, uma notificacao de erro sera emitida. deleteUser(user) Remove um usuario existente da base centralizada de usuarios. Caso ocorra alguma falha durante o processo, uma notificacao de erro sera emitida. assignUser(application, user, role) Atribui o usuario ao papel de uma aplicacao. Caso ocorra falha durante o processo de associacao, uma notificacao de erro sera emitida. deassignUser(application, user, role) Desassocia o usuario ao papel de uma aplicacao. Caso ocorra falha durante o processo, uma notificacao de erro sera emitida. changePassword(username, oldPassword, newPassword) Efetua a modificacao da senha do usuario. Caso ocorra alguma falha na validacao dos dados, uma notificacao de erro sera emitida. Este servico nao e exigido pelo padrao RBAC. addRole(application, role) Adiciona um novo papel em uma aplicacao. Caso o papel ja exista ou ocorra alguma falha na validacao dos dados, uma notificacao de erro sera emitida. deleteRole(application, role) Remove um papel existente de uma determinada aplicacao. Caso ocorra alguma falha durante o processo, uma notificacao de erro sera emitida. grantPermission(application, permission, role, allowed) Concede permissao ao papel para executar uma operacao sob um determinado recurso da aplicacao. Uma autorizacao pode ser positiva ou negativa (BERTINO, 2001, p. 42). Caso ocorra falha na validacao dos dados, uma notificacao de erro sera emitida. revokePermission(application, permission, role) Remove a permissao de um papel a um recurso do sistema. Uma permissao e composta pelo par operacao recurso (Barker, 2008, p. 144). Caso ocorra falha na validacao dos dados, uma notificacao de erro sera emitida. Todos os servicos foram adaptados para suportar o controle de acesso aos multiplos sistemas da organizacao, acrescentando-se o parametro application. Este assunto ja foi discutido nos capitulos 2.2 RBAC (p. 16) e 3.2 Modelo de dados (p. 26).