Passando Tokens do SAML entre Módulos de Login do JAAS

O SAMLGenerateLoginModule pode ser usado para obter um token do SAML gerado por aplicativo a partir de um objeto de estado compartilhado incializado no módulo de login do JAAS do aplicativo. Adicionalmente, o GenericIssuedTokenGenerateLoginModule poderá também ser usado para obter um token SAML gerado pelo aplicativo a partir do estado compartilhado. Para obter informações adicionais, leia o tópico Gerando e consumindo tokens SAML usando módulos de login JAAS empilhados.

Sobre Esta Tarefa

O procedimento a seguir descreve a configuração necessária para usar esta funcionalidade.

Procedimento

  1. Salve fora do objeto de estado compartilhado em uma variável de classe no método Inicializar do módulo de login do 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. Coloque o SAMLToken gerado pelo aplicativo no objeto sharedState, usando um dos métodos a seguir:
      • Crie um ArrayList de SecurityToken e coloque o aplicativo gerado SAMLToken como a única entrada nesta lista. O tempo de execução do WS-Security executa loops pela lista e usa apenas a primeira ocorrência.
      • Coloque o objeto ArrayList no objeto _sharedState com a chave 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. Use o método GenericSecurityTokenFactory.putGeneratorTokenToSharedState para colocar o token SAML no objeto _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);
      ...
        }

Í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_pass_samltoken
Nome do arquivo: twbs_pass_samltoken.html