Unknown macro: {center}
Portal OpenBus

OpenBus 1.5
Skip to end of metadata
Go to start of metadata

Introdução

A versão 1.5 do OpenBus introduziu um mecanismo para cadastro dos membros do barramento e um mecanismo de controle de quais serviços esses membros podem prover.

O Serviço de Controle de Acesso (ACS), que é o responsável pela autenticação, foi estendido com uma nova interface que exporta funções para cadastro e consulta dos membros que interagem com o barramento: usuários ou aplicações.

Apesar do ACS ser responsável pela autenticação dos usuários, o mecanismo de governança trata apenas do controle dos serviços que os usuários podem exportar. Por isso, o cadastro do usuário no mecanismo de governança não é ligado ao seu login no barramento.

As aplicações são na realidade instâncias de um determinado sistema, por exemplo, podemos ter diferentes instalações do WebSintesi se conectando ao OpenBus. A informação a que sistema a instalação pertence é importante para a realização de alguns levantamentos sobre o uso do barramento.

O Serviço de Registro (RS) também foi alterado para oferecer o controle sobre quais serviços os membros podem exportar. O RS mantém dois tipos de informações: (i) um catálogo de interfaces de serviços que podem ser exportadas no barramento e (ii) quais membros tem autorização de exportar quais interfaces.

De fato, o catálogo de interfaces é opcional: o administrador do OpenBus, ao cadastrar uma autorização, indica se a interface que está sendo autorizada ao membro deve ou não constar no catálogo de interfaces.

Como uma forma de facilitar a gerência, as interfaces informadas na autorização podem conter curingas (representado pelo caractere asterisco). Esses curingas podem substituir o sufixo do nome ou da versão dos módulos. Assumindo prefixos vazios, os curingas substituem todo o nome ou versão. Por exemplo:

  • IDL:tecgraf/demo/hello:2.*
  • IDL:tecgraf/demo/hello:*
  • IDL:tecgraf/demo/*:2.0
  • IDL:tecgraf/*:*
  • IDL:tec*:2.*
  • IDL:*:*

É importante destacar que interfaces que possuem curingas não são verificadas junto ao catálogo de interface.

Arquitetura

O mecanismo de governança implementado se baseia em:

  • Cadastro dos sistemas
  • Cadastro das implantações que acessam o barramento
  • Cadastro dos usuários que exportam serviços no barramento
  • Cadastro das interfaces dos serviços exportados no barramento
  • Cadastro das autorizações de oferta de serviços

A figura abaixo mostra do papel do ACS e RS na governança e a relação de dependência (indicada pelas setas) entre as partes. No caso de uma autorização, ela pode estar ligada a uma implantação ou a um usuário, mas não a ambos ao mesmo tempo.

A tabela a seguir ilustra as informações necessárias para o cadastro de cada uma das entidades:

Entidade

Informações

Usuário
(User)

- Identificador do usuário
- Nome do usuário

Sistema
(System)

- Identificador único do sistema
- Descrição

Implantação de Sistema
(SystemDeployment)

- Identificador único da implantação
- Identificador do sistema a qual a implantação pertence
- Descrição
- Certificado digital usado no login

Interface

- RepId das interfaces de serviço CORBA do que são aceitas no barramento

Autorização
(Authorization)

- Identificador da implantação
- RepId da interface que a implantação pode exportar no barramento
- Flag indicando que o repId da autorização deve constar na base de interfaces previamente aceitas no barramento

Para o sistema se autenticar no barramento é necessário que ele obtenha o entityName cadastrado pelo administrador do mecanismo de governança. O entityName é o mesmo que o identificador da Implantação de Sistemas (SystemDeploy).

Configuração de Administradores

Apenas usuários com direitos de administrador têm permissão de executar comandos de adicionar, remover ou alterar. Os comandos de consulta podem ser executados por qualquer usuário.

A lista dos administradores é mantida nos arquivos de configuração do ACS e do RS (destacando: ambos arquivos), na diretiva "administrators". Para habilitar um usuário como administrador basta adicionar o login do mesmo na lista, como string. Por exemplo:

administrators = { "maria", "joao", "ana" }

Ferramenta de Governança

Uma ferramenta em linha de comando foi criada para permitir ao administrador do barramento efetuar os cadastros. O administrador pode executar a ferramenta remotamente.

O formato padrão da linha de comando é:

$ management [opções] --login=<login_administrador> <comando>

Para obter a lista completa das opções e comandos, basta executar a ferramenta com um único parâmetro --help.

É descrito a seguir as opções e a lista de comandos da ferramenta. Vale destacar que só é possível fornecer um tipo de comando por vez.

Opções

  • Informa o endereço do ACS (padrão 127.0.0.1):

    --acs-host=<endereço>
    
  • Informa a porta do ACS (padrão 2089):

    --acs-port=<porta>
    

Comandos para Manipulação dos Usuários

  • Adiciona um novo usuário

    --add-user=<id_usuario> --name=<nome>
    
  • Remove um usuário

    --del-user=<id_usuario>
    
  • Altera o nome do usário

    --set-user=<id_usuario> --name=<nome>
    
  • Mostra as informações de todos os usuários

    --list-user
    
  • Mostra as informações de um usuário

    --list-user=<id_usuario>
    

Comandos para Manipulação dos Sistemas

  • Adiciona um novo sistema

    --add-system=<id_sistema> --description=<descrição>
    
  • Remove um sistema, mas este não pode estar sendo referenciado por uma implantação

    --del-system=<id_sistema>
    
  • Altera a descrição do sistema

    --set-system=<id_sistema> --description=<descrição>
    
  • Mostra as informações sobre todos os sistemas cadastrados

    --list-system
    
  • Mostra as informações sobre um dado sistema

    --list-system=<id_sistema>
    

Comandos para Manipulação das Implantações

  • Adiciona um nova implantação

    --add-deployment=<id_implantação> --system=<id_sistema> --description=<descrição> --certificate=<arquivo>
    
  • Altera a descrição da implantação

    --set-deployment=<id_implantação> --description=<descrição>
    
  • Altera o certificado da implantação

    --set-deployment=<id_implantação> --certificate=<arquivo>
    
  • Remove a implantação. Todas suas autorizações também são removidas

    --del-deployment=<id_implantação>
    
  • Mostra as informações de todas as implantações cadastradas

    --list-deployment
    
  • Mostra as informações sobre uma determinada implantação

    --list-deployment=<id_implantação>
    
  • Mostrar as informações das implantações que pertencem a um dado sistema

    --list-deployment --system=<id_sistema>
    

Comandos para Manipulação das Interfaces

  • Adiciona uma interface ao catálogo

    --add-interface=<repId_interface>
    
  • Remove a interface do catálogo

    --del-interface=<repId_interface>
    
  • Mostrar todas as interfaces cadastradas

    --list-interface
    

Comandos para Manipulação das Autorizações

  • Concede autorização a um membro (usuário ou implantação) para uma interface. Por padrão, a interface deve estar previamente cadastrada. Caso o parâmetro --no-strict seja usado, a autorização é dada sem verificar a existência da interface no cadastro de interfaces

    --set-authorization=<id_membro> --grant=<repId_interface> [--no-strict]
    
  • Revoga autorização do membro

    --set-authorization=<id_membro> --revoke=<repId_interface>
    
  • Remove as autorizações do membro

    --del-authorization=<id_membro>
    
  • Mostra todas as autorizações

    --list-authorization
    
  • Mostra as autorizações de uma dado membro

    --list-authorization=<id_membro>
    
  • Mostra todas autorizações com as interfaces

    --list-authorization --interface="<iface1> <iface2> ... <ifaceN>"
    

Comandos para Manipulação das Ofertas

  • Remover oferta do registro

    --del-offer=<id_oferta>
    
  • Mostrar todas interfaces ofertadas no registro

    --list-offer
    
  • Mostrar todas interfaces ofertadas por um membro

    --list-offer=<id_membro>
    
  • Mostrar todas interfaces ofertadas com problemas de autorização

    --list-offer --broken
    
  • Mostrar interfaces ofertadas pelo membro, com problemas de autorização

    --list-offer=<id_membro> --broken
    

Exemplos

$ run_management --login=admin --add-system=HelloWorld --description="Hello World"

$ run_management --login=admin --add-user=brunoos --name="Bruno Silvestre"

$ run_management --login=admin --add-deployment=HelloService --system=HelloWorld \
 --description="Hello World implantado no setor A" --certificate=../certs/hello.crt

$ run_management --login=admin --add-interface=IDL:demo/hello:1.0

$ run_management --login=admin --add-interface=IDL:demo/hello:2.0

$ run_management --login=admin --set-authorization=HelloService --grant=IDL:demo/hello:1.0

$ run_management --login=admin --set-authorization=HelloService --grant=IDL:demo/hello:3.0 --no-strict

$ run_management --login=admin --set-authorization=brunoos --grant=IDL:demo/hello:1.0

Scripting

A ferramenta de governança permite automatizar o cadastro e autorização das várias entidades utilizando um arquivo contendo um script de descrição. Esse arquivo é informado por meio da opção --script.

A descrição sobre as diretivas do script, bem como seus parâmetros, é apresentada na tabela abaixo:

Diretiva

Descrição

Parâmetros

User

Cadastra um novo usuário no Serviço de Controle de Acesso

- id: identificador do usuário.
- name: nome do usuário.

System

Cadastra um novo sistema no Serviço de Controle de Acesso

- id: identificador do sistema.
- description: descrição do sistema.

SystemDeployment

Cadastra uma nova implantação no Serviço de Controle de Acesso

- id: identificador da implantação
- system: identificador do sistema.
- description: descrição da implantação.
- certificate: nome do arquivo que contém o certificado da implantação.

Interface

Cadastra uma nova interface no Serviço de Registro

- id: repId da interface.

Grant

Atua junto ao Serviço de Registro para conceder autorização para uma implantação exportar um serviço no barramento

- id: identificador do membro (usuário ou implantação).
- interfaces: lista de repId das interfaces que omembro está autorizada a exportar.
- strict: por padrão, as interfaces acima devem ser verificadas com o cadastro de interface. Ao informa o valor "false" para este parâmetro, o mecanismo de governança não realiza a verificação das interfaces junto ao cadastro.

Revoke

Auta junto ao Serviço de Registro para revogar a autorização de serviço de uma implantação

- id: identificador do membro (usuário ou implantação).
- interfaces: lista de repId das interfaces a serem revogadas.

Vale destacar que na concessão da autorização, interfaces que possuem curingas não são verificas junto ao cadastro de interfaces, mesmo que o parâmetro "strict" esteja ativo.

Como exemplo, temos o seguinte script para cadastro de um serviço de demonstração:

-- Cadastra um novo usuário
User {
  id = "brunoos",
  name = "Bruno Silvestre",
}

-- Cadastra um novo sistema
System {
  id = "HelloWorld",
  description = "Serviço de demonstração 'Hello, World'",
}

-- Cadastra uma nova implantação de um sistema
SystemDeployment {
 id = "HelloService",
 system = "HelloWorld",
 description = "Serviço de demonstração implantado no setor A",
 certificate = "../certs/hello.crt",
}

-- Cadastra interfaces de serviços
Interface { id = "IDL:demo/hello:1.0" }

Interface { id = "IDL:demo/hello:2.0" }

-- Concede autorização verificando as interfaces junto ao cadastro de interfaces
Grant {
  id = "HelloService",
  interfaces = {
    "IDL:demo/hello:1.0",
    "IDL:demo/hello:2.0",
  }
}

-- Concede autorização sem verificar a interface
Grant {
  id = "HelloService",
  strict = false,
  interfaces = {
    "IDL:demo/hello:3.0",
  }
}


Copyright (c) 2006-2012 Tecgraf/PUC-Rio. All rights reserved. See OpenBus License page for more details.


  • No labels
Write a comment…