SAML-Token zwischen JAAS-Anmeldemodulen übergeben

Mit dem SAMLGenerateLoginModule kann ein von der Anwendung generiertes SAML-Token aus einem Objekt mit gemeinsamem Status (sharedState), das im JAAS-Anmeldemodul der Anwendung initialisiert wird, abgerufen werden. Das GenericIssuedTokenGenerateLoginModule kann außerdem verwendet werden, um ein von der Anwendung generiertes SAML-Token aus dem gemeinsamen Status abzurufen. Weitere Informationen finden Sie im Artikel "SAML-Token mit einem Stack von JAAS-Anmeldemodulen generieren und konsumieren".

Informationen zu diesem Vorgang

Die folgende Vorgehensweise beschreibt die Konfiguration, die zur Verwendung dieser Funktionalität erforderlich ist.

Vorgehensweise

  1. Speichern Sie das Objekt mit gemeinsamem Status in einer "class"-Variablen in der Initialisierungsmethode des JAAS-Anmeldemoduls.
    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. Nehmen Sie das von der Anwendung generierte SAMLToken in das Objekt mit gemeinsamem Status (sharedState) auf. Verwenden Sie dazu eine der folgenden Methoden:
      • Erstellen Sie eine ArrayList mit SecurityToken und nehmen Sie das von der Anwendung generierte SAMLToken als einzigen Eintrag in die Liste auf. Die WS-Security-Laufzeit durchläuft die Liste in einer Schleife und verwendet nur den ersten Treffer.
      • Nehmen Sie das ArrayList-Objekt mit dem Schlüssel com.ibm.wsspi.wssecurity.core.Constants.WSSECURITY_TOKEN_TO_BE_INSERTED in das _sharedState-Objekt auf.
        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. Verwenden Sie die Methode GenericSecurityTokenFactory.putGeneratorTokenToSharedState, um das SAML-Token in das _sharedState-Objekt aufzunehmen.
      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);
      ...
        }

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_pass_samltoken
Dateiname:twbs_pass_samltoken.html