5.2. Configuração do PicketLink STS
O PicketLink STS define diversas interfaces que fornecem pontos de extensão onde as implantações podem ser plugadas através da configuração e os valores default para algumas propriedades podem ser especificados através da configuração. Todas as configurações PicketLink STS devem ser especificadas no arquivo
picketlink-sts.xml. Segue abaixo os elementos que podem ser configurados no arquivo picketlink-sts.xml.
Nota
No seguinte texto, um provedor de serviço refere-se ao serviço da Web que requer um token de segurança a ser apresentado por seus clientes.
PicketLinkSTS: Este é o elemento root. Ele define algumas propriedades que permitem o administrador STS para determinar os seguintes valores default:STSName: Uma sequência representando o nome do serviço do token de segurança. Caso não especificado, o valorPicketLinkSTSdefalut é usado.TokenTimeout: O valor do tempo de vida do token em segundos. Caso não especificado, o valor default de 3600 (uma hora) é usado.EncryptToken: O booleano especificando se é que os tokens emitidos estão criptografados ou não. O valor default é falso.
KeyProvider: Este elemento e todos seus sub elementos são usados para configurar o keystore que são usados pelo PicketLink STS para assinar e criptografar tokens. As propriedades como a localização do keystore, sua senha e assinatura (chave privada) alias e senha são todos configurados nesta seção.RequestHandler: Este elemento especifica o nome inteiramente qualificado da implementaçãoWSTrustRequestHandlera ser usada. Caso não especificado, o defaultorg.picketlink.identity.federation.core.wstrust.StandardRequestHandlerserá usado.SecurityTokenProvider: Esta seção especifica as implementaçõesSecurityTokenProviderque devem ser usados para manusear cada tipo do token de segurança. Nesta amostra nós temos dois provedores - um manuseia tokens do tipoSpecialTokene outro que manuseia tokens do tipoStandardToken. OWSTrustRequestHandlerchama ogetProviderForTokenType(tipo de Sequência)método doSTSConfigurationpara obter uma referência aoSecurityTokenProviderapropriado.TokenTimeout: Isto é usado peloWSTrustRequestHandlerquando nenhum tempo de vida for especificado na solicitação do WS-Trust. Isto cria uma instância do tempo atual ao período de criação e expira após o número de segundos especificados de segundos.ServiceProviders: Esta seção especifica os tipos de token que devem ser usados para cada servidor de serviço (o serviço da Web que requer um token de segurança). Quando uma solicitação WS-Trust não contém o tipo de token, oWSTrustRequestHandlerdeve usar o ponto de extremidade do provedor para encontrar o tipo de token que deve ser emitido.EncryptToken: Isto é usado peloWSTrustRequestHandlerpara decidir se o token emitido deve ser criptogrado ou não. Caso verdadeiro, o public key certificate (PKC- certificado de chave público) do provedor de serviço é usado para criptografar o token.
Segue abaixo uma amostra da configuração do PicketLink STS
Exemplo 5.3. Configuração PicketLink STS
<PicketLinkSTS xmlns="urn:picketlink:identity-federation:config:1.0"
STSName="Test STS" TokenTimeout="7200" EncryptToken="true">
<KeyProvider ClassName="org.picketlink.identity.federation.bindings.tomcat.KeyStoreKeyManager">
<Auth Key="KeyStoreURL" Value="keystore/sts_keystore.jks"/>
<Auth Key="KeyStorePass" Value="testpass"/>
<Auth Key="SigningKeyAlias" Value="sts"/>
<Auth Key="SigningKeyPass" Value="keypass"/>
<ValidatingAlias Key="http://services.testcorp.org/provider1" Value="service1"/>
<ValidatingAlias Key="http://services.testcorp.org/provider2" Value="service2"/>
</KeyProvider>
<RequestHandler>org.picketlink.identity.federation.core.wstrust.StandardRequestHandler</RequestHandler>
<TokenProviders>
<TokenProvider ProviderClass="org.picketlink.test.identity.federation.bindings.wstrust.SpecialTokenProvider"
TokenType="http://www.tokens.org/SpecialToken"/>
<TokenProvider ProviderClass="org.picketlink.identity.federation.api.wstrust.plugins.saml.SAML20TokenProvider"
TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0"/>
</TokenProviders>
<ServiceProviders>
<ServiceProvider Endpoint="http://services.testcorp.org/provider1" TokenType="http://www.tokens.org/SpecialToken"
TruststoreAlias="service1"/>
<ServiceProvider Endpoint="http://services.testcorp.org/provider2" TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0"
TruststoreAlias="service2"/>
</ServiceProviders>
</PicketLinkSTS>