Inserción de atributos SAML utilizando las API de WSS

Puede insertar los atributos personalizados en las señales SAML autoemitidas utilizando el modelo de programación API de Java™ para XML (JAX-WS) y las API de seguridad de servicios Web (WSS).

Antes de empezar

En esta tarea se presupone que está familiarizado con el modelo de programación JAX-WS, las interfaces de las API de WSS, los conceptos de SAML y el uso de conjuntos de políticas para configurar y administrar los valores de servicios web. Complete las acciones siguientes antes de iniciar esta tarea:
  • Consulte información sobre propagación de señales bearer SAML autoemitidas mediante las API de WSS.
  • Consulte información sobre propagación de señales sender-vouches SAML autoemitidas mediante las API de WSS con protección a nivel de mensaje.
  • Consulte información sobre propagación de señales sender-vouches SAML autoemitidas mediante las API de WSS con protección de transporte SSL.
  • Consulte información sobre propagación de señales holder-of-key SAML con clave simétrica utilizando las API de WSS.
  • Consulte información sobre propagación de señales holder-of-key SAML autoemitidas con clave asimétrica mediante las API de WSS.

Acerca de esta tarea

En esta tarea se muestra un código de ejemplo en el que se insertan los atributos personalizados en las señales de seguridad SAML autoemitidas. Este ejemplo en concreto utiliza el método de confirmación de sujetos bearer. Puede añadir atributos a las señales de seguridad SAML y el mismo código se puede utilizar con otros métodos de confirmación de sujetos.

Procedimiento

Inserte los atributos personalizados al crear las señales de seguridad SAML; por ejemplo:
import com.ibm.websphere.wssecurity.wssapi.token.SecurityToken;
import com.ibm.websphere.wssecurity.callbackhandler.SAMLGenerateCallbackHandler;
import com.ibm.websphere.wssecurity.wssapi.token.SAMLToken;
import com.ibm.wsspi.wssecurity.core.token.config.WSSConstants;
import com.ibm.wsspi.wssecurity.saml.config.SamlConstants;
import com.ibm.wsspi.wssecurity.saml.data.SAMLAttribute;

WSSFactory factory = WSSFactory.getInstance();
HashMap<Object, Object> map = new HashMap<Object, Object>();
map.put(SamlConstants.CONFIRMATION_METHOD, "Bearer");
map.put(SamlConstants.Token_REQUEST, "issue");
map.put(SamlConstants.TOKEN_TYPE, WSSConstants.SAML.SAML20_VALUE_TYPE);
map.put(SamlConstants.SAML_NAME_IDENTIFIER, "Alice");
map.put(SamlConstants.SIGNATURE_REQUIRED, "true");
ArrayList<SAMLAttribute> al = new ArrayList<SAMLAttribute>();
String groups[] = {"IBMer", "Texan"};
SAMLAttribute sattribute = new SAMLAttribute("Membership", groups, null,null, null, null);
al.add(sattribute);
String gender[] = {"Female"};
sattribute = new SAMLAttribute("Gender", gender, null,null, null, null);
al.add(sattribute);
map.put(SamlConstants.SAML_ATTRIBUTES, al);
SAMLGenerateCallbackHandler callbackHandler = new SAMLGenerateCallbackHandler(map);	
SecurityToken samlToken = factory.newSecurityToken(SAMLToken.class, callbackHandler,
                                                  "system.wss.generate.saml");

Resultados

Ha insertado los atributos personalizados en una señal de seguridad SAML.

Ejemplo

El ejemplo siguiente muestra los atributos personalizados en la aserción SAML:
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
				              				              Version="2.0"
                       ID="_E62A1CA3C2F21D9A9B1287772824570"
                       IssueInstant="2010-10-22T18:40:24.531Z">
    <saml2:Issuer>example.com</samls2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    ...
    </ds:Signature>
    <saml2:Subject>
        <saml2:NameID>Alice</saml2:NameID>
        <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"></saml2:SubjectConfirmation>
    </saml2:Subject>
    <saml2:Conditions NotBefore="2010-10-22T18:40:24.531Z"
		                  		                  NotOnOrAfter="2010-10-22T19:40:24.531Z">
    </saml2:Conditions>
    <saml2:AttributeStatement>
        <saml2:Attribute Name="Membership">
            <saml2:AttributeValue>IBMer</saml2:AttributeValue>
            <saml2:AttributeValue>Texan</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="Gender">
            <saml2:AttributeValue>Female</saml2:AttributeValue>
        </saml2:Attribute>
    </saml2:AttributeStatement>
</saml2:Assertion>

Qué hacer a continuación

Fusione el código con el código de ejemplo que aparece en el tema “Propagación de señales bearer SAML autoemitidas mediante las API de WSS“ para generar las señales de seguridad SAML. Puede ver los atributos SAML en las aserciones SAML.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configsaml_insert_attributes_usingwssapi
File name: twbs_configsaml_insert_attributes_usingwssapi.html