O suporte do WebSphere Application Server para SAML fornece interfaces de programação de aplicativos (APIs) públicos que é possível usar para construir aplicativos que reconhecem o token SAML.
Use a API SAMLTokenFactory para criar, validar e autenticar tokens
SAML e para criar JAAS subjects que representam tokens SAML.
A implementação de SAMLTokenFactory suporta a OASIS SAML v1.1
Token Specification e a OASIS SAML v2.0 Token Specification. Use a API
WSSTrustClient para enviar, emitir e validar mensagens de pedido WS-Trust
para o STS especificado. A implementação de WSSTrustClient suporta a
WS-Trust v1.3 Specification e a WS-Trust v1.2 Specification,
e suporta o espaço de nomes SOAP v1.1 e o espaço de nomes SOAP v1.2.
Nota: A partir do WebSphere Application
Server Release 8 é possível usar a classe
com.ibm.websphere.wssecurity.wssapi.token.SAMLToken na
interface de programação de aplicativos (API) do Web Services Security (WSS).
Quando não houver nenhum problema de confusão, o termo
SAMLToken será usado em
vez de usar o nome completo do pacote. É possível usar a API do WSS para solicitar o processamento do SAMLToken a partir de um Security Token Service
(STS) externo, para propagar SAMLTokens nas mensagens de solicitação SOAP e para usar uma chave simétrica ou assimétrica
identificada pelos SAMLTokens para proteger mensagens SOAP.
O suporte do WSS API SAML complementa as interfaces com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory e com.ibm.websphere.wssecurity.wssapi.trust.WSSTrustClient.
Os SAMLTokens que são gerados usando o método com.ibm.websphere.wssecurity.wssapi.WSSFactory
newSecurityToken() podem ser processados pelas interfaces de programação SAMLTokenFactory e WSSTrustClient. Por outro lado, os SAMLTokens que são gerados pelo SAMLTokenFactory ou retornados pelo WSSTrustClient podem ser usados no WSS API.
Decidir qual API será usada no seu aplicativo depende das suas necessidades específicas. O suporte do WSS API SAML é autocontido no sentido em que ele fornece uma funcionalidade
equivalente à funcionalidade das interfaces SAMLTokenFactory e WSSTrustClient até o ponto em que os aplicativos clientes de serviços da Web forem interessados. A interface SAMLTokenFactory possui funções adicionais para validar os
SAMLTokens e para criar o Assunto JAAS que representa SAMLTokens autenticados. Essa validação é útil
para o lado do provedor de serviços da Web. Quando desenvolver seus aplicativos para consumir
os SAMLTokens, a interface de programação SAMLTokenFactory será a mais adequada.
O WebSphere Application Server com SAML
fornece as seguintes APIs que implementam o SAML como um token de segurança.
Para obter informações sobre os métodos nestas APIs,
consulte a documentação da API de biblioteca de tokens SAML, que descreve cada uma
das APIs e fornece o código de amostra.
A API SAMLTokenFactory é a principal interface de programação de tokens SAML. Usando
esta API, você pode criar tokens SAML, inserir atributos SAML, analisar e validar
asserções SAML como representações XML para os tokens SAML e
criar JAAS subjects que representam a identidade do usuário e atributos
conforme definido em tokens SAML.
- com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory
- com.ibm.websphere.wssecurity.wssapi.token.SAMLToken
As Interfaces de Programação do Sistema (SPIs) SAMLAttribute e SAMLNameID
representam os atributos SAML e os identificadores de nomes de usuário SAML.
- com.ibm.wsspi.wssecurity.saml.data.SAMLAttribute
- com.ibm.wsspi.wssecurity.saml.data.SAMLNameID
Usando as seguintes APIs SAML, você pode especificar como os tokens SAML
são criados, e como os documentos XML de asserção SAML são validados. Os objetos ProviderConfig
especificam informações de configuração para o emissor de asserção SAML, que incluem
nome do emissor, chave de assinatura do emissor e certificado de assinatura.
Os objetos RequesterConfig contêm parâmetros de configuração que definem
as características de asserções SAML e tokens SAML conforme eles são criados. Estes parâmetros de configuração incluem método de confirmação,
assinatura de asserções SAML, tipo de chave de criptografia integrada e método de autenticação. Os objetos ConsumerConfig contêm parâmetros de configuração que definem como documentos XML de asserção de SAML são validados, incluindo informações chave de decriptografia, algoritmo de criptografia, valor do timer para clock skew e se assinatura digital é necessária para emissores.
- com.ibm.wsspi.wssecurity.saml.config.ConsumerConfig
- com.ibm.wsspi.wssecurity.saml.config.CredentialConfig
- com.ibm.wsspi.wssecurity.saml.config.ProviderConfig
- com.ibm.wsspi.wssecurity.saml.config.RequesterConfig
- com.ibm.wsspi.wssecurity.saml.config.SamlConstants
- com.ibm.wsspi.wssecurity.core.token.config.ConsumerConfiguration
- com.ibm.wsspi.wssecurity.core.token.config.CredentialConfiguration
- com.ibm.wsspi.wssecurity.core.token.config.ProviderConfiguration
- com.ibm.wsspi.wssecurity.core.token.config.RequesterConfiguration
As seguintes classes SAML Callback e CallbackHandler especificam parâmetros de configuração
que podem ser usados para definir as características
de asserções SAML e controlam o comportamento do LoginModule SAML
no ambiente de tempo de execução. Esses parâmetros são armazenados nos documentos de ligação do Web
Services Security. A configuração do token SAML é modelada pela extensão CustomToken na configuração de política do Web Services Security.
- com.ibm.websphere.wssecurity.callbackhandler.SAMLConsumeCallback
- com.ibm.websphere.wssecurity.callbackhandler.SAMLConsumerCallbackHandler
- com.ibm.websphere.wssecurity.callbackhandler.SAMLGenerateCallback
- com.ibm.websphere.wssecurity.callbackhandler.SAMLGenerateCallbackHandler
O método getXML(), na interface de programação com.ibm.websphere.wssecurity.wssapi.token.SecurityToken,
retorna objetos que implementam a interface XMLStructure. Um aprimoramento que é incluído pelo
WebSphere Application Server suporta uma implementação SecurityToken customizada. Usando as duas
SPIs a seguir, você pode efetuar uma implementação Axis2 Axiom OM ou uma implementação DOM. O token SAML estende a interface GenericSecurityToken que, por
sua vez, estende a interface SecurityToken. GenericSecurityToken é uma nova
interface incluída pelo
WebSphere Application Server
com SAML. O token SAML também implementa a interface OMStructure.
- com.ibm.wsspi.wssecurity.wssapi.DOMStructure
- com.ibm.wsspi.wssecurity.wssapi.OMStructure
A API WS-Trust Client inclui a classe WSSTrustClient e outras
APIs e SPIs auxiliares. A API WSSTrustClient envia pedidos WS-Trust SOAP
para um security token service (STS) externo especificado para que o
STS possa emitir ou validar uma ou mais asserções SAML, ou outro tipo
tipo de tokens de segurança. WSSTrustClient suporta as especificações WS-Trust Versão
1.3 e WS-Trusts Versão 1.2. A API WSSTrustClient retorna
um token SAML quando os responsáveis pela chamada da API solicitam o tipo de token SAML.
A API também usa a interface GenericSecurityToken quando o responsável pela chamada da API
solicita um tipo de token não SAML. Leia sobre a API WS-Trust Client
para obter informações adicionais e o código de amostra. Consulte a documentação da API
para obter uma discussão detalhada das APIs e SPIs.
- com.ibm.websphere.wssecurity.wssapi.trust.WSSTrustClient
- com.ibm.websphere.wssecurity.wssapi.token.GenericSecurityToken
Use as seguintes SPIs para especificar as características de tokens e
seu comportamento no ambiente de tempo de execução. Os objetos ProviderConfig contêm
parâmetros de configuração que especificam o terminal STS, o conjunto de políticas do
Web Services Security, os documentos de ligações usados para acessar o STS e se ligações gerais ou específicas do aplicativo são usadas. Os objetos ProviderConfig também especificam se o documento XML RequestSecurityTokenResponse
(RSTR) será armazenado nos objetos GenericSecurityToken ou
nos objetos SAMLToken. Os objetos RequesterConfig contêm parâmetros de configuração
que são enviados nos pedidos WS-Trust para o
STS especificado. A interface ConsumerConfig define atributos e dados para as mensagens de
resposta de WS-Trust e para o elemento RequestSecurityTokenResponse. Estes dados são recuperados usando o método GenericSecurityToken getProperties(). O elemento XML RequestSecurityTokenResponse é armazenado como uma propriedade quando ProviderConfig
setIncludeRSTRProperties() for chamada. Se um atributo específico requerido por um aplicativo não for
definido pela interface ConsumerConfig, você poderá então recuperar
e analisar o elemento RSTR.
- com.ibm.wsspi.wssecurity.trust.config.ConsumerConfig
- com.ibm.wsspi.wssecurity.trust.config.ConsumerConfig.RSTR
- com.ibm.wsspi.wssecurity.trust.config.ProviderConfig
- com.ibm.wsspi.wssecurity.trust.config.RequesterConfig
- com.ibm.wsspi.wssecurity.core.token.config.WSSConstants
- com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.Namespace
- com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.TokenType
- com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.WST12
- com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.WST13
- com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.Algorithm
- com.ibm.wsspi.wssecurity.core.token.config.WSSConstants.SAML
Para obter informações adicionais sobre como usar as APIs, incluindo cenários
práticos que ilustram como e quando aplicar as APIs, leia sobre os cenários
de uso de SAML.