Funções de nomenclatura
O conceito de autorização baseado em função do J2EE (Java™ 2 Platform, Enterprise Edition) é estendido para proteger o serviço CosNaming.
A segurança CosNaming oferece granularidade aprimorada do controle da segurança sobre funções de CosNaming. As funções de CosNaming estão disponíveis nos servidores CosNaming, como o WebSphere Application Server. Elas afetam o conteúdo do espaço de nomes. Em geral, duas maneiras são aceitáveis, nas quais programas clientes resultam em chamadas CosNaming. A primeira é por meio dos métodos JNDI (Java Naming and Directory Interface). A segunda são os clientes CORBA, chamando os métodos CosNaming diretamente.
- CosNamingRead. Os usuários que têm a função CosNamingRead
designada podem executar consultas do espaço de nomes, por exemplo, por
meio do método de consulta de JNDI.
O objeto especial Everyone é a política padrão para esta função.
Tabela 1. Pacotes e Métodos de Interface da Função CosNamingRead. A tabela a seguir lista os Pacotes e Métodos de Interface da Função CosNamingRead Pacote Métodos da Interface javax.naming - Context.list
- Context.listBindings
- Context.lookup
- NamingEnumeration.hasMore
- NamingEnumeration.next
org.omg.CosNaming - NamingContext.list
- NamingContext.resolve
- BindingIterator.next_one
- BindingIterator.next_n
- BindingIterator.destroy
- CosNamingWrite. Os usuários designados à função CosNamingWrite
podem gravar operações (por exemplo, bind, rebind ou unbind do JNDI) além
das operações CosNamingRead. Como política padrão, os Assuntos não são designados
com essa função.
Tabela 2. Pacotes e Métodos de Interface da Função CosNamingWrite. A tabela a seguir lista os Pacotes e Métodos de Interface da Função CosNamingWrite Pacote Métodos da Interface javax.naming - Context.bind
- Context.rebind
- Context.rename
- Context.unbind
org.omg.CosNaming - NamingContext.bind
- NamingContext.bind_context
- NamingContext.rebind
- NamingContext.rebind_context
- NamingContext.unbind
- CosNamingCreate. Os usuários designados à função
CosNamingCreate podem criar novos objetos no espaço de nomes por meio de
operações createSubcontext do JNDI, além das operações CosNamingWrite. Como
uma política padrão, Assuntos não são designados a esta função.
Tabela 3. Pacotes e Métodos de Interface da Função CosNamingCreate. A tabela a seguir lista os Pacotes e Métodos de Interface da Função CosNamingCreate Pacote Métodos da Interface javax.naming Context.createSubcontext org.omg.CosNaming NamingContext.bind_new_context - CosNamingDelete. Os usuários aos quais for designada a função
CosNamingDelete podem destruir objetos do espaço de nomes, por exemplo,
utilizando o método destroySubcontext de JNDI e operações CosNamingCreate. Como
uma política padrão, Assuntos não são designados a essa função.
Tabela 4. Pacotes e Métodos de Interface da Função CosNamingDelete. A tabela a seguir lista os Pacotes e Métodos de Interface da Função CosNamingDelete Pacote Métodos da Interface javax.naming Context.destroySubcontext org.omg.CosNaming NamingContext.destroy
- javax.naming
- Este pacote cria a exceção javax.naming.NoPermissionException que mapeia NO_PERMISSION da chamada do método CosNaming para NoPermissionException.
- org.omg.CosNaming
- Este pacote cria a exceção org.omg.CORBA.NO_PERMISSION.
Usuários, grupos ou os assuntos especiais AllAuthenticated e Everyone podem ser incluídos ou removidos das funções de nomenclatura do console administrativo do WebSphere Application Server a qualquer momento. No entanto, você deve reiniciar o servidor para que as mudanças tenham efeito. Uma boa prática é mapear grupos ou um dos assuntos especiais, ao invés de usuários específicos, para funções de Nomeação, por ser mais flexível e fácil de administrar a longo prazo. No mapeamento de um grupo para uma função de nomenclatura, a inclusão de usuários ou remoção deles do grupo ocorre fora do WebSphere Application Server e não exige um reinício do servidor para que a mudança seja efetivada.
Se um usuário tem uma determinada função de nomenclatura designada e este usuário é membro de um grupo que tem uma função de nomenclatura designada diferente, o usuário terá o acesso mais permissivo entre a função designada e a função designada ao grupo. Por exemplo, suponhamos que o usuário MyUser tenha a função CosNamingRead designada. Além disso, suponhamos que o grupo MyGroup tenha a função CosNamingCreate designada. Se o usuário MyUser for membro do grupo MyGroup, o usuário MyUser terá a função CosNamingCreate designada, pois o usuário é membro do grupo MyGroup. Se o usuário MyUser não for membro do grupo MyGroup, terá a função CosNamingRead designada.
A política de autorização CosNaming é forçada apenas quando segurança administrativa está ativada. Quando a segurança administrativa está ativada, as tentativas de executar operações CosNaming sem a designação da função apropriada resulta numa exceção org.omg.CORBA.NO_PERMISSION do servidor CosNaming.
No WebSphere Application Server, cada função CosNaming é designada a apenas uma função. Portanto, os usuários que tiverem a função CosNamingCreate designada não poderão consultar o espaço de nomes, a menos que também tenham a função CosNamingRead designada. Na maioria dos casos, um criador precisa de três funções designadas: CosNamingRead, CosNamingWrite e CosNamingCreate. A designação de funções CosNamingRead e CosNamingWrite para o exemplo de criador foi incluída na função CosNamingCreate. Na maioria dos casos, os administradores do WebSphere Application Server não precisam alterar a designação de funções de cada usuário ou grupo ao mudarem para este release a partir de um anterior.
Apesar da capacidade de restringir amplamente o acesso ao espaço de nomes, alterando a política padrão, fazer isso poderá resultar em exceções org.omg.CORBA.NO_PERMISSION inesperadas no tempo de execução. Geralmente, os aplicativos J2EE acessam o espaço de nomes e a identidade é a do usuário autenticado no WebSphere Application Server durante o acesso ao aplicativo J2EE. A menos que o provedor de aplicativos J2EE comunique claramente as funções de nomenclatura esperadas, leve em consideração alterar a política de autorização de nomenclatura padrão.