Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
17.4. Sécurité des applications EJB
17.4.1. Identité Sécurité
17.4.1.1. L'identité de sécurité EJB
Un EJB peut spécifier une identité à utiliser quand on invoque des méthodes sur d'autres composants. Il s'agit de security identity (également connu sous le nom invocation identity) de l'EJB.
Par défaut, l'EJB utilise sa propre identité d'appelant. L'identité peut également être définie à un rôle de sécurité spécifique. Les rôles de sécurité spécifiques sont utiles si vous voulez construire un modèle de sécurité segmenté - afin de, par exemple, restreindre l'accès à un ensemble de composants EJB internes uniquement.
17.4.1.2. Définir l'identité de sécurité d'un EJB
L'identité de sécurité de l'EJB est indiqué dans une balise
<security-identity>
dans la configuration de la sécurité.
Par défaut - si aucune balise
<security-identity>
n'est présente - l'identité de l'appelant de l'EJB sera utilisée.
Exemple 17.5. Définir l'identité de sécurité d'un EJB pour que ce soit la même que celle de l'appelant
Cet exemple définit l'identité de sécurité pour les invocations de méthode faîtes par un EJB de façon à ce qu'elle soit la même identité que celle de l'appelant actuel. Ce comportement correspond au comportement par défaut si vous ne spécifiez pas une déclaration d'élément
<security-identity>
.
<ejb-jar> <enterprise-beans> <session> <ejb-name>ASessionBean</ejb-name> <!-- ... --> <security-identity> <use-caller-identity/> </security-identity> </session> <!-- ... --> </enterprise-beans> </ejb-jar>
Exemple 17.6. Définir l'idendité de sécurité d'un EJB à un rôle spécifique
Pour définir l'id de sécurité à un rôle spécifique, utiliser
<run-as>
et les balises <role-name>
dans la balise <security-identity>
.
<ejb-jar> <enterprise-beans> <session> <ejb-name>RunAsBean</ejb-name> <!-- ... --> <security-identity> <run-as> <description>A private internal role</description> <role-name>InternalRole</role-name> </run-as> </security-identity> </session> </enterprise-beans> <!-- ... --> </ejb-jar>
Par défaut, quand vous utilisez
<run-as>
, un principal nommé anonymous
est assigné aux appels sortants. Pour assigner un autre principal, utiliser <run-as-principal>
.
<session> <ejb-name>RunAsBean</ejb-name> <security-identity> <run-as-principal>internal</run-as-principal> </security-identity> </session>
Note
Vous pouvez utiliser les éléments
<run-as>
et <run-as-principal>
à l'intérieur d'un élément de servlet.
Voir également :