Creación de atributos SAML en señales SAML

Con la API de ejecución de SAML, puede crear señales SAML que contengan atributos SAML. También puede extraer atributos SAML de una señal SAML existente.

Acerca de esta tarea

Si utiliza WebSphere Application Server, puede crear atributos SAML con las API de biblioteca de señales SAML. Los atributos SAML se añaden a un objeto CredentialConfig, que se utiliza para generar una señal SAML. La API también proporciona una función que extrae atributos SAML de una señal SAML existente y procesa los atributos.

Para crear una señal SAML que contenga atributos SAML, siga estos pasos:

Procedimiento

  1. Inicialice un objeto com.ibm.wsspi.wssecurity.saml.data.SAMLAttribute. Esto crea un atributo SAML basado en una dirección, por ejemplo:
    SAMLAttribute sattribute = 	       	
             new SAMLAttribute("urn:oid:2.5.4.20", //Name
        		 		 new String[] {" any address"}, //Attribute Values
        		 		 null,  /*XML Attributes empty on this example*/	 
        		 		 "urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500", //NameSpace
        		 		 "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",  //format
        		 		 "Address");
  2. Utilice SAMLTokenFactory para crear un objeto CredentialConfig que contenga un atributo SAML. Este método exige el permiso de seguridad Java wssapi.SAMLTokenFactory.newCredentialConfig.
    1. Cree un objeto com.ibm.wsspi.wssecurity.saml.config.CredentialConfig y establezca un nombre principal válido.
    2. Cree un atributo SAML.
    3. Cree una lista de atributos SAML y añada el atributo SAML a la lista.
    4. Añada la lista de atributos SAML al objeto CredentialConfig.
    Consulte el ejemplo siguiente:
    SAMLTokenFactory samlFactory =
      SAMLTokenFactory.getInstance("http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0");//samlTokenType
                
    CredentialConfig credentialConfig = samlFactory.newCredentialConfig();
    credentialConfig.setRequesterNameID("any name");
              
    SAMLAttribute sattribute = 	       	
             new SAMLAttribute("urn:oid:2.5.4.20", //Name
        		 		 new String[] {" any address"}, //Attribute Values
        		 		 null,  /*XML Attributes empty on this example*/	 
        		 		 "urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500", //NameSpace
        		 		 "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",  //format
        		 		 "Address");            
    ArrayList<SAMLAttribute> al = new ArrayList<SAMLAttribute>();
    al.add(sattribute);
    credentialConfig.setSAMLAttributes(al);
  3. Si especifica CredentialConfig como parámetro, utilice el método com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory newSAMLToken para crear una señal SAML que contenga los atributos. En este paso se presupone que un objeto RequesterConfig reqData y un objeto ProviderConfig samlIssuerCfg ya se han creado. Para obtener más información sobre estos objetos, consulte la información sobre RequesterConfig y ProviderConfig.
    1. Obtenga una instancia de SAMLTokenFactory.
    2. Cree una señal SAML mediante el método newSAMLToken de la SAMLTokenFactory, por ejemplo:
      SAMLTokenFactory samlFactory =
        SAMLTokenFactory.getInstance("http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1");
      
      SAMLToken aSamlToken = samlFactory.newSAMLToken(credentialConfig, reqData, samlIssuerCfg);
  4. Opcional: Extraiga los atributos SAML de una señal SAML existente. Este paso es útil para extraer los atributos de SAML de una señal SAML recibida. Puede utilizar este paso cuando se recibe una aserción SAML y los atributos contenidos en la aserción tienen que procesarse.
    1. Invocar el método getSAMLAttributes() con la señal como parámetro para obtener una lista de atributos SAML en la señal. Este método exige el permiso de seguridad Java wssapi.SAMLToken.getSAMLAttributes.
    2. Aplique un iterador a la lista.
    3. Aplique la iteración en la lista y realice los procesos adicionales necesarios para la aplicación.
    Consulte el ejemplo siguiente:
    List<SAMLAttribute> aList = aSAMLToken.getSAMLAttributes();
    java.util.Iterator<SAMLAttribute> i = aList.iterator();
    
    while (i.hasNext()) {
    
       SAMLAttribute anAttribute = i.next();
    
       //hacer algo con espacio de nombres
       String namespace = anAttribute.getAttributeNamespace();
    
       //hacer algo con nombre
       String name = anAttribute.getName();
    
       //hacer algo con nombre descriptivo
       String friendlyName = anAttribute.getFriendlyName();
    
       //procesar valores de atributo de serie
       String[] stringAttributeValues = anAttribute.getStringAttributeValue();
    
       //procesar valores de atributo XML
       XMLStructure[] xmlAttributeValues = (XMLStructure[]) anAttribute.getXMLAttributeValue();
    
       }

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_managesamlattribs
File name: twbs_managesamlattribs.html