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

En utilisant WebSphere Application Server, vous pouvez créer des attributs SAML en utilisant les API de bibliothèque de jetons SAML. Les attributs SAML sont ajoutés à un objet CredentialConfig, qui est utilisé pour générer un jeton SAML. L'API contient également une fonction qui extrait les attributs d'un jeton SAML existant et les traite.

Pour créer un jeton SAML contenant des attributs SAML, suivez la procédure ci-dessous :

Procédure

  1. 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");
  2. 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.
    1. Créez un objet com.ibm.wsspi.wssecurity.saml.config.CredentialConfig et définissez un nom principal valide.
    2. Créez un attribut SAML.
    3. Créez une liste d'attributs SAML et ajoutez-y l'attribut.
    4. Ajoutez la liste d'attributs SAML à l'objet CredentialConfig.
    Examinez l'exemple suivant :
    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. 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.
    1. Obtenez une instance de l'API SAMLTokenFactory.
    2. 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);
  4. 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.
    1. 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.
    2. Appliquez un itérateur à la liste.
    3. Itérez dans la liste et effectuez les traitements requis par votre application.
    Examinez l'exemple suivant :
    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();
    
       }

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_managesamlattribs
Nom du fichier : twbs_managesamlattribs.html