Avaliadores de ID Confiável
Um avaliador de ID confiável é o mecanismo que avalia se um determinado nome de ID é confiável.
Utilizando o Avaliador de ID confiável com o Modelo de Programação JAX-RPC
- Autenticação básica (token de nome do usuário)
- O servidor de envio de dados envia um token do nome do usuário com um nome do usuário e uma senha para um servidor de recebimento de dados. O consumidor ou receptor da mensagem autentica o token do nome do usuário e valida a confiança com base na implementação de TrustedIDEvaluator. A implementação do TrustedIDEvaluator deve implementar a interface com.ibm.wsspi.wssecurity.id.TrustedIDEvaluator Java™.
- Assinatura
- O servidor de envio de dados assina a mensagem, que pode ser qualquer parte da mensagem, como o corpo SOAP. O servidor de envio de dados envia o token X.509 para um servidor de recebimento de dados. O consumidor ou receptor da mensagem verifica a assinatura e valida o token X.509. A identidade ou o nome distinto do token X.509 utilizado na assinatura digital é validado com base na implementação de TrustedIDEvaluator. A implementação de TrustedIDEvaluator deve implementar a interface Java com.ibm.wsspi.wssecurity.id.TrustedIDEvaluator. Para o certificado X.509, o WebSphere Application Server utiliza o nome distinto no certificado como uma identidade do solicitante.
A figura a seguir demonstra o processo de confiança da asserção de identidade para ambos os modelos de programação:
Nesta figura, o servidor s1 é o servidor de envio de dados e a asserção de identidade está configurada entre o servidor s1 e o servidor s2. O servidor s1 autentica a identidade chamada bob. O servidor s1 deseja enviar bob para o servidor s2 com uma senha. O modo de confiança é uma credencial de s1 que contém a identidade e uma senha. O servidor s2 recebe o pedido, autentica o usuário utilizando um módulo de login JAAS (Java Authentication and Authorization Service) e utiliza o avaliador do ID confiável para determinar se confia na identidade. Se a identidade for confiável, bob será utilizado como o responsável pela chamada que chama o serviço. Se for requerida autorização, bob será a identidade utilizada para verificação de autorização.
A identidade pode ser declarada como a identidade RunAs (chamada) do contexto de segurança atual. Por exemplo, o gateway de serviços da Web autentica um solicitante usando um método seguro, como autenticação de senha e, em seguida, envia a identidade do solicitante apenas para um servidor de backend. É possível também usar asserção de identidade para interoperabilidade com outra implementação do Web Services Security.
- Arquivo de texto corrido
- Banco de Dados
- Servidor LDAP (Lightweight Directory Access Protocol)
O avaliador de ID confiável é utilizado geralmente pelo receptor eventual em um ambiente de vários saltos. A implementação do Web Services Security chama o avaliador de ID confiável e passa o nome da identidade do intermediário como um parâmetro. Se a identidade for avaliada como confiável, o procedimento continua. Caso contrário, será criada uma exceção e o procedimento será parado.
Utilizando o Avaliador de ID confiável com o Modelo de Programação JAX-WS
No modelo de programação JAX-WS, os mesmos conceitos são suportados para o avaliador de ID confiável, embora a implementação seja diferente. Para o tempo de execução do JAX-WS, utilize o console administrativo para selecionar a opção Utilizar asserção de identidade no painel de ligação do responsável pela chamada. Isso define o tipo de token de identidade confiável e, em seguida, define uma lista de uma ou mais identidades confiáveis. O avaliador de ID confiável valida o token de identidade confiável na lista de identidades confiáveis. Para obter informações adicionais sobre a lista de identidades confiáveis, leia o tópico Alterando a Ordem dos Responsáveis pela Chamada de um Token ou de Parte da Mensagem.
Para o WebSphere Application Server Versão 6.1 e posterior, os elementos Caller e TrustMethod são usados para suportar o login do solicitante. O solicitante envia uma mensagem para um intermediário e a mensagem é despachada para o serviço. Com base nas informações de segurança, o serviço executa um login para o solicitante. Em alguns casos, há vários tokens de segurança, portanto, o serviço precisa decidir qual utilizar. Quando o ID do solicitante é incluído como uma asserção de ID, o serviço pode especificar como confiar no intermediário. Os seguintes cenários de intermediário são suportados:
- <BasicAuth, null, null>
- O nome de usuário do solicitante e a senha são usados para autenticação. Nesse caso, a autenticação é executada com as propriedades do solicitante, assim, a senha é requerida para autenticação.
- <Signature, null, null>
- A assinatura do solicitante é usada para autenticação.
- <IDAssertion, Username, null>
- O nome do usuário do solicitante (sem uma senha) é usado para identificar o solicitante. O token UsernameToken é utilizado como a asserção do ID, portanto, não é necessário que uma senha acompanhe o nome de usuário. Neste caso, o serviço confia no intermediário incondicionalmente.
- <IDAssertion, Username, Username>
- O nome de usuário do solicitante (sem uma senha) é usado para identificar o solicitante e o nome de usuário e a senha do intermediário são usados para autenticar o intermediário. O token UsernameToken, quando utilizado para estabelecer identidade confiável, sempre requer uma senha, porque o objetivo do token é estabelecer confiança entre o intermediário e o serviço.
- <IDAssertion, Username, X509>
- O nome de usuário do solicitante (sem uma senha) é usado para identificar o solicitante e a assinatura do intermediário é usada para autenticar o intermediário. Neste caso, a identidade confiável da assinatura do intermediário deve ser estabelecida utilizando-se um certificado X.509.
- <IDAssertion, X509, null>
- A identidade do solicitante é estabelecida usando um certificado X.509. Nesse caso, o certificado X.509 do solicitante não fornece uma assinatura para provar a posse do certificado e, assim, o serviço confia no intermediário incondicionalmente.
- <IDAssertion, X509, Username>
- A identidade do solicitante é estabelecida usando um certificado X.509 e o nome de usuário e a senha do intermediário são usados para autenticar o intermediário. O token UsernameToken, quando utilizado para estabelecer identidade confiável, sempre requer uma senha, porque o objetivo do token é estabelecer confiança entre o intermediário e o serviço.
- <IDAssertion, X509, X509>
- A identidade do solicitante é estabelecida usando um certificado X.509 e a assinatura do intermediário é usada para autenticar o intermediário.