Método de Autenticação de Asserção de Identidade
Ao utilizar o método de autenticação de asserção de identidade (IDAssertion), o token de segurança gerado é um elemento <wsse:UsernameToken> que contém um elemento <wsse:Nome_do_usuário>.
No lado do emissor do pedido, uma rotina de tratamento de retorno de chamada é chamada para gerar o token de segurança. No receptor de pedidos, o token de segurança é validado. Essas duas operações, a geração e a validação do token, são descritas nas seções a seguir.
Validação do token de asserção de identidade:
O receptor de pedidos recupera o token de segurança IDAssertion da mensagem SOAP e o valida utilizando um módulo de login do JAAS (Java™ Authentication and Authorization Service). Com a asserção de identidade, é necessário processamento especial para estabelecer a confiança antes da asserção da identidade como a identidade estabelecida do encadeamento em execução. Esse processamento especial é definido pelo elemento <IDAssertion> no arquivo descritor de implantação, ibm-webservices-ext.xmi. Se todas as verificações de validação tiverem êxito, a identidade declarada será definida como a identidade do encadeamento em execução. Se a validação falhar, o pedido é rejeitado com uma exceção de falha de SOAP.
A configuração de login do JAAS é especificada no elemento <LoginMapping> do arquivo de ligações. As ligações padrão são especificadas no arquivo ws-security.xml. Contudo, é possível substituir essas ligações utilizando o arquivo ibm-webservices-bnd.xmi específico do aplicativo. As informações de configuração consistem em CallbackHandlerFactory e ConfigName. CallbackHandlerFactory especifica o nome de uma classe que é utilizada para criar o objeto CallbackHandler de JAAS. O WebSphere Application Server fornece a implementação com.ibm.wsspi.wssecurity.auth.callback.WSCallbackHandlerFactoryImpl CallbackHandlerFactory. ConfigName especifica uma entrada de nome de configuração JAAS.
O WebSphere Application Server procura o arquivo security.xml para obter uma correspondência de entrada de nome de configuração. Se não for localizada uma correspondência, ele procura no arquivo wsjaas.conf. O WebSphere Application Server fornece a entrada de configuração padrão system.wssecurity.IDAssertion, que é adequada para o método de autenticação de asserção de identidade.
O elemento <IDAssertion> no arquivo descritor de implementação ibm-webservices-ext.xmi especifica o processamento especial necessário quando se utiliza o método de autenticação de asserção de identidade. O elemento <IDAssertion> é composto de dois subelementos: <IDType> e <TrustMode>.
- Nome do usuário
- DN (Nome Distinto)
- Certificado X.509
Quando <IDType> é username, um token de nome de usuário (por exemplo, Bob) é fornecido. Esse nome de usuário é mapeado para um usuário no registro de usuários e é a identidade declarada após o êxito da validação de confiança. Quando o valor <IDType> é DN, um token de nome de usuário contendo um nome distinto é fornecido (por exemplo, cn=Bob Smith, o=ibm, c=us). Esse DN é mapeado para um usuário no registro de usuários e esse usuário é a identidade declarada após o êxito da validação de confiança. Quando <IDType> é X509Certificate, um token de segurança binário contendo um certificado X509 é fornecido e o valor SubjectDN do certificado (por exemplo, cn=Bob Smith, o=ibm, c=us) é extraído. Esse valor SubjectDN é mapeado para um usuário no registro de usuários e esse usuário é a identidade declarada após o êxito da validação de confiança.
- Assinatura
- BasicAuth
- Nenhum valor especificado
Quando o valor <TrustMode> é Signature a assinatura é validada. Em seguida, o signatário (por exemplo, cn=IBM Authority, o=ibm, c=us) é mapeado para uma identidade no registro de usuários (por exemplo, IBMAuthority). Para assegurar que a autoridade de asserção seja de confiança, a identidade mapeada (por exemplo, IBMAuthority) é validada em relação a uma lista de identidades confiáveis. Quando o elemento <TrustMode> é BasicAuth, existe um token de nome de usuário com um nome de usuário e uma senha, que é o nome de usuário e a senha da autoridade de asserção.
O nome do usuário e a senha são validados. Se forem validados com êxito, esse nome de usuário (por exemplo, IBMAuthority) é validado em relação a uma lista de identidades confiáveis. Se não for especificado um valor para <TrustMode>, a confiança é presumida e não é executada validação adicional de confiança. Esse tipo de asserção de confiança é chamado modo de confiança presumida. Utilize o modo de confiança presumida somente em um ambiente no qual a confiança seja estabelecida utilizando algum outro mecanismo.
Se todas as validações descritas anteriormente obtiverem êxito, a identidade declarada (por exemplo, Bob) é definida como a identidade do encadeamento em execução. Se qualquer uma das validações falhar, o pedido é rejeitado com uma exceção de falha de SOAP.