Modèles d'autorisation applicables à la sécurité des services Web
Les applications de fournisseur implémentées en tant que servlets ou EJB (Enterprise JavaBeans) peuvent utiliser des services Web et être protégés par la sécurité des services Web. Le processus d'autorisation par rôle Java Platform, Enterprise Edition (Java EE) permet de contrôler l'accès aux applications de fournisseur de service Web implémentées en tant servlets ou EJB. Bien que les rôles de sécurité pour les implémentations de servlet et d'EJB soient configurés de la même manière, l'accès aux services diffère selon l'implémentation.
- Un jeton de sécurité est transmis dans l'en-tête HTTP de la demande SOAP.
- Le conteneur Web authentifie le jeton de sécurité, puis effectue l'autorisation par rôle de l'utilisateur.
- Une fois que l'autorisation de l'utilisateur aboutit, le conteneur Web appelle le moteur de services Web à l'aide du message entrant.
La figure ci-dessous illustre l'emplacement de chaque étape du processus d'autorisation par rôle pour les servlets.

- Un jeton de sécurité pour l'identité de l'utilisateur est transmis dans l'en-tête de sécurité de la demande SOAP.
- La sécurité des services Web authentifie le jeton.
- A l'aide d'une configuration d'appelant, la sécurité des services Web définit l'identité du jeton authentifié sur l'unité d'exécution en cours.
- Lorsque le noeud final est appelé par le moteur de services Web, le conteneur d'EJB exécute le processus d'autorisation par rôle sur l'identité dans l'unité d'exécution en cours.
La figure ci-dessous illustre l'emplacement de chaque étape du processus d'autorisation par rôle pour les EJB.

Lorsqu'un fournisseur de service Web est implémenté en tant que servlet, un jeton transmis par la sécurité des services Web dans l'en-tête de sécurité de la demande SOAP ne peut pas être utilisé pour l'autorisation par rôle à des fins d'accès au service.
Lorsqu'un fournisseur de service Web est implémenté en tant qu'EJB, un jeton transmis par la sécurité des services Web dans l'en-tête de sécurité de la demande SOAP ne peut être utilisé pour l'autorisation par rôle par le conteneur d'EJB à des fins d'accès au service que s'il existe une configuration d'appelant pour ce jeton dans les contraintes de sécurité de services Web actives.
Les fournisseurs de service Web implémentés en tant qu'EJB peuvent également utiliser le conteneur Web pour effectuer l'autorisation par rôle. Pour cela, le servlet routeur présenté dans la figure Autorisation d'EJB dans la sécurité de service Web est protégé à l'aide de l'authentification de base HTTP. Une fois cette opération terminée, le processus se poursuit comme illustré dans la figure Autorisation de servlet dans la sécurité de service Web.
Lorsqu'il existe une configuration d'appelant dans les contraintes de sécurité de services Web actives pour un jeton entrant, ce dernier sera défini comme identité runAs dans le contexte de sécurité sur l'unité d'exécution en cours. L'application de fournisseur protégée peut elle-même prendre des décisions d'autorisation en fonction de cette identité. Cela s'applique à la fois aux servlets et aux EJB.