Módulo de Login do Token de Segurança Genérico para o Gerador de Token

Quando uma solicitação de serviço da Web for feita, o servidor de aplicativos chama o módulo de login do token de segurança genérico para o gerador de token como parte do processo de autenticação do Web Service Security.

O módulo de login delega o processo de geração de token a um Security Token Service (STS) por meio de um pedido WS-Trust Issue ou WS-Trust Validate . O STS processa a solicitação e retorna uma mensagem RequestSecurityTokenResponse para o módulo de login. O módulo de login inclui o token a partir da mensagem de resposta STS no cabeçalho de segurança da mensagem de solicitação de serviço da Web. Se um token não for retornado ou um erro ocorrer a partir da chamada STS, então o módulo de login produz uma mensagem LoginException e um erro é retornado para o cliente de serviços web.

O módulo de login e seu uso do Security Token Service permite as seguintes ações:
  • Uma troca de tokens de segurança quando os tokens de segurança recebidos ou de saída são diferentes tipos de token
  • Uma troca de tokens de segurança ao mapear uma identidade para outra identidade
  • A avaliação de autorização verifica para garantir que os usuários autenticados tenham permissão para chamar o serviço da Web de destino
  • A troca de token é invocada a partir do RunAs Subject ou gerada pelo ambiente de tempo de execução da Segurança de Serviços Web. A troca baseia-se no conjunto de políticas e ligações configurados para a solicitação de confiança.
Para usar o módulo de login do token de segurança genérico no gerador de token, o gerador de token nas ligações do conjunto de políticas do Web Services Security deve:
  • Especificar o nome de configuração de login Java™ Authentication and Authorization Service (JAAS)
  • Especificar o nome de classe do manipulador de retorno de chamada
O nome de configuração de login do JAAS é wss.generate.issuedToken, e o nome da classe do manipulador de callback é com.ibm.websphere.wssecurity.callbackhandler.GenericIssuedTokenGenerateCallbackHandler. Para obter informações adicionais, consulte a documentação sobre como configuração um módulo de login genérico para um token de autenticação no lado do gerador de token do processo do Web Services Security.

Tipos de Tokens Suportados

  • Você pode especificar qualquer tipo de token cujo valor ValueType pode ser processado pelo STS designado. Dependendo do STS usado, os tipos de tokens podem incluir:
    • Security Assertion Markup Language (SAML) 2.0
    • SAML 1.1
    • userName
    • PassTicket
    • Kerberos
    • LTPA (Lightweight Third Party Authentication)
    • Credencial do Tivoli ® Access Manager
  • O token solicitado enviado na mensagem SOAP para o provedor de serviços é o token especificado na política.
  • Este token pode ser usado apenas para autenticação. Este token não pode ser usado como um token de proteção. Para SAML Versão 2.0, 1.1 e 1.0, apenas os métodos de confirmação de transmissão e send voucher são suportados.

Você pode configurar o módulo de login do token de segurança genérico para que o gerador de token use um pedido WS-Trust Issue ou WS-Trust Validate para trocar ou validar o token de segurança. Estas duas opções são descritas nas seções subsequentes.

WS-Trust Issue

Você pode configurar o módulo de login para o gerador de token utilizar WS-Trust Issue para solicitar um token de segurança. Neste cenário, o cliente de confiança envia um token de segurança de autenticação para um STS no cabeçalho de segurança SOAP. Este token de autenticação é originado de um dos seguintes locais:
  • O RunAs Subject no contexto de segurança atual
  • O manipulador de retorno de chamada configurado nas ligações para os conjuntos de políticas do cliente de confiança
No processamento bem-sucedido do pedido de STS, o STS autentica o token e emite o token solicitado.

WS-Trust Validate

Você pode, opcionalmente, configurar o módulo de login para o gerador de token utilizar WS-Trust Validate para solicitar um token de segurança. Neste cenário, o módulo de login procura o token de segurança de autenticação a partir do RunAs Subject baseado no valor do token configurado ValueType . O módulo de login envia o token na solicitação de confiança, integrando-o dentro do elemento RequestedSecurityToken como elemento filho. Este token pode ser envolto dentro do elemento ValidateTarget ou do elemento de extensão Base . O STS valida o token integrado dentro do elemento RequestedSecurityToken e retorna um novo token de segurança ou um código de status de validação. Se for retornado apenas um código de status de validação, o gerador de token usará o token de segurança original. Embora o token retornado possa ter qualquer valor ValueType , como descrito anteriormente no cenário de uso WS-Trust Issue , o token a ser validado deve ser um dos seguintes tipos de token:
  • SAML 2.0
  • SAML 1.1
  • userName
  • PassTicket
  • Kerberos
  • LTPA
  • LTPA Versão 2

Use WS-Trust Issue ou WS-Trust Validate

O módulo de login genérico usa WS-Trust Validate para validar o token a partir do RunAs Subject se as seguintes condições forem ambas verdadeiras:
  • Um RunAs Subject existe no contexto de segurança atual
  • Existe apenas um token de segurança cujo tipo de valor corresponde ao valor ValueType para o token solicitado
Se WS-Trust Validate retornar um código de status válido e um token de segurança, o token retornado será o token solicitado. Se WS-Trust Validate retornar um código de status válido apenas, o token existente a partir do RunAs Subject é o token solicitado.

Além disso, é possível selecionar um token a partir do RunAs Subject para validação e trotá-lo pelo token solicitado. O token selecionado pode ter um valor diferente de ValueType a partir do token solicitado. Para obter informações adicionais, consulte a documentação sobre como configurar um módulo de login do token de segurança genérico para um token de autenticação no lado do gerador de token do processo do Web Services Security.

Configurações suportadas: Se o valor ValueType para o token solicitado for um tipo LTPA ou LTPA Versão 2, o módulo de login do token de segurança genérico extrai automaticamente um WSCredential. Ele gerará um token do Web Service Security LTPA ou LTPA v2 para validação e troca, se as seguintes condições forem verdadeiras:
  • Um token de segurança LTPA ou LTPA v2 não existe no RunAs Subject.
  • Um WSCredential existe no RunAs Subject.

Quando houver apenas um token de segurança em RunAs Subject que corresponde ao ValueType do token solicitado, será possível configurar o módulo de login para não chamar um pedido WS-Trust Validate para validar o token correspondente. Em vez disso, o módulo de login envia o token correspondente para o provedor de serviços de recebimento de dados sem validação.

O módulo de login do token de segurança genérico usa automaticamente WS-Trust Issue para solicitar o token, se as seguintes condições forem verdadeiras:
  • Um RunAs Subject não existe
  • Um valor de token de correspondência ValueType não existe no RunAs Subject
  • O módulo de login não pode validar o token a partir do RunAs Subject

Uma opção de configuração reforça o uso de WS-Trust Issue no módulo de login genérico ou no WS-Trust Validate. Para obter informações adicionais, consulte a documentação sobre como configuração um módulo de login genérico para um token de autenticação no lado do gerador de token do processo do Web Services Security.

Conjuntos de políticas

A implementação do módulo de login do token de segurança genérico não envolve um novo tipo de token em um conjunto de políticas. Por exemplo, se você planeja usar um módulo de login genérico para gerar um token do nome do usuário, poderá criar um conjunto de políticas que especifica um token do nome do usuário como um token de autenticação. Alguns tipos de tokens customizados não são suportados pelos módulos de login do sistema padrão existentes. No entanto, é possível implementar estes tipos de tokens usando módulos de login customizados. Estes tipos de tokens customizados serão suportados por módulos de login do token de segurança genéricos se forem suportados pelo STS designado.

Ligações

Ao configurar ligações para um token de autenticação, você tem as seguintes opções:
  • Usar um módulo de login genérico.
  • Usar um módulo de login padrão do sistema existente.
  • Criar seu próprio módulo de login customizado.

Por exemplo, se você configurar um token de nome de usuário, você pode usar a configuração de login wss.generate.unt JAAS e manter o comportamento existente. No entanto, você pode configurar o login do wss.generate.issuedToken JAAS para usar o módulo de login do token de segurança genérico.