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é.
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>
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.
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) :
-Djava.security.auth.login.config=login.conf
Dans l'exemple de commande fourni ici, le fichier de configuration JAAS porte le nom login.conf, qui dépend de l'environnement du serveur d'applications. Pour plus d'informations sur le nom et l'emplacement du fichier de configuration pour votre environnement, voir la documentation du serveur d'applications.
Notez que l'API JAAS est disponible dans le fichier jaas.jar, fourni par tout serveur d'applications pris en charge par EJB. Veillez à indiquer jaas.jar en tant que chemin de classe du connecteur.