Autorisations utilisateur pour les tâches Scheduler
Le service de planification emploie le mécanisme de démarrage différé du produit Concurrency Utilities for Java EE pour propager des informations de contexte de service Java™ EE (Java Platform, Enterprise Edition) à une tâche lors de son exécution. Si vous avez l'intention de sécuriser votre application à l'aide du contexte de sécurité JAAS du mécanisme de sécurité globale intégré à WebSphere Application Server, créez chaque tâche avec les droits d'accès appropriés sur l'unité d'exécution.
- Utilisation du contexte de sécurité JAAS (Java Authentication and Authorization Service) sur l'unité d'exécution au moment de la création de la tâche. Voir la rubrique Exécution différée et sécurité dans la section relative au produit Concurrency Utilities for Java EE.
- Utilisation de la méthode setAuthenticationAlias sur l'objet TaskInfo.
- Utilisation d'une identité de sécurité spécifiée sur une méthode EJB TaskHandler de tâche BeanTaskInfo.
Le service de planification emploie le mécanisme de démarrage différé du produit Concurrency Utilities for Java EE pour propager des informations de contexte de service Java EE à une tâche lors de son exécution. La quantité d'informations de contexte de service propagées est contrôlée par les paramètres Contexte de service de l'objet de configuration WorkManager référencés par les planificateurs. Par exemple, les contextes de sécurité et d'internationalisation peuvent être activés. Pour savoir comment configurer le serveur d'applications afin de propager ces contextes de service, voir les informations sur le produit Concurrency Utilities for Java EE.
Contexte de sécurité du service d'autorisation et d'authentification Java
Si vous avez l'intention de sécuriser votre application à l'aide du contexte de sécurité JAAS du mécanisme de sécurité globale intégré au produit, créez chaque tâche avec les données d'identification appropriées sur l'unité d'exécution. Une fois que chaque tâche dispose des données d'identification appropriées, vous pouvez désactiver et réactiver la sécurité globale sans provoquer de problèmes de sécurité. Si vous ne définissez pas le contexte de sécurité lors de la création de la tâche du planificateur et que vous activez ultérieurement la sécurité dans l'application cible, une exception ou un message d'erreur lié à la sécurité, tel que SECJ0053E, peut s'afficher. Vous pouvez également voir cette erreur si deux planificateurs ou plus sur différents serveurs accèdent aux mêmes tables (un planificateur en cluster ou redondant) et les paramètres de sécurité sont différents.- La sécurité administrative est désactivée.
- Les règles du contexte de sécurité sont désactivées dans le gestionnaire de travaux défini pour la configuration du planificateur associé.
- Un justificatif n'est pas défini sur l'unité d'exécution. Par exemple, le bean enterprise ou le servlet utilisé pour créer la tâche planifiée n'est pas sécurisé, ou la tâche a été créée avec un WASScheduler MBean.
- Recherche de la tâche à l'aide de l'API de planification ou des méthodes get.
- Annulation de la tâche à l'aide de l'API Scheduler.cancel().
- Nouvelle création de la tâche à l'aide de la méthode Scheduler.create() avec la sécurité activée. La validation d'une tâche ayant été extraite du planificateur à l'aide des méthodes find ou get génère automatiquement une nouvelle ID tâche.
Ordre de priorité de la sécurité
Comme nous l'avons évoqué précédemment, il existe trois façons de vérifier qu'une tâche sera exécutée avec les justificatifs d'autorisation utilisateur corrects. De plus, chaque implémentation de TaskInfo peut avoir sa propre façon de fournir des informations utilisateur, pouvant se substituer aux mécanismes standard. Si plusieurs méthodes sont utilisées, reportez-vous aux listes suivantes pour déterminer le mécanisme de sécurité qui va être employé.
BeanTaskInfo- Identité de sécurité TaskHandler définie sur la méthode process() du fichier EJB (Enterprise Java Bean)
- Alias d'authentification défini avec la méthode setAuthenticationAlias sur l'interface TaskInfo
- Contexte de sécurité JAAS
- Alias d'authentification défini avec la méthode setAuthenticationAlias sur l'interface TaskInfo
- Les méthodes setUsername et setPassword sur l'interface MessageTaskInfo. Pour plus d'informations, voir l'article consacré aux fonctions dépréciées.