Delegações
A delegação é uma propagação de identidade de segurança do processo de um responsável pela chamada para um objeto de chamada. Conforme a especificação Java™ Platform, Enterprise Edition (Java EE), um servlet e os enterprise beans podem propagar a identidade do cliente ou do usuário remoto ao chamar os enterprise beans, ou podem utilizar outra identidade especificada como indicado no descritor de implementação correspondente.
- Delegar (RunAs) a identidade do cliente
- Delegar (RunAs) a identidade especificada
- Delegar (RunAs) a identidade do sistema



A especificação EJB suporta apenas delegação (RunAs) no nível EJB (Enterprise JavaBeans). Mas uma extensão permite a especificação RunAs no nível do método EJB. Com um nível de método EJB, a especificação RunAs pode especificar uma função RunAs diferente para métodos diferentes dentro dos mesmos enterprise beans.
A especificação RunAs está detalhada no descritor de implementação, que é o arquivo ejb-jar.xml do módulo EJB e o arquivo web.xml do módulo da Web. A extensão da especificação RunAs é incluída no arquivo ibm-ejb-jar-ext.xml.
Um arquivo de ligação específico da IBM está disponível para cada aplicativo que contém um mapeamento da função RunAs para o usuário. Este arquivo é especificado no arquivo ibm-application-bnd.xml.

Processo de Delegação
- Tabela de mapeamento de recurso para função RunAs
- Tabela de mapeamento de função RunAs para ID do usuário e senha
Utilize a tabela de mapeamento de Recurso para Função RunAs para obter a função que é utilizada por um servlet ou por beans corporativos para propagar para a próxima chamada a beans corporativos.
Utilize o RunAsRole para a tabela de mapeamento do ID do usuário e senha para obter o ID do usuário que pertence à função RunAs e sua senha.
A delegação é executada após a autenticação e autorização com êxito. Durante esse processo, o módulo de delegação consulta a tabela de mapeamento de Recurso para Função RunAs para obter a função RunAs (3). O módulo de delegação consulta a tabela de mapeamento de função RunAs para ID do usuário e senha para obter o usuário que pertence à função RunAs (4). O ID do usuário e a senha são utilizados para criar uma nova credencial utilizando o módulo de autenticação, que não é mostrado na figura.
A credencial resultante é armazenada no ORB
(Object Request Broker) Current como uma credencial de chamada (5). O
servlet e os enterprise beans, quando chamam outros enterprise beans, selecionam a
credencial de chamada no ORB Current (6) e chamam os próximos enterprise beans
(7).