Um token de transmissão SAML é um token SAML que usa o método de confirmação de assunto de transmissão. Em um método de confirmação de assunto de acesso, um emissor de mensagens SOAP não é requerido a estabelecer a correspondência que liga um token do SAML ao conteúdo da mensagem SOAP contida.
É possível configurar os anexos do conjunto de políticas de cliente e de provedor e as ligações com o token de acesso do SAML.
Sobre Esta Tarefa
Uma política de token SAML é definida por uma extensão CustomToken no servidor de aplicativos. Para criar a extensão CustomToken, você deve definir os parâmetros de configuração do token do SAML nos termos das propriedades customizadas no documento de ligação de cliente e de provedor. A amostra SAML Bearer Client e a amostra SAML Bearer Provider para ligações gerais contêm a configuração essencial para as propriedades customizadas.
As ligações de amostra de cliente e de provedor contêm as informações de configuração do tipo de token SAML11 e SAML20. Essas amostras podem ser usadas com os conjuntos de políticas SAML11 e SAML20. Dependendo de como você pretende implementar os tokens SAML, será necessário modificar os valores de propriedades nas amostras de ligação instaladas. Os exemplos das propriedades e os valores da propriedade são fornecidos no procedimento a seguir.
Como o procedimento a seguir indica, para modificar a amostra de ligação, você deve primeiro configurar o anexo do conjunto de políticas do cliente de serviços da web e, em seguida, modificar o anexo do conjunto de políticas do provedor de serviços da web. O exemplo fornecido no procedimento usa o aplicativo de serviço da web de amostra JaxWSServicesSamples.
- Configurar o cliente de confiança
Se você estiver usando as ligações gerais para acessar o STS externo, ignore para Anexar o conjunto de políticas e ligações à etapa do aplicativo cliente.
Se você estiver usando as ligações específicas ao aplicativo para acessar o STS externo, conclua as subetapas a seguir.
- Anexe temporariamente um conjunto de políticas do cliente de confiança ao aplicativo do cliente de serviços da web, para que as ligações possam ser configuradas.
Anexar um conjunto de políticas ao cliente de confiança permita usar o console administrativo para criar e, em seguida, modificar as ligações do documento de ligação de cliente. Você apenas deverá concluir esta ação, se uma ligação específica ao aplicativo for usada para acessar o STS externo.
- No console administrativo, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de Políticas e Ligações de Cliente de Serviço.
- Selecione o recurso do cliente de serviços da web (JaxWSServicesSamples).
- Clique em Anexar Conjunto de Política do Cliente.
- Selecione o conjunto de políticas Padrão WSHTTPS do Nome de Usuário.
- Criar a ligação de cliente de confiança.
- Selecione novamente o recurso do cliente de serviços da web (JaxWSServicesSamples).
- Clique em Designar Ligação.
- Clique em Nova Ligação Específica de Aplicativo para criar uma
ligação específica de aplicativo.
- Especifique um nome de configuração de ligação para a nova ligação específica ao aplicativo. Neste exemplo, o nome de ligação é SamlTCSample.
- Inclua o tipo de política de transporte SSL na ligação,
Clique em Incluir > Transporte SSL e, em seguida, clique em OK.
- Inclua o tipo de política de WS-Security na ligação, em seguida, modifique as configurações de autenticação do cliente de confiança.
- Se o tipo de política de WS-Security ainda não estiver na definição de ligação SamlTCSample, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de Políticas e Ligações de Cliente de Serviço > SamlTCSample.
- Clique em Incluir > WS-Security > Autenticação e Proteção > request:uname_token.
- Clique em Aplicar.
- Selecione Manipulador de Retorno de Chamada
- Especifique um nome de usuário e senha para o cliente de serviços da web se autenticar no STS externo.
- Clique em OK e, em seguida, clique em Salvar.
- Depois que as configurações de ligação estiverem salvas, retorne para o painel Conjuntos de Políticas e Ligações de Cliente de Serviços e separe o conjunto de políticas e as ligações.
- Clique em Conjuntos de Políticas e Ligações de Cliente de Serviço na navegação desta página ou em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de de Políticas e Ligações de Cliente de Serviço.
- Selecione o recurso do cliente de serviços da web (JaxWSServicesSamples) e, em seguida, clique em Separar Conjunto de Políticas do Cliente.
A configuração de ligação específica ao aplicativo que você acabou de criar não será excluída do sistema de arquivos quando o conjunto de políticas for separado. Entretanto, é possível usar ainda a ligação específica ao aplicativo criada para acessar o STS com o cliente de confiança.
- Anexar o conjunto de políticas e as ligações do SAML ao aplicativo cliente
- Anexe o conjunto de políticas do SAML desejado ao aplicativo cliente de serviços da web.
- Se a política SAML ainda não estiver na página Conjuntos de Políticas e Ligações de Cliente de Serviço para JaxWSServicesSamples, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de Políticas e Ligações do Cliente
- Selecione o recurso do cliente de serviços da Web.
- Clique em Anexar Conjunto de Política do Cliente.
- Selecione a política SAML apropriada para o cliente de serviços da web.
- Anexe a ligação geral de amostra do SAML Bearer Client ao cliente.
- Selecione o recurso do cliente de serviços da Web novamente.
- Clique em Designar Ligação.
- Selecione Amostra do SAML Bearer Client.
- Configure as ligações do cliente de serviços da Web
Configure a URL de terminal do STS na ligação de amostra.
- Clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de Política e Ligações de Cliente de Serviço > Amostra do SAML Bearer Client > WS-Security > Autenticação e Proteção.
- Clique em gen_saml11token ou gen_saml20token na tabela Tokens de Autenticação.
- Clique em Manipulador de Retorno de Chamada.
- Modifique a propriedade stsURI para especificar o terminal STS.
Essa propriedade não é necessária para o próprio emissor em um servidor intermediário. No entanto, se a propriedade estiver especificada para o próprio emissor em um servidor intermediário, ela será configurada como www.websphere.ibm.com/SAML/Issuer/Self.
- Verifique se as propriedades a seguir estão configuradas para os valores necessários.
Se algumas dessas propriedades estiverem configuradas para algum outro valor, você deverá alterar a configuração de propriedades para o valor necessário.
- A propriedade confirmationMethod deve ser configurada como Bearer.
- A propriedade keyType deve ser configurada como http://docs.oasis-open.org/ws-sx/ws-trust/200512/Bearer.
- A propriedade wstrustClientPolicy deve ser configurada como Padrão WSHTTPS do Nome de Usuário.
- O valor especificado para a propriedade wstrustClientBinding deve corresponder ao nome da ligação específica ao aplicativo do cliente de confiança criado nas etapas anteriores. Por exemplo, nas etapas anteriores, criamos uma ligação específica ao aplicativo denominada SamlTCSample. Neste cenário, o SamlTCSample deve ser especificado como o valor da propriedade wstrustClientBinding
- Opcional: Se você desejar alterar como o servidor de aplicativos procura a ligação, será possível especificar a propriedade wstrustClientBindingScope e configurar seu valor como aplicativo ou domínio.
Quando o valor estiver configurado como domínio, o servidor de aplicativos procurará
wstrustClientBinding no local do sistema de arquivos que contém documentos
de ligações gerais.
Quando o valor estiver configurado como aplicativo, o servidor de aplicativos
procurará wstrustClientBinding no local do sistema de arquivos
que contém documentos de ligações específicas do aplicativo.
Quando a propriedade wstrustClientBindingScope não é especificada, o comportamento padrão do servidor de aplicativos é procurar ligações específicas do aplicativo e depois procurar ligações gerais.
Se wstrustClientBinding não puder ser localizada, o servidor de aplicativos
usará as ligações padrão.
- Opcional: Se você desejar modificar a versão SOAP do cliente de confiança padrão, que é a mesma do aplicativo cliente, especifique um novo valor para a propriedade customizada wstrustClientSoapVersion.
Configure a propriedade customizada wstrustClientSoapVersion como 1.1 para alterar para SOAP Versão 1.1.
Configure a propriedade customizada wstrustClientSoapVersion como 1.2 para alterar para SOAP Versão 1.2.
- Clique em Aplicar e, em seguida, clique em Salvar.
Se forem necessárias mais modificações na configuração wstrustClientBinding e a propriedade wstrustClientBinding estiver
apontando para uma ligação específica ao aplicativo, por exemplo, neste caso, SamlTCSample, você deverá anexar a ligação específica ao aplicativo ao cliente de serviços da web antes de poder concluir as modificações. O anexo é temporário. Conforme detalhado nas etapas anteriores, é possível desanexar a ligação específica do aplicativo
modificado do cliente de serviço da Web depois que a modificação for concluída.
Antes de continuar para a próxima etapa, verifique se o certificado SSL do STS externo existe no NodeDefaultTrustStore. Consulte a seção Antes de Iniciar para obter informações adicionais.
- Reinicie o aplicativo de cliente de serviços da Web
para que as modificações de anexo do conjunto de política possa entrar
em vigor.
As informações de anexo do conjunto de políticas e ligação serão atualizadas quando o aplicativo for reiniciado, mas as informações atualizadas na ligação geral não serão refletidas no tempo de execução até que todas as ligações gerais sejam atualizadas.
O aplicativo deve ser reiniciado após as ligações gerais serem recarregadas para se aproveitar das atualizações. Consulte as ligações gerais Recarregar o Cliente e o Provedor e reinicie a etapa de aplicativos a seguir para obter informações adicionais.
- Anexe o conjunto de políticas e as ligações do SAML ao aplicativo provedor.
- Anexe o conjunto de políticas SAML apropriado ao provedor de serviços da web.
- No console administrativo, clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de Políticas e Ligações de Provedor de Serviços.
- Selecione o recurso do provedor de serviços da web (JaxWSServicesSamples).
- Clique em Anexar Conjunto de Políticas.
- Selecione a política SAML apropriada para o provedor de serviços da web.
- Designe a ligação geral de amostra do SAML Bearer Provider.
- Selecione novamente o recurso do provedor de serviços da web.
- Clique em Designar Ligação.
- Selecione Amostra do SAML Bearer Provider.
- Configure as ligações de provedores de serviços da web.
- Se as ligações de provedores de serviços da web ainda não estiverem na página de conjuntos de políticas e ligações do provedor de serviços para JaxWSServicesSamples, clique em Aplicativos Corporativos do WebSphere > JaxWSServicesSamples > Conjuntos de Políticas e Ligações de Provedor de Serviço > Amostra do SAML Bearer Provider.
- Clique em WS-Security > Autenticação e Proteção.
- Na tabela Tokens de Autenticação, clique em con_saml11token ou em con_saml20token.
- Clique em Manipulador de Retorno de Chamada.
A página Manipulador de Retorno de Chamada do console administrativo é usada para configurar os dados de ligação de validação da assinatura digital do emissor do token do SAML para o STS externo.
- Opcional: Configure a propriedade customizada signatureRequired como false, se desejar renunciar a validação da assinatura digital.
É possível configurar a propriedade customizada signatureRequired como false, se desejar renunciar a validação da assinatura digital. No entanto, uma boa prática de segurança é para requerer as asserções do SAML a serem assinadas e sempre requerer a validação da assinatura digital do emissor. False é o valor padrão desta propriedade.
- Opcional: Configure a propriedade customizada trustAnySigner como true, se desejar não permitir nenhuma validação de certificado de assinante.
A definição de configuração do certificado Trust Any será ignorada para fins de validação de assinatura do SAML. Esta propriedade será válida apenas se a propriedade customizada signatureRequired estiver configurada como true, que é o valor padrão desta propriedade.
- Conclua as ações a seguir, se as asserções forem assinadas pelo STS, a propriedade customizada signatureRequired será configurada como o valor padrão true e a propriedade customizada trustAnySigner será configurada como o valor padrão false.
- Inclua um certificado no armazenamento confiável para o provedor que permite que o certificado de assinatura do STS externo passe a validação de confiança, como por exemplo, o próprio certificado de assinatura do STS ou seu certificado CA raiz.
- Configure a propriedade customizada trustStorePath como um valor que corresponda ao nome do arquivo do armazenamento de confiança. Este valor pode ser o caminho completo ou palavras-chave de uso, como por exemplo, ${USER_INSTALL_ROOT}.
- Configure a propriedade customizada trustStoreType como um valor que corresponda ao tipo de armazenamento de chaves. Os tipos de armazenamentos de chaves suportados incluem: jks, jceks e pkcs12.
- Configure a propriedade customizada trustStorePassword como um valor que corresponda à senha do armazenamento confiável. A senha é armazenada como uma propriedade customizada e é codificada pelo console administrativo.
- Opcional: Configure a propriedade customizada trustedAlias como um valor, como por exemplo, samlissuer. Se essa propriedade for especificada, o certificado X.509 representado pelo alias será o único certificado STS confiável para a verificação de assinatura
do SAML. Se essa propriedade customizada não for especificada, o ambiente de tempo de execução dos serviços da Web usa o certificado de sinalização dentro as asserções SAML para validar a assinatura SAML e depois verifica o certificado em relação ao armazenamento confiável configurado.
- Opcional: Configure o destinatário para validar o nome do emissor ou o certificado SubjectDN do emissor na asserção do SAML ou ambos.
É possível criar uma lista de nomes de emissores confiáveis ou uma lista de certificados SubjectDNs confiáveis ou é possível criar ambos os tipos de listas. Se você criar listas de nome de emissor e SubjectDN, o nome do emissor e o SubjectDN serão verificados.
Se o nome do emissor do SAML recebido ou o SubjectDN do assinante não estiver nas listas confiáveis, a validação do SAML falhará e uma exceção será emitida.
O exemplo a seguir mostra como criar uma lista de emissores e de SubjectDNs confiáveis. Para cada nome do emissor confiável, use trustedIssuer_n em que n é um número inteiro positivo. Para cada SubjectDN confiável, use trustedSubjectDN_n em que n é um número inteiro positivo. Se você criar ambos os tipos de listas, o número inteiro n deverá ser correspondente em ambas as listas para a mesma asserção do SAML. O número inteiro n começa com 1 e aumenta de 1 em 1.
Neste exemplo, confie uma asserção do SAML com o WebSphere/samlissuer do nome do emissor, independentemente do SubjectDN do assinante, portanto, inclua a propriedade customizada a seguir:
<properties value="WebSphere/samlissuer" name="trustedIssuer_1"/>
Além disso, confie uma asserção do SAML emitida pelo IBM/samlissuer, quando o SubjectDN do assinante for ou=websphere,o=ibm,c=us, portanto, inclua as propriedades customizadas a seguir:
<properties value="IBM/samlissuer" name="trustedIssuer_2"/>
<properties value="ou=websphere,o=ibm,c=us" name="trustedSubjectDN_2"/>
- Decriptografar a asserção do SAML.
Se a asserção do SAML for criptografada pelo STS, o token do SAML aparecerá no cabeçalho Segurança de SOAP como um elemento EncryptedAssertion, em vez de um elemento Asserção. Para decriptografar a asserção do SAML, você deve configurar a chave privada que corresponde à chave pública usada para criptografar a asserção no STS.
As propriedades customizadas do manipulador de retorno de chamada a seguir devem ser configuradas como o valor descrito na tabela a seguir para o destinatário decriptografar a asserção do SAML.
Propriedade customizada |
Valor |
keyStorePath |
Local do keystore |
keyStoreType |
Tipo de keystore correspondente Os tipos de keystore suportados incluem:
jks, jceks e pkcs12
|
keyStorePassword |
Senha para o keystore |
keyAlias |
O alias da chave privada usada para a criptografia do SAML |
keyName |
O nome da chave privada usada para a criptografia do SAML |
keyPassword |
A senha para o nome da chave |
- Opcional: É possível configurar a ligação do responsável pela chamada para selecionar um token SAML para representar a identidade do solicitante. O ambiente de tempo de execução da Segurança de serviços da Web usa a configuração de login do JAAS para adquirir o nome de segurança do usuário e os dados de associação ao grupo do registro do usuário usando o NameId do token SAML ou NameIdentifier como o nome de usuário.
- Clique em .
- Clique em Novo para criar a configuração do responsável pela chamada
- Especifique um Nome, como responsável pela chamada.
- Insira um valor para Parte local da identidade do responsável pela chamada.
Para os tokens do SAML 1.1, insira:
http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1Para os tokens do SAML 2.0, insira:
http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0
- Clique em Aplicar e em Salvar.
- Recarregue as ligações gerais Cliente e Provedor e reinicie os aplicativos.
Quando as informações nas ligações gerais forem atualizadas, as novas configurações não serão refletidas imediatamente no tempo de execução. Uma ligação geral atualizada deve ser recarregada pelo gerenciador do conjunto de políticas no servidor de aplicativos antes das atualizações entrarem em vigor.
É possível recarregar os conjuntos de políticas e as ligações gerais atualizados parando e reiniciando o servidor de aplicativos ou usando o comando atualizar no MBean PolicySetManager no wsadmin. Para obter informações adicionais sobre como atualizar o gerenciador do conjunto de políticas, consulte o tópico Atualizando as configurações do conjunto de políticas usando o script wsdamin.
Para recarregar as ligações gerais Cliente e Provedor e reiniciar os aplicativos, conclua uma das ações a seguir:
- Reinicie o servidor de aplicativos ou
- Atualize o MBean PolicySetManager e, em seguida, reinicie os aplicativos de serviços da web Cliente e Provedor.
Resultados
Depois de concluir o procedimento, o aplicativo de serviços da Web JaxWSServicesSamples está pronto para usar o conjunto de políticas padrão SAML Bearer, a amostra Saml Bearer Client, e as ligações gerais da amostra SamlBearer Provider.