Capítulo 5. Gerenciamento de Identidade PicketLink
5.1. Security Token Service (STS - Serviço Token de Segurança) Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
O Security Token Service (Serviço Token de Segurança) gera e gerencia os tokens de segurança. Ele não emite tokens de um tipo específico. Ao invés disso, ele define interfaces que permitem provedores de token múltiplos a serem plugados. Como resultado, ele pode ser configurado para lidar com vários tipos de token, contanto que o provedor do token exista para cada tipo de token. Ele também especifica o formato da solicitação do token de segurança e responde mensagens.
A mensagem da solicitação do token de segurança especifica o seguinte:
- Tipo de solicitação, tal como o Problema, Revisão e mais.
- O tipo de token.
- O tempo de vida do token emitido.
- A informação sobre o provedor de serviço que solicitou o token.
- A informação usada para criptografar o token gerado.
A mensagem de solicitação do token é enviada no corpo da mensagem SOAP. Toda a informação relacionada à solicitação do token está contida no elemento
RequestSecurityToken. A solicitação da amostra contém dois outros elementos WS-Trust: RequestType, dos quais especificam que esta solicitação é uma solicitação de Problema e o TokenType, do qual especifica o tipo de token a ser emitido.
Segue abaixo uma amostra da mensagem de solicitação do WS-Trust.
Exemplo 5.1. A mensagem da solicitação do token de segurança WS-Trust
Segue abaixo uma amostra de uma resposta do token de segurança.
Exemplo 5.2. A mensagem de resposta do token de segurança.
Na amostra para a resposta do token de segurança, o elemento
TokenType especifica o tipo de token emitido, enquanto o elemento RequestedSecurityToken contém o próprio token. O formato do token depende no tipo do token. O elemento Lifetime especifica quando o token foi criado e quando ele espira.
Processando a Solicitação do Token de Segurança
Segue abaixo as etapas pelas quais as solicitações do token de segurança são processadas:
- Um cliente envia a solicitação do token de segurança ao
PicketLinkSTS.
- O
PicketLinkSTSanalisa a mensagem de solicitação, gerando um modelo do objeto JAXB.
- O
PicketLinkSTSlê o arquivo de configuração e cria o objetoSTSConfiguration, se necessário. Então, ele obtém uma referência aoWSTrustRequestHandlera partir da configuração e delega o processamento da solicitação à instância do manuseador.
- O manuseador da solicitação usa o
STSConfigurationpara determinar os valores default (por exemplo, quando a solicitação não especifica o valor do tempo de vida do token).
- O
WSTrustRequestHandlercria oWSTrustRequestContext, configurando o objeto da solicitaçãoJAXBe o principal do chamador que recebeu a partir doPicketLinkSTS.
- O
WSTrustRequestHandlerusa oSTSConfigurationpara obter oSecurityTokenProviderque deve ser usado para processar a solicitação baseada no tipo de token que está sendo solicitado. Então, ele invoca o provedor, passando oWSTrustRequestContextconstruído conforme um parâmetro.
- A instância
SecurityTokenProviderprocessa a solicitação do token e store o token emitido no contexto da solicitação.
- O
WSTrustRequestHandlerobtém o token do contexto, criptografa caso seja necessário, e constrói o objeto de resposta WS-Trust contendo o token de segurança.
- O
PicketLinkSTSdita a resposta gerada pelo manuseador da solicitação e retorna-a ao cliente.