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 valor PicketLinkSTS defalut é 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ção WSTrustRequestHandler a ser usada. Caso não especificado, o default org.picketlink.identity.federation.core.wstrust.StandardRequestHandler será usado.
  • SecurityTokenProvider: Esta seção especifica as implementações SecurityTokenProvider que devem ser usados para manusear cada tipo do token de segurança. Nesta amostra nós temos dois provedores - um manuseia tokens do tipo SpecialToken e outro que manuseia tokens do tipo StandardToken. O WSTrustRequestHandler chama o getProviderForTokenType(tipo de Sequência)método do STSConfiguration para obter uma referência ao SecurityTokenProvider apropriado.
  • TokenTimeout: Isto é usado pelo WSTrustRequestHandler quando 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, o WSTrustRequestHandler deve usar o ponto de extremidade do provedor para encontrar o tipo de token que deve ser emitido.
  • EncryptToken: Isto é usado pelo WSTrustRequestHandler para 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>