Transmission des jetons SAML entre les modules de connexion JAAS

SAMLGenerateLoginModule permet d'obtenir un jeton SAML généré par l'application, à partir d'un objet d'état partagé qui est initialisé dans le module de connexion JAAS de l'application. De plus, le module GenericIssuedTokenGenerateLoginModule peut également être utilisé pour obtenir un jeton SAML généré par une application à partir de l'état partagé. Pour plus d'informations, consultez la rubrique Génération et consommation de jetons SAML à l'aide de modules de connexion JAAS empilés.

Pourquoi et quand exécuter cette tâche

La procédure ci-dessous décrit la configuration requise pour l'utilisation de cette fonctionnalité.

Procédure

  1. Sauvegardez l'objet d'état partagé dans une variable de classe de la méthode d'initialisation du module de connexion JAAS.
    import com.ibm.websphere.wssecurity.wssapi.token.SecurityToken;
    import com.ibm.websphere.wssecurity.wssapi.token.SAMLToken;
    import com.ibm.wsspi.wssecurity.core.Constants;
    
    public class myLoginModule implements LoginModule {
    ...
      private Map _sharedState;
    ...
    public void initialize(Subject subject, 
           CallbackHandle rcallbackHandler, 
           Map<String, ?> sharedState, 
           Map<String, ?> options) {
    ...
       this._sharedState = sharedState;
    ...
      }     
  2. Placez le jeton SAML généré par l'application sur l'objet sharedState à l'aide de l'une des méthodes suivantes :
      • Créez un ArrayList de SecurityToken et placez le jeton SAML généré par l'application comme entrée unique dans cette liste. L'exécution de WS-Security passe la liste en boucle et n'utilise que la première occurrence.
      • Placez l'objet ArrayList dans l'objet _sharedState à l'aide de la clé com.ibm.wsspi.wssecurity.core.Constants.WSSECURITY_TOKEN_TO_BE_INSERTED.
        com.ibm.wsspi.wssecurity.core.Constants.
        WSSECURITY_TOKEN_TO_BE_INSERTED
        
          public boolean login() throws LoginException {
        ...
            SAMLToken mySamlToken=someSAMLToken;
            ArrayList<SecurityToken> tokenList = 
                new ArrayList<SecurityToken>();
            tokenList.add(mySamlToken);
            _sharedState.put(
                Constants.WSSECURITY_TOKEN_TO_BE_INSERTED,
                tokenList);
        ...
          }
    1. Utilisez la méthode GenericSecurityTokenFactory.putGeneratorTokenToSharedState pour placez le jeton SAML sur l'objet _sharedState.
      import com.ibm.websphere.wssecurity.wssapi.token.GenericSecurityTokenFactory;
      
        public boolean login() throws LoginException {
      ...
        SAMLToken mySamlToken=someSAMLToken;
        GenericSecurityTokenFactory factory = GenericSecurityTokenFactory.getInstance();
        factory.putGeneratorTokenToSharedState(this._sharedState, mySamlToken);
      ...
        }

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_pass_samltoken
Nom du fichier : twbs_pass_samltoken.html