Création d'attributs SAML dans les jetons SAML
L'API d'exécution SAML vous permet de créer des jetons SAML contenant des attributs SAML. Il est aussi possible d'extraire les attributs d'un jeton SAML existant.
Pourquoi et quand exécuter cette tâche
Pour créer un jeton SAML contenant des attributs SAML, suivez la procédure ci-dessous :
Procédure
- Initialisez un objet com.ibm.wsspi.wssecurity.saml.data.SAMLAttribute. Un attribut SAML basé sur une adresse est créé, par exemple :
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");
- Utilisez l'API SAMLTokenFactory pour créer un objet CredentialConfig contenant un attribut SAML. Cette méthode requiert le droit d'accès Java wssapi.SAMLTokenFactory.newCredentialConfig.
- Créez un objet com.ibm.wsspi.wssecurity.saml.config.CredentialConfig et définissez un nom principal valide.
- Créez un attribut SAML.
- Créez une liste d'attributs SAML et ajoutez-y l'attribut.
- Ajoutez la liste d'attributs SAML à l'objet 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);
- En utilisant CredentialConfig comme paramètre, utilisez la méthode newSAMLToken de com.ibm.websphere.wssecurity.wssapi.token.SAMLTokenFactory pour créer un jeton SAML contenant les attributs. Dans cette étape, on suppose qu'un objet RequesterConfig reqData et qu'un objet ProviderConfig samlIssuerCfg ont déjà été créés. Pour obtenir des informations sur ces objets, consultez les rubriques relatives à RequesterConfig et à ProviderConfig.
- Obtenez une instance de l'API SAMLTokenFactory.
- Créez un jeton SAML à l'aide de la méthode newSAMLToken de SAMLTokenFactory, par exemple :
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);
- Facultatif : Extrayez les attributs SAML d'un jeton existant. Dans cette étape, on extrait les attributs SAML d'un jeton reçu. Vous pouvez l'utiliser pour traiter les attributs d'une assertion SAML reçue.
- Appelez la méthode getSAMLAttributes() avec le jeton comme paramètre pour obtenir la liste des attributs SAML du jeton. Cette méthode requiert le droit d'accès Java wssapi.SAMLToken.getSAMLAttributes.
- Appliquez un itérateur à la liste.
- Itérez dans la liste et effectuez les traitements requis par votre application.
List<SAMLAttribute> aList = aSAMLToken.getSAMLAttributes(); java.util.Iterator<SAMLAttribute> i = aList.iterator(); while (i.hasNext ()) { SAMLAttribute anAttribute = i.next(); //Action sur l'espace de nom String namespace = anAttribute.getAttributeNamespace(); //Action sur le nom String name = anAttribute.getName(); //Action sur le nom explicite String friendlyName = anAttribute.getFriendlyName(); //Traiter les valeurs de l'attribut chaîne String[] stringAttributeValues = anAttribute.getStringAttributeValue(); //Traiter les valeurs des attributs XML XMLStructure[] xmlAttributeValues = (XMLStructure[]) anAttribute.getXMLAttributeValue(); }
Sous-rubriques
Attributs utilisateur SAML
Une assertion SAML peut contenir des attributs utilisateur relatifs au principal du jeton SAML. Une assertion SAML peut contenir plusieurs attributs utilisateur.


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