Creación de una señal de poseedor de clave de SAML utilizando la API
La señal de poseedor de clave de SAML amplía la interfaz pública de señal de seguridad en WebSphere Application Server y se puede utilizar como señal de protección. WebSphere Application Server proporciona una API de biblioteca SAML para crear señales de poseedor de clave de SAML.
Acerca de esta tarea
La creación de la señal SAML necesita tres parámetros:
- com.ibm.wsspi.wssecurity.saml.config.RequesterConfig
- com.ibm.wsspi.wssecurity.saml.config.ProviderConfig
- com.ibm.wsspi.wssecurity.saml.config.CredentialConfig
Procedimiento
Ejemplo
Utilice este código de ejemplo para crear una señal de poseedor
de clave de la versión 1.1 de SAML utilizando una clave secreta (clave
simétrica) del asunto.
import com.ibm.wsspi.wssecurity.saml.config.RequesterConfig;
import com.ibm.wsspi.wssecurity.saml.config.ProviderConfig;
import com.ibm.wsspi.wssecurity.saml.config.CredentialConfoig ;
import com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory
SAMLTokenFactory samlFactory = SAMLTokenFactory.getInstance(SAMLTokenFactory.WssSamlV11Token11);
RequesterConfig reqData = samlFactory.newSymmetricHolderOfKeyTokenGenerateConfig();
//Correlacione "AppliesTo" con el alias clave, de forma que la biblioteca sepa cómo cifrar la clave simétrica
reqData.setKeyAliasForAppliesTo("SOAPRecipient");
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig(IsserUri);
Subject subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);
Utilice este código de ejemplo para crear una señal de poseedor de clave de la
versión 2.0 de SAML utilizando una clave pública del tema:
//Expresión de usuario sobre cómo se debería crear SAML, tomando como valor predeterminado
RequesterConfig reqData = samlFactory.newAsymmetricHolderOfKeyTokenGenerateConfig();
//Elija una clave pública que se incluirá en SAML
reqData.setKeyAliasForRequester("SOAPInitiator");
//Obtenga el almacén de claves del emisor de forma que pueda firmar o cifrar la aserción, el nombre del emisor
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig("cualquier_emisor");
//Obtenga el tema JAAS de forma que la fábrica pueda llenar el valor del principal y los atributos en SAML
Subject subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject();
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);
Utilice este código de ejemplo para crear una señal de poseedor de clave de la
versión 2.0 de SAML utilizando una clave secreta (clave simétrica):
SAMLTokenFactory samlFactory = SAMLTokenFactory.getInstance (SAMLTokenFactory.WssSamlV20Token11);
RequesterConfig reqData = samlFactory. newSymmetricHolderOfKeyTokenGenerateConfig ();
//Correlacione "AppliesTo" con el alias clave, de forma que la biblioteca sepa cómo cifrar la clave simétrica
reqData.setKeyAliasForAppliesTo("SOAPRecipient");
ProviderConfig samlIssuerCfg = samlFactory.newDefaultProviderConfig(null);
CredentialConfig cred = samlFactory.newCredentialConfig ();
cred.setRequesterNameID("cualquier_nombre");
SAMLToken samlToken = samlFactory.newSAMLToken(subject, reqData, samlIssuerCfg);