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
Para criar um token SAML contendo atributos SAML, execute as seguintes etapas:
Procedimento
- 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");
- 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.
- Crie um objeto com.ibm.wsspi.wssecurity.saml.config.CredentialConfig e configure um nome de principal válido.
- Crie um atributo SAML.
- Crie uma lista de atributos SAML e inclua o atributo SAML na lista.
- Inclua a lista de atributos SAML no objeto CredentialConfig.
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);
- 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.
- Obtenha uma instância de SAMLTokenFactory.
- 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);
- 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.
- 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.
- Aplique um agente iterativo na lista.
- Itere a lista e execute quaisquer processamentos adicionais necessários para o seu aplicativo.
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(); }
Subtópicos
Atributos do Usuário SAML
Uma asserção SAML pode conter atributos do usuário relacionados ao principal do token SAML. Uma asserção SAML pode conter vários atributos do usuário.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_managesamlattribs
Nome do arquivo: twbs_managesamlattribs.html