Criando Atributos SAML em Tokens SAML

Utilizando a API de tempo de execução do SAML, é possível criar tokens SAML contendo atributos SAML. Também é possível extrair os atributos SAML de um token SAML existente.

Sobre Esta Tarefa

Usando o WebSphere Application Server, é possível criar atributos SAML usando as APIs de biblioteca de token SAML. Os atributos SAML são incluídos em um objeto CredentialConfig, que é utilizado para gerar um token SAML. A API também fornece uma função que extrai atributos SAML de um token SAML existente e processa os atributos.

Para criar um token SAML contendo atributos SAML, execute as seguintes etapas:

Procedimento

  1. Inicialize um objeto com.ibm.wsspi.wssecurity.saml.data.SAMLAttribute. Isso cria um atributo SAML baseado em um endereço, por exemplo:
    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. Utilize SAMLTokenFactory para criar um objeto CredentialConfig contendo um atributo SAML. Esse método requer a permissão de segurança Java wssapi.SAMLTokenFactory.newCredentialConfig.
    1. Crie um objeto com.ibm.wsspi.wssecurity.saml.config.CredentialConfig e configure um nome de principal válido.
    2. Crie um atributo SAML.
    3. Crie uma lista de atributos SAML e inclua o atributo SAML na lista.
    4. Inclua a lista de atributos SAML no objeto CredentialConfig.
    Consulte o exemplo a seguir:
    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. Especificando CredentialConfig como um parâmetro, utilize o método com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory newSAMLToken para criar um token SAML contendo os atributos. Esta etapa supõe que um objeto RequesterConfig reqData e um objeto ProviderConfig samlIssuerCfg já tenham sido criados. Para obter informações adicionais sobre esses objetos, leia sobre RequesterConfig e ProviderConfig.
    1. Obtenha uma instância de SAMLTokenFactory.
    2. Crie um token SAML utilizando o método newSAMLToken de SAMLTokenFactory, por exemplo:
      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: Extraia os atributos SAML de um token SAML existente. Esta etapa é útil para extrair os atributos SAML de um token SAML recebido. É possível usar esta etapa quando uma asserção SAML é recebida e os atributos contidos na asserção precisam ser processados.
    1. Invoque o método getSAMLAttributes() com o token como um parâmetro para obter uma lista dos atributos SAML no token. Esse método requer a permissão de segurança Java permission wssapi.SAMLToken.getSAMLAttributes.
    2. Aplique um agente iterativo na lista.
    3. Itere a lista e execute quaisquer processamentos adicionais necessários para o seu aplicativo.
    Consulte o exemplo a seguir:
    List<SAMLAttribute> aList = aSAMLToken.getSAMLAttributes();
    java.util.Iterator<SAMLAttribute> i = aList.iterator();
    
    while (i.hasNext ()) {
    
       SAMLAttribute anAttribute = i.next();
    
       //execute alguma ação com o espaço de nomes
       String namespace = anAttribute.getAttributeNamespace();
    
       //execute alguma ação com o nome
       String name = anAttribute.getName();
    
       //execute alguma ação com o nome fácil
       String friendlyName = anAttribute.getFriendlyName();
    
       //processe os valores de atributo da cadeia
       String[] stringAttributeValues = anAttribute.getStringAttributeValue();
    
       //processe os valores de atributo do XML
       XMLStructure[] xmlAttributeValues = (XMLStructure[]) anAttribute.getXMLAttributeValue();
    
       }

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_managesamlattribs
Nome do arquivo: twbs_managesamlattribs.html