Conexões Confiáveis com o DB2
As conexões confiáveis permitem que o servidor de aplicativos use objetos de Contextos Confiáveis do DB2 para estabelecer conexões com um usuário cujas credenciais são confiáveis pelo servidor DB2 para abrir a conexão. Ao estabelecer um Contexto Confiável, esse usuário é, então, confiável para declarar outras identidades de usuário no servidor DB2 sem a necessidade de reautenticação. Isso também melhora a segurança do banco de dados DB2 ao eliminar a necessidade de designar todos os privilégios para um único usuário. A implementação de conexões confiáveis resulta na propagação da identidade do cliente enquanto utiliza o conjunto de conexões para eliminar a perda de desempenho ao fechar e reabrir as conexões com uma identidade diferente.
Para reduzir a despesa significativa de se estabelecer novas conexões, o gerenciador de conexão mantém um conjunto de conexões em que cada conexão é acompanhada pela credencial utilizada originalmente para abrir a conexão. Quando um aplicativo precisa de uma conexão, o gerenciador de conexão utiliza o objeto de credencial para corresponder uma conexão livre no conjunto de conexões. Se não houver nenhuma conexão livre e o número máximo de conexões não tiver sido alcançado, o gerenciador do conjunto de conexões abrirá uma nova conexão utilizando esse objeto de credencial. Esse é o mapeamento de conexões padrão utilizado pelo servidor de aplicativos e é conhecido como mapeamento de credenciais de vários para um porque a conexão é aberta utilizando-se o objeto de credencial no assunto, que, geralmente, não é o mesmo da identidade RunAs. Esse mapeamento simples suporta tranquilamente o conjunto de conexões, mas a identidade do responsável pela chamada nunca é propagada ao banco de dados.
Para propagar a identidade do responsável pela chamada ao servidor de banco de dados, é possível conectar um módulo de login Java™ Authentication and Authorization Service (JAAS). O uso desse método permite mapear a credencial de usuário do servidor de aplicativos para a credencial de usuário adequada para a região de segurança do servidor de banco de dados. Essa abordagem mantém a identidade do responsável pela chamada, mas não utiliza o conjunto de conexões.
As conexões confiáveis são utilizadas no lugar do mapeamento padrão ou de um mapeamento do JAAS para conectar-se à origem de dados. Elas suportam a propagação da identidade do cliente, podendo também utilizar o conjunto de conexões para reduzir a perda de desempenho ao fechar e reabrir as conexões com uma identidade diferente. Conexões confiáveis usam o objeto de contexto confiável do DB2.
![[z/OS]](../images/ngzos.gif)
O uso da conexão confiável fornece os pontos de plug-in necessários para suportar a inclusão de sua própria implementação segura do contexto confiável do DB2. As conexões confiáveis separam a identidade utilizada para estabelecer a conexão da identidade que acessa os serviços do servidor de backend. A conexão é estabelecida por um usuário cujas credenciais são confiáveis para o servidor DB2 abrir a conexão. O mesmo usuário também é confiável para aceitar a identidade de outros usuários. Essa asserção também ajuda a fortalecer a segurança do banco de dados eliminando a necessidade de conceder todos os privilégios a um único usuário.
Quando o aplicativo solicita uma conexão com o banco de dados, o gerenciador de conexão pode localizar qualquer conexão confiável inativa e aceitar a identidade do usuário para o servidor de backend. Todas as operações executadas no servidor de backend provêm da identidade do usuário aceita. O uso de um mapeamento de identidades ainda poderá ser necessário se o servidor de backend utilizar um repositório de usuário diferente daquele do servidor de aplicativos.
- Um objeto do proprietário do recurso representado por esse assunto de recurso
- Um objeto PasswordCredential no conjunto de credenciais privadas
- Um objeto IdentityPrincipal no conjunto de proprietários