Configuration de la sécurité

La sécurité EJB du connecteur est facultative, et n'est disponible que si le serveur d'applications sur lequel les beans d'entreprise sont déployés prend en charge les beans et le protocole de sécurité choisis. Si vous activez la sécurité, l'utilisateur (dans ce cas, le connecteur) doit fournir des données d'authentification au serveur d'applications pour accéder à tout bean déployé. La sécurité ne peut être activée dans le connecteur EJB avec JAAS (Java Authentication and Authorization Service) que si votre serveur d'applications prend en charge cette technologie de sécurité.

Affectation de droits d'accès de méthode aux rôles de sécurité

Le connecteur utilise le contrôle d'accès pour s'assurer que les utilisateurs n'accèdent qu'aux ressources pour lesquelles ils disposent de droits. Le contrôle d'accès applique des règles de sécurité qui réglementent ce que l'utilisateur a le droit ou non de faire dans un système. Les rôles de sécurité des beans d'entreprise du fichier JAR EJB indiquent les méthodes des interfaces locales et éloignées que chaque rôle de sécurité est autorisé à appeler. Le fichier de description du déploiement inclut des balises qui déclarent quels rôles logiques sont autorisés à accéder à quelles méthodes de bean lors de l'exécution.

L'exemple de code suivant montre comment des droits d'accès de méthodes sont affectés aux rôles de sécurité dans le descripteur de déploiement. Notez que pour chaque rôle indiqué dans le descripteur de déploiement, les méthodes qui peuvent être appelées sont groupées par nom de bean.

<method-permission>
         <role-name>payroll_department</role-name>
         <method>
                 <ejb-name>EmployeeService</ejb-name>
                 <method-name>*</method-name>
         </method>
 </method-permission>
 <method-permission>
         <role-name>employee</role-name>
         <method>
                 <ejb-name>AardvarkPayroll</ejb-name>
                 <method-name>findByPrimaryKey</method-name>
         </method>
         <method>
                 <ejb-name>AardvarkPayroll</ejb-name>
                 <method-name>getEmployeeInfo</method-name>
         </method>
         <method>
                 <ejb-name>AardvarkPayroll</ejb-name>
                 <method-name>updateEmployeeInfo</method-name>
         </method>
 </method-permission>
 <method-permission>

Utilisation du Java Authentication and Authorization Service (JAAS)

Si votre serveur d'applications prend en charge JAAS (Java Authentication and Authorization Service), vous pouvez l'utiliser pour implémenter la sécurité EJB. Lorsque l'utilisateur ou le client (dans ce cas le connecteur) tente d'accéder à un bean sécurisé déployé sur un serveur d'applications, JAAS vérifie l'utilisateur et ses droits d'accès. De cette façon, JAAS apporte un niveau de sécurité supplémentaire au serveur d'applications sur lequel le bean d'entreprise est déployé. JAAS impose de préciser un LoginContext, LoginModule et d'autres classes J2EE qui décrivent les méthodes basiques utilisées pour authentifier un client. Pour plus d'informations sur ces classes, voir LoginConfiguration.

Puisque le connecteur pour EJB agit comme un client du serveur, lorsque la sécurité est activée en environnement EJB, le connecteur doit apporter des données d'authentification utilisateur sous la forme d'un ID utilisateur (propriété de configuration JAASUserName du connecteur) et d'un mot de passe (propriété de configuration JAASPassword). Le conteneur EJB examine l'identité ou le rôle transmis par le connecteur, et le compare avec la liste des objets d'identité associés à la méthode, telle que définie dans le descripteur de déploiement. Si l'identité de l'appelant du connecteur correspond à une identité d'appelant associée à la méthode, alors la méthode peut être invoquée.

L'authentification valide l'identité de l'utilisateur (dans ce cas le connecteur). Une fois que l'utilisateur a franchi le système d'authentification, il est libre d'accéder et d'appeler des méthodes pour lesquelles il dispose d'autorisations.

Les propriétés du connecteur qui contrôlent la sécurité EJB à l'aide de JAAS sont LoginConfiguration, CallBackHandlerClass, JAASUserName, JAASPassword et JAASRealm. Les valeurs que vous indiquez pour ces propriétés dépendent totalement de votre serveur d'applications. Pour plus d'informations sur l'utilisation de ces propriétés par le connecteur, voir Propriétés spécifiques au connecteur. Pour plus d'informations sur les valeurs à entrer dans les propriétés, voir la documentation du serveur d'applications.

Configuration de JAAS dans le fichier de démarrage du connecteur

Pour que le connecteur fonctionne avec JAAS, vous devez apporter les modifications suivantes au fichier de démarrage du connecteur (start_EJB.bat ou start_EJB.sh) :

Copyright IBM Corp. 2003, 2005