Chapitre 17. Sécurité basée-rôle pour les applications

17.1. Security Extension Architecture

L'architecture des extensions de sécurité de la plateforme JBoss EAP se compose de trois parties. Ces trois parties connectent votre application à votre infrastructure de sécurité sous-jacente, que ce soit LDAP, Kerberos ou un autre système externe.
JAAS

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.

L'implémentation JAAS est 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.
Le MBean 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

Le rôle principal du 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.
Le deuxième rôle fondamental de 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>.
Quand vous spécifiez un nom JNDI, un object-binding doit déjà être présent. Pour simplifier l'installation de la liaison entre le nom JNDI et le gestionnaire de sécurité, le service 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

Vous n'avez pas besoin d'ajouter le préfixe java:/jaas à votre descripteur de déploiement. Vous pouvez le faire, pour les raisons de compatibilité rétroactive, mais ce sera ignoré.
JaasSecurityDomain MBean

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

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) ».