Configurando Ligações de Cliente e Provedor para o Token de Chave Simétrica holder-of-key do SAML
Configure as ligações e os anexos do conjunto de política do cliente e do provedor para o token holder-of-key do SAML. Esse cenário de configuração utiliza uma chave simétrica.
Antes de Iniciar
Sobre Esta Tarefa
A política de token SAML é definida por uma extensão CustomToken no servidor de aplicativos. Para criar a extensão CustomToken, defina os parâmetros de configuração de token SAML em termos de propriedades customizadas no documento de ligação de provedor e cliente. As ligações gerais da amostra Saml HoK Symmetric Client e da amostra Saml HoK Symmetric Provider contêm a configuração essencial para as propriedades customizadas. As ligações de amostra de cliente e provedor contêm informações de configuração do tipo de token SAML11 e SAML20 e, portanto, podem ser utilizadas 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. Exemplos de propriedades e valores de propriedades são fornecidos no procedimento.
O procedimento para modificar a amostra de ligação começa com a configuração da conexão do conjunto de políticas do cliente de serviços da Web, e depois a configuração da conexão do conjunto de políticas do provedor de serviços da Web. O exemplo apresentado no procedimento usa o aplicativo de serviços da Web de amostra JaxWSServicesSamples.
Procedimento
- Importe dois conjuntos de política padrão: padrão SAML20 HoK Symmetric WSSecurity e padrão Username WSHTTPS.
- Clique em Serviços > Conjuntos de Políticas > Conjuntos de Políticas de Aplicativo.
- Clique em Importar.
- Selecione Do Repositório Padrão.
- Selecione os dois conjuntos de política padrão.
- Clique em OK para importar os conjuntos de política.
- Conecte um conjunto de políticas para o cliente de confiança. Clique em
Aplicações > Tipos de Aplicativos > WebSphere
Enterprise Applications > JaxWSServicesSamples >
Conjuntos de Políticas de Cliente de Serviço e Ligações. As etapas relacionadas à conexão e desconexão do
conjunto de políticas e à configuração da ligação de cliente
de confiança serão necessárias apenas se for usada uma ligação específica
do aplicativo para acessar o STS externo. Você pode ignorar estas etapas
e acessar a etapa que discute a configuração da comunicação com o
STS, se usar uma ligação geral para acessar o STS externo.
- Marque a caixa de seleção do recurso de cliente de serviços da Web.
- Clique em Anexar Conjunto de Políticas do Cliente.
- Selecione o conjunto de políticas, Padrão Username WSHTTPS.
- Configure a ligação de cliente de confiança.
- Selecione o recurso do cliente de serviços da Web novamente.
- No painel Conjuntos de Políticas e Ligações do Cliente de Serviço, clique em Designar Ligação.
- Clique em Nova Ligação Específica do Aplicativo para criar uma ligação específica do aplicativo.
- Especifique um nome de configuração de ligação para a nova ligação específica de aplicativo. Neste exemplo, o nome da ligação é SamlTCSample.
- Inclua o tipo de política de transporte SSL na ligação. Opcionalmente, é possível modificar as configurações de NodeDefaultSSLSettings. Clique em Segurança > Gerenciamento de Certificado e Chave SSL > Configurações SSL > NodeDefaultSSLSettings.
- Inclua o tipo de política WS-Security
na ligação, em seguida, modifique as configurações de autenticação.
- Clique em Aplicativos > Tipos de Aplicativo > WebSphere Enterprise Applications > JaxWSServicesSamples > Ligações e Configurações de Política de Cliente de Serviço > SamlTCSample > Incluir > WS-Security > Autenticação e Proteção > request:uname_token.
- Dê um clique em Aplicar.
- Selecione Manipulador de Retorno de Chamada.
- Especifique um nome do usuário e uma senha (e confirme a senha) para autenticar o cliente de serviços da Web para o STS externo.
- Clique em OK e em Salvar.
- Após o salvamento das configurações de ligação,
retorne ao painel Conjuntos de Políticas e Ligações do Cliente de Serviço
para desconectar o conjunto de políticas e as ligações.
- Clique em Aplicações > Tipos de Aplicativos > WebSphere Enterprise Applications > JaxWSServicesSamples > Conjuntos de Políticas de Cliente de Serviço e Ligações.
- Clique na caixa de seleção do recurso de cliente de serviços da Web.
- Clique em Desconectar Conjunto de Políticas do Cliente.
- Faça o download do arquivo de políticas de jurisdição irrestrito. A política de segurança padrão SAML20 HoK Symmetric WSSecurity utiliza um tamanho de chave de criptografia de 256 bits, o que requer o arquivo de políticas Java Cryptography Extension (JCE) irrestrito. Para obter informações adicionais, leia a seção Usando os arquivos de políticas JCE irrestritas no tópico Ajustando a Segurança de Serviços da Web.
- Anexe o conjunto de políticas padrão SAML20 HoK Symmetric WSSecurity e
designe a ligação de amostra Saml HoK Symmetric Client ao recurso do cliente.
- Clique em Aplicativos > Tipos de Aplicativos > Aplicativos Corporativos WebSphere > JaxWSServicesSamples > Conjuntos de Políticas de Cliente de Serviço e Ligações.
- Selecione o recurso do cliente de serviços da Web.
- Clique em Anexar Conjunto de Políticas do Cliente.
- Selecione o conjunto de políticas Padrão SAML20 HoK Symmetric WSSecurity.
- Selecione o recurso do cliente de serviços da Web novamente.
- No painel Conjuntos de Políticas e Ligações do Cliente de Serviço, clique em Designar Ligação.
- Selecione a ligação geral Amostra Saml HoK Symmetric Client.
- Clique em Salvar.
- Configure a URL do terminal STS e o nome de usuário e a senha para autenticação no STS.
- Clique em Aplicativos > Tipos de Aplicativos > WebSphere Enterprise Applications > JaxWSServicesSamples > Ligações e Conjuntos de Políticas do Cliente do Serviço > Amostra Saml HoK Symmetric Client > WS-Security > Autenticação e Proteção.
- Clique em gen_saml20token na tabela Tokens de Proteção.
- Clique em Manipulador de Retorno de Chamada.
- Modifique a propriedade stsURI e especifique o terminal STS. Se você não usar um STS externo, e desejar que o servidor de aplicativos autoemita uma asserção holder-of-key com uma chave simétrica, não conclua essa etapa e vá para a etapa 8i.
- Se for necessário, modifique a propriedade wstrustClientPolicy e altere o valor para Padrão Username WSHTTPS.
- Modifique a propriedade wstrustClientBinding e altere o valor para corresponder à ligação específica do aplicativo nas etapas anteriores. Para esse exemplo, o valor é SamlTCSample. Esta etapa anexa o conjunto de políticas do cliente do WS-Trust. É possível pular esta etapa se você não quiser que o servidor solicite automaticamente um token SAML do STS utilizando o cliente do WS-Trust.
- Altere o valor da propriedade wstrustClientBindingScope, que controla como o servidor de aplicativos procura a ligação. Configure o valor da propriedade 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 for especificada, o comportamento padrão do servidor de aplicativos é procurar pelas ligações específicas de aplicativo e, em seguida, pelas ligações gerais. Se wstrustClientBinding não puder ser localizada, o servidor de aplicativos usará as ligações padrão.
- Verifique se o valor da propriedade confirmationMethod é Holder-of-key.
- Verifique se o valor da propriedade keyType é http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey ou o alias symmetrickey. A propriedade wstrustClientWSTNamespace determina como o alias symmetrickey é interpretado. Nesse caso, assume-se que ele esteja configurado para o namespace WS-Trust 1.3. Se tiver um valor de WS-Trust 1.2, o alias symmetrickey será interpretado como http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey.
- Opcional: É possível modificar a versão de SOAP do cliente de confiança padrão, que é igual à do aplicativo cliente. Configure a propriedade customizada wstrustClientSoapVersion para o valor 1.1 para alterar para SOAP Versão 1.1 ou configure a propriedade para o valor 1.2 para alterar para SOAP Versão 1.2.
- Opcional: Se você não usar um STS externo, e desejar que o servidor de aplicativos autoemita uma asserção holder-of-key com uma chave simétrica, configure a propriedade customizada recipientAlias para o valor do alias da chave do serviço de destino. Especificar essa propriedade protege a chave simétrica para o serviço de destino. Esse alias deve ser um alias de chave válido que esteja contido no armazenamento confiável configurado do emissor SAML. A propriedade TrustStorePath especifica o local do arquivo dr armazenamento confiável. A propriedade TrustStorePath é definida
no arquivo SAMLIssuerConfig.properties para o servidor de aplicativos. Por exemplo, o local do arquivo SAMLIssuerConfig.properties no nível do servidor em um WebSphere Appliaction Server é:
O local desse arquivo no nível de célula em um WebSphere Application server é:app_server_root/profiles/$PROFILE/config/cells/$CELLNAME/nodes/$NODENAME/servers/$SERVERNAME/SAMLIssuerConfig.properties
app_server_root/profiles/$PROFILE/config/cells/$CELLNAME/sts/SAMLIssuerConfig.properties
- Clique em Aplicar e em Salvar.
- Opcional: Se forem necessárias mais modificações na configuração wstrustClientBinding, e a propriedade wstrustClientBinding estiver apontando para uma ligação específica do aplicativo, você deverá anexar a ligação específica do aplicativo ao cliente de serviços da Web antes de poder concluir as modificações. A conexão é temporária. 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.
- Importe o certificado SSL do
STS externo.
- Clique em Segurança > Gerenciamento de Chave e Certificado SSL > Gerenciar Configurações de Segurança do Terminal > server_or_node_endpoint > Armazenamentos de Chave e Certificados > NodeDefaultTrustStore > Certificados de Assinante.
- Clique em Recuperar da Porta.
- Especifique o nome do host e número da porta do servidor STS externo e designe um alias ao certificado. Use a porta de STS SSL.
- Clique em Recuperar Informações do Signatário.
- Clique em Aplicar e em Salvar para copiar o certificado recuperado para o objeto NodeDefaultTrustStore.
- 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.
- Conecte o conjunto de políticas padrão SAML20 HoK Symmetric WSSecurity ao provedor de serviços da Web.
- Faça o download do arquivo de políticas de jurisdição irrestrito. A política de segurança padrão SAML20 HoK Symmetric WSSecurity utiliza um tamanho de chave de criptografia de 256 bits, o que requer o arquivo de políticas Java Cryptography Extension (JCE) irrestrito. Para obter informações adicionais, leia a seção Usando os arquivos de políticas JCE irrestritas no tópico Ajustando Aplicativos de Segurança de Serviços da Web.
- Designe a ligação geral Amostra Saml HoK Symmetric Provider.
- Clique em Aplicativos > Tipos de Aplicativos > WebSphere Enterprise Applications > JaxWSServicesSamples > Ligações e Conjuntos de Políticas do Provedor do Serviço > Amostra Saml HoK Symmetric Provider > WS-Security > Autenticação e Proteção.
- Clique em con_saml20token na tabela Tokens de Autenticação.
- Clique no link Manipulador de retorno de chamada.
- Utilize este painel para fazer a configuração da decriptografia da chave simétrica integrada e a validação da assinatura digital do emissor do token SAML para o STS externo, conforme descrito na seguinte etapa.
- Configure os dados de ligação para decriptografar a chave secreta integrada ou a asserção do SAML que está protegida pela chave pública do destinatário. O STS deve ter acesso à chave pública do destinatário.
Existem duas opções para se configurar as chaves para decriptografia:
- Opção 1: Configure o keystore e uma chave privada da seguinte forma:
- Verifique se o campo Nome do Keystore tem o valor customizado.
- Clique em Configuração do Keystore Customizado para visualizar e editar a configuração do keystore.
- Verifique se o valor inicial para o arquivo-chave é app_server_root/etc/ws-security/samples/enc-service.jceks.
- Opção 2: Configure as propriedades customizadas no manipulador de retorno de chamada da seguinte forma:
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 pública utilizada para criptografia do SAML keyName O nome da chave pública utilizada para criptografia do SAML keyPassword A senha para o nome da chave
- Opção 1: Configure o keystore e uma chave privada da seguinte forma:
- Inclua o certificado de assinatura do STS externo no truststore.
Esta etapa será necessária se asserções do SAML
forem assinadas pelo STS e a propriedade customizada signatureRequired não for especificada ou tiver um valor de true. Esse truststore é configurado para o provedor de serviços.
- Configure a propriedade customizada trustStoreType para corresponder ao tipo de keystore. Os tipos de keystore suportados incluem: jks, jceks e pkcs12.
- Configure a propriedade customizada trustStorePath para o local do arquivo keystore. Por exemplo, app_server_root/etc/ws-security/samples/dsig-issuer.jceks. O arquivo dsig_issuer.jceks não é fornecido quando o WebSphere Application Server está instalado, assim, você dever criar o arquivo.
- Configure a propriedade customizada trustStorePassword para o valor codificado da senha armazenada. A senha é armazenada como uma propriedade customizada e é codificada pelo console administrativo.
- Opcional: É possível configurar a propriedade customizada trustedAlias para um valor como samlissuer. Não configure a propriedade trustedAlias se o token SAML for assinado por assinantes diferentes, por exemplo, se o STS delegar pedidos de token a provedores de tokens diferentes, e cada provedor assinar um certificado. 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: É possível configurar a propriedade customizada trustAnySigner para o valor true para 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.
- Opcional: É possível configurar a propriedade customizada signatureRequired para false, o que renuncia à validação da assinatura digital. Entretanto, uma boa prática de segurança é exigir que asserções do SAML sejam assinadas e sempre exijam uma validação de assinatura digital do emissor.
- Opcional: É possível configurar o destinatário para validar o nome do emissor ou SubjectDN do certificado do emissor na asserção do SAML ou validar ambos. Crie uma lista de nomes de emissores confiáveis ou uma lista de SubjectDNs de certificado confiável, ou os dois 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 ou SubjectDN do assinante recebidos não estiverem em uma lista confiável, a validação do SAML falhará e uma exceção será emitida. Este exemplo mostra como criar uma lista de emissores e SubjectDNs confiáveis.
Para cada nome de emissor confiável, utilize trustedIssuer_n, em que n é um número inteiro positivo. Para cada SubjectDN confiável, utilize 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, você confia em uma asserção do SAML com um nome de emissor de WebSphere/samlissuer, independentemente do SubjectDN do assinante, portanto, inclua a seguinte propriedade customizada:<properties value="WebSphere/samlissuer" name="trustedIssuer_1"/>
Além disso, você confia em uma asserção do SAML emitida por IBM/samlissuer quando o SubjectDN do assinante é ou=websphere,o=ibm,c=us, portanto, inclua as seguintes propriedades customizadas:<properties value="IBM/samlissuer" name="trustedIssuer_2"/> <properties value="ou=websphere,o=ibm,c=us" name="trustedSubjectDN_2"/>
Por padrão, o WebSphere Application Server confia todos os emissores SAML quando um valor trustedIssuer_n não for definido. Se não conhecer esse comportamento padrão, as asserções SAML que forem emitidas por um STS autorizado poderão ser aceitas erroneamente.
- Opcional: É possível incluir uma lista de certificados de autoridade de certificação (CA) não raiz que pode ser usada para verificar a assinatura do token SAML. Para incluir certificados não raiz, inclua uma propriedade customizada chamada X509PATH_n, em que n é um número inteiro não negativo como o valor para os certificados não raiz.
- Opcional: É possível incluir uma lista de Listas de Revogação de Certificado (CRLs) que pode ser usada para validar a assinatura do token SAML. Para incluir as CRLs, inclua uma propriedade customizada chamada CRLPATH_n, em que n é um número inteiro não negativo como o valor para as CRLs.
- Clique em Aplicar e em Salvar.
- 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 Aplicativos > Tipos de Aplicativos > WebSphere Enterprise Applications > JaxWSServicesSamples > Ligações e Conjuntos de Políticas do Provedor do Serviço > Amostra Saml HoK Symmetric Provider > WS-Security > Responsáveis pela Chamada.
- 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. Por exemplo, http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0, que é a parte local do elemento CustomToken na política de Segurança WS anexada.
- Clique em Aplicar e em Salvar.
- Reinicie o aplicativo do provedor de serviços da Web para que as modificações de conexão do conjunto de políticas possam entrar em vigor.
Resultados
Subtópicos
Propriedades de configuração do emissor SAML
Ao criar um novo token SAML autoemitido, é possível especificar propriedades de configuração para controlar como o token é configurado. As propriedades de configuração são pares de nome/valor que descrevem informações no lado do provedor, como a localização do emissor e os caminhos do arquivo de armazenamento confiável e do keystore.Propriedades de configuração do emissor SAML
Ao criar um novo token SAML autoemitido, é possível especificar propriedades de configuração para controlar como o token é configurado. As propriedades de configuração são pares de nome/valor que descrevem informações no lado do provedor, como a localização do emissor e os caminhos do arquivo de armazenamento confiável e do keystore.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configsamlhoktoken
Nome do arquivo: twbs_configsamlhoktoken.html