Chapitre 17. Sécurité basée-rôle pour les applications
17.1. Security Extension Architecture Copier lienLien copié sur presse-papiers!
La première partie de l'infrastructure est l'API JAAS. JAAS est un framework additionnel qui procure une couche d'abstraction entre l'infrastructure de sécurité et votre application.
org.jboss.security.plugins.JaasSecurityManager, qui implémente les interfaces AuthenticationManager et RealmMapping. JaasSecurityManager s'intègre dans les couches de conteneur EJB et web, basées sur l'élément <security-domain> du descripteur de déploiement du composant correspondant.
JaasSecurityManagerService
Le service MBean JaasSecurityManagerService s'occupe des gestionnaires de la sécurité. Bien que son nom commence par Jaas, les gestionnaires de sécurité qu'il gère n'ont pas besoin pas d'utiliser JAAS dans leur implémentation. Le nom reflète le fait que l'implémentation de gestionnaire de sécurité par défaut est le JaasSecurityManager
JaasSecurityManagerService est d'externaliser la mise en œuvre du gestionnaire de sécurité. Vous pouvez modifier la mise en œuvre du gestionnaire de sécurité en fournissant une implémentation alternative des interfaces AuthenticationManager et RealmMapping.
JaasSecurityManagerService est de fournir une implémentation javax.naming.spi.ObjectFactory JNDI pour permettre une gestion simple de la liaison dépourvue de code entre le nom JNDI et l'implémentation du gestionnaire de sécurité, sans code. Pour activer la sécurité, spécifiez le nom JNDI de l'implémentation du gestionnaire de sécurité par l'intermédiaire de l'élément de descripteur de déploiement <security-domain>.
JaasSecurityManagerService relie un next naming system reference, qui se nomme lui-même comme ObjectFactory JNDI sous le nom java:/jaas. Cela permet à une convention de nommage de la forme java:/jaas/XYZ à correspondre à la valeur de l'élément <security-domain>, et l'instance du gestionniaire de sécurité du domaine de sécurité XYZ sera créée selon les besoins, en créant une instance de la classe spécifiée par l'attribut SecurityManagerClassName, par l'intermédiaire d'un constructeur qui prendra le nom du domaine de sécurité.
Note
java:/jaas à votre descripteur de déploiement. Vous pouvez le faire, pour les raisons de compatibilité rétroactive, mais ce sera ignoré.
org.jboss.security.plugins.JaasSecurityDomain est une extension de JaasSecurityManager, qui ajoute la notion de KeyStore, de KeyManagerFactory et de TrustManagerFactory pour SSL et autres cas d'utilisation cryptographique.
Pour plus d'informations, et pour obtenir des exemples pratiques de l'architecture de sécurité en action, voir Section 17.3, « Java Authentication and Authorization Service (JAAS) ».