OpenBus IDL  2.0.1
access_control.idl
1 
4 #ifndef __TECGRAF_OPENBUS_CORE_V20_SERVICES_ACCESSCONTROL_IDL__
5 #define __TECGRAF_OPENBUS_CORE_V20_SERVICES_ACCESSCONTROL_IDL__
6 
7 #include "core.idl"
8 #include "credential.idl"
9 
11 module tecgraf {
12 
14 module openbus {
15 
17 module core {
18 
19 /* \brief Módulo de versionamento dos Serviços Básicos do OpenBus. */
20 module v2_0 {
21 
23 module services {
24 
26 module access_control {
27 
28 /*
29  * minor codes de CORBA::NO_PERMISSION do protocolo OpenBus:
30  */
32 const unsigned long InvalidCredentialCode = 0x42555300; // 1112888064 "BUS\0"
34 const unsigned long InvalidChainCode = 0x42555301; // 1112888065 "BUS\1"
36 const unsigned long InvalidLoginCode = 0x42555302; // 1112888066 "BUS\2"
38 const unsigned long UnverifiedLoginCode = 0x42555303; // 1112888067 "BUS\3"
40 const unsigned long UnknownBusCode = 0x42555304; // 1112888068 "BUS\4"
42 const unsigned long InvalidPublicKeyCode = 0x42555305; // 1112888069 "BUS\5"
44 const unsigned long NoCredentialCode = 0x42555306; // 1112888070 "BUS\6"
45 /*
46  * minor codes de CORBA::NO_PERMISSION da biblioteca de acesso do OpenBus
47  */
49 const unsigned long NoLoginCode = 0x425553FF; // 1112888319 "BUS\255"
51 const unsigned long InvalidRemoteCode = 0x425553FE; // 1112888318 "BUS\254"
53 const unsigned long UnavailableBusCode = 0x425553FD; // 1112888317 "BUS\253"
55 const unsigned long InvalidTargetCode = 0x425553FC; // 1112888316 "BUS\252"
56 
57 /****************************************************************************/
58 /* Faceta de Gerência de Credenciais de Entidades Logadas no Barramento *****/
59 /****************************************************************************/
60 
62 exception MissingCertificate { Identifier entity; };
63 
64 
65 
68  HashValue hash;
69  OctetSeq data;
70 };
72 struct LoginInfo {
73  Identifier id;
74  Identifier entity;
75 };
77 typedef sequence<LoginInfo> LoginInfoSeq;
79 struct CallChain {
80  Identifier target;
81  LoginInfoSeq originators;
83 };
84 
85 
87 typedef unsigned long ValidityTime;
88 
89 
90 
92 exception InvalidPublicKey { string message; };
93 
95 exception WrongEncoding { string message; };
96 
98 exception AccessDenied {};
99 
101 exception InvalidLogins { IdentifierSeq loginIds; };
102 
103 
104 
109 interface LoginProcess {
134  LoginInfo login(in OctetSeq pubkey, in EncryptedBlock encrypted,
135  out ValidityTime validity)
137 
139  oneway void cancel();
140 };
141 
145 interface AccessControl {
146  readonly attribute Identifier busid;
147  readonly attribute OctetSeq buskey;
173  LoginInfo loginByPassword(in Identifier entity, in OctetSeq pubkey,
174  in EncryptedBlock encrypted, out ValidityTime validity)
176 
195  LoginProcess startLoginByCertificate(in Identifier entity,
196  out EncryptedBlock challenge)
198 
211  LoginProcess startLoginBySharedAuth(out EncryptedBlock challenge)
212  raises (ServiceFailure);
213 
217  void logout() raises (ServiceFailure);
218 
225  ValidityTime renew() raises (ServiceFailure);
226 
239  credential::SignedCallChain signChainFor(in Identifier target)
240  raises (InvalidLogins, ServiceFailure);
241 };
242 
243 /****************************************************************************/
244 /* Faceta de Notificação de Eventos de Credenciais de Autenticação **********/
245 /****************************************************************************/
246 
252 interface LoginObserver {
258  void entityLogout(in LoginInfo login);
259 };
260 
265 
275  boolean watchLogin(in Identifier loginId) raises (ServiceFailure);
276 
285  void forgetLogin(in Identifier loginId) raises (ServiceFailure);
286 
296  void watchLogins(in IdentifierSeq loginIds)
297  raises (InvalidLogins, ServiceFailure);
298 
308  void forgetLogins(in IdentifierSeq loginIds) raises (ServiceFailure);
309 
315  LoginInfoSeq getWatchedLogins();
316 
321  void remove() raises (ServiceFailure);
322 };
323 
327 interface LoginRegistry {
335  LoginInfoSeq getAllLogins() raises (UnauthorizedOperation, ServiceFailure);
336 
346  LoginInfoSeq getEntityLogins(in Identifier entity)
348 
359  boolean invalidateLogin(in Identifier loginId)
361 
370  LoginInfo getLoginInfo(in Identifier loginId, out OctetSeq pubkey)
371  raises (InvalidLogins, ServiceFailure);
372 
383  ValidityTime getLoginValidity(in Identifier loginId)
384  raises (ServiceFailure);
385 
394  LoginObserverSubscription subscribeObserver(in LoginObserver callback)
395  raises (ServiceFailure);
396 };
397 
398 }; // access_control
399 
400 }; // services
401 
402 }; // version
403 
404 }; // core
405 
406 }; // openbus
407 
408 }; // tecgraf
409 
410 #endif
OctetSeq data
Senha ou resposta de desafio para autenticação.
const unsigned long UnavailableBusCode
Minor code de NO_PERMISSION: barramento indisponível.
HashValue hash
Hash da chave pública a ser associada ao login.
const unsigned long InvalidChainCode
Minor code de NO_PERMISSION: cadeia inválida.
Dados secretos do login de uma entidade no barramento.
const unsigned long InvalidTargetCode
Minor code de NO_PERMISSION: login do alvo da chamada é inválido.
readonly attribute Identifier busid
Identificador do barramento.
Indica que o acesso ao barramento foi negado sem justificaiva.
Indica que não existe certificado associado a entidade.
const unsigned long UnverifiedLoginCode
Minor code de NO_PERMISSION: não foi possível verificar o login.
unsigned long ValidityTime
Representa o tempo de validade de um login (em segundos).
Indica que a operação chamada não é permitida para a entidade.
Definition: core.idl:52
const unsigned long InvalidLoginCode
Minor code de NO_PERMISSION: login inválida.
Interface a ser implementada por um observador de logins. Esse observador será notificado quando algu...
LoginInfoSeq originators
Informações de login das entidades que realizaram as chamadas em cadeia que originam essa chamada...
Exceção que sinaliza uma falha interna num serviço básico.
Definition: core.idl:55
readonly attribute OctetSeq buskey
Chave pública do barramento.
Indica que a chave de acesso fornecida é inválida.
LoginInfo caller
Informações de login da entidades que efetivamente fez chamada atual (última da cadeia).
Identifier entity
Identificador da entidade que fez login.
Informações sobre uma cadeia de chamada aninhadas no barramento.
Indica que um dado não foi codificado com a chave do barramento.
const unsigned long InvalidPublicKeyCode
Minor code de NO_PERMISSION: chave pública inválida.
Interface para conclusão da etapa final do procedimento de login por certificado. ...
const unsigned long InvalidCredentialCode
Minor code de NO_PERMISSION: credencial inválida.
Gerência de controle de acesso de entidades ao barramento.
Informações públicas do login de uma entidade no barramento.
const unsigned long InvalidRemoteCode
Minor code de NO_PERMISSION: servidor chamado é inválido.
const unsigned long NoLoginCode
Minor code de NO_PERMISSION: ausência de login.
Gerência de logins observados por um observador registrado.
const unsigned long UnknownBusCode
Minor code de NO_PERMISSION: barramento desconhecido.
sequence< LoginInfo > LoginInfoSeq
Lista de informações de login.
const unsigned long NoCredentialCode
Minor code de NO_PERMISSION: credencial não foi encontrada.
Identifier target
Nome da entidade a quem a cadeia se destina.