Prise en charge du jeton connectable
Le support de jeton de sécurité connectable fournit des points de connexion permettant de prendre en charge des types de jetons de sécurité client incluant la génération de jeton, la validation de jeton et le mappage d'une identité de client vers une identité WebSphere Application Server utilisée par le moteur d'autorisation Java™ EE (Java Platform, Enterprise Edition). De plus, la structure de validation et de génération de jeton connectable prend en charge l'insertion des jetons de type XML dans l'en-tête de message de services Web et leur validation au niveau du destinataire.
Vous pouvez étendre le mécanisme de mappage de connexion WebSphere Application Server afin de gérer de nouveaux types de jetons d'authentification. WebSphere Application Server fournit une structure connectable afin de générer des jetons de sécurité au niveau de l'expéditeur du message et de valider le jeton de sécurité au niveau du destinataire du message. La structure s'appuie sur les API JAAS (Java Authentication and Authorization Service).
- Utilisez un constructeur prenant un nom d'utilisateur (une chaîne ou null, si l'élément n'est pas défini), un mot de passe (un élément char[] ou null, si l'élément n'est pas défini) et java.util.Map (vide, si les propriétés ne sont pas définies).
- Utilisez les méthodes handle() qui peuvent traiter les implémentations suivantes :
- javax.security.auth.callback.NameCallback
- javax.security.auth.callback.PasswordCallback
- com.ibm.wsspi.wssecurity.auth.callback.XMLTokenCallback
- com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl
- Des données sont chargées dans l'implémentation javax.security.auth.callback.NameCallback ou javax.security.auth.callback.PasswordCallback puis un élément <wsse:UsernameToken> est créé.
- Des données sont chargées dans com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl, l'élément <wsse:BinarySecurityToken> est créé à partir de l'implémentation com.ibm.websphere.security.auth.callback.WSCredTokenCallbackImpl.
- Des données sont chargées dans com.ibm.wsspi.wssecurity.auth.callback.XMLTokenCallback, un jeton de type XML est créé à l'aide de l'élément DOM (Document Object Model) qui est renvoyé à partir de XMLTokenCallback.
Codez l'octet du jeton en utilisant le gestionnaire de sécurité et non en utilisant l'implémentation javax.security.auth.callback.CallbackHandler.
Vous pouvez implémenter l'interface com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory qui est une fabrique permettant d'instancier l'implémentation javax.security.auth.callback.CallbackHandler. Pour votre propre implémentation, vous devez fournir l'interface de sécurité javax.security.auth.callback.CallbackHandler. L'environnement d'exécution de la sécurité des services Web instancie la classe d'implémentation de fabrique et transmet les informations d'authentification provenant de l'en-tête du message des services Web à la classe de la fabrique via les méthodes setter. L'environnement d'exécution de la sécurité des Services Web appelle alors la méthode newCallbackHandler() de la classe d'implémentation de fabrique afin d'obtenir une instance de l'objet javax.security.auth.CallbackHandler. L'objet est transmis à la configuration de connexion JAAS.
public interface com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory {
public void setUsername(String username);
public void setRealm(String realm);
public void setPassword(String password);
public void setHashMap(Map properties);
public void setTokenByte(byte[] token);
public void setXMLToken(Element xmlToken);
public CallbackHandler newCallbackHandler();