Filtres d'authentification

Vous pouvez utiliser un filtre d'authentification pour déterminer si certaines demandes de servlet HTTP sont traitées par des fournisseurs spécifiques.

Le filtre d'authentification de serveur Liberty utilise les critères de filtrage spécifiés dans l'élément authFilter du fichier server.xml pour déterminer si certaines demandes de servlet HTTP sont traitées par des fournisseurs spécifiques, tels que OpenID, OpenID Connect ou SPNEGO, pour la partie authentification.

Si les conditions de l'élément authFilter ne sont pas toutes respectées, la demande de servlet HTTP est traitée par le fournisseur particulier qui référence cet élément authFilter. Si aucune des conditions de l'élément authFilter n'est respectée, la demande de servlet HTTP n'est pas traitée par le fournisseur.

Eléments pris en charge

L'élément authFilter prend en charge les éléments suivants : userAgent, host, webApp, remoteAddress et requestUrl.

  • L'élément userAgent est comparé à une valeur d'en-tête correspondante qui est extraite de la demande de servlet HTTP entrante. L'élément userAgent est comparé à l'en-tête de demande HTTP "User-Agent", lequel identifie le logiciel client qui est utilisé par la demande d'origine. Pour les navigateurs clients Web, cette valeur indique le type de navigateur qui est utilisé pour initier la demande (Internet Explorer, Firefox, Safari, etc.).
  • L'élément host est utilisé d'une manière similaire à l'élément userAgent. L'élément host est comparé à l'en-tête de demande HTTP "Host", lequel identifie le nom d'hôte cible de la demande.
  • L'élément webApp est utilisé pour indiquer l'application, ou la liste d'applications, hébergée sur le serveur Liberty qui est protégé par ce filtre d'authentification.
  • L'élément remoteAddress est comparé à l'adresse TCP/IP distante de l'application client qui a envoyé la demande HTTP. Vous pouvez configurer des caractères génériques pour indiquer des sous-réseaux et des plages à l'aide des valeurs lessThan ou greaterThan de l'attribut matchType, comme illustré dans les exemples présentés plus loin dans cette rubrique.
  • L'élément requestUrl est comparé à l'URL qui est utilisée par l'application client pour effectuer la demande. Des masques d'URL uniques ou des listes de valeurs dirigées sont configurées, comme illustré dans les exemples présentés plus loin dans cette rubrique.

Exemples de filtres d'authentification

L'URL de demande contient un masque
L'exemple suivant illustre une configuration classique pour un filtre d'authentification. Dans le cas présent, une demande entrante avec une URL de demande contenant "/SimpleServlet" est traitée par le service qui est configuré pour l'utilisation de ce filtre.
<authFilter id="myAuthFilter">
         <requestUrl id="myRequestUrl" urlPattern="/SimpleServlet" matchType="contains"/>
</authFilter>
L'URL de demande contient l'un des ensembles de masques
Dans l'exemple ci-après, une liste de masque d'URL de demande dirigé est spécifiée. Pour traiter une demande entrante avec le service configuré pour utiliser ce filtre, l'URL de demande entrante doit contenir l'une des valeurs suivantes : "/SimpleServlet", "/EmployeeRoleServlet" ou "/AllRoleServlet".
<authFilter id="myAuthFilter">
         <requestUrl id="myURL" urlPattern="/SimpleServlet|/EmployeeRoleServlet|/AllRoleServlet" matchType="contains" />
</authFilter>
Le nom d'application Web contient un masque
Dans l'exemple ci-après, un nom d'application Web est spécifié dans le filtre d'authentification. Les demandes entrantes doivent cibler l'application "myApp" afin qu'elle soit traitée par le service qui est configuré pour l'utilisation de ce filtre.
<authFilter id="myAuthFilter">
         <webApp id="myWebApp" name="myApp" matchType="contains"/>
</authFilter>
Le nom d'application Web contient un ensemble de masques
Dans l'exemple ci-après, une liste dirigée d'applications Web est spécifiée. Pour traiter une demande entrante avec le service configuré pour utiliser ce filtre, la demande entrante doit cibler l'une des applications suivantes : "myApp1", "myApp2" ou "myApp3".
<authFilter id="myAuthFilter">
         <webApp id="myWebApp" name="myApp1|myApp2|myApp3" matchType="contains"/>
</authFilter>
La demande provient d'une adresse IP spécifique
L'exemple ci-après illustre l'utilisation de caractères génériques dans l'élément remoteAddress. Avec cette configuration, le service qui est configuré pour l'utilisation de ce filtre traite la demande entrante si celle-ci provient d'une adresse IP de la plage 127.0.0.*.
<authFilter id="myAuthFilter">
         <remoteAddress id="myRemoteAddress" ip="127.0.0.*" matchType="equals"/>
</authFilter>
Exclusion de masques
L'exemple ci-après illustre l'utilisation d'une liste dirigée de valeurs pour l'élément requestUrl. La correspondance de l'un des masque de liste suffit pour répondre aux exigence de cet élément particulier. Dans cet exemple, l'URL de demande doit contenir l'une des valeurs suivantes : "/SimpleServlet", "/EmployeeRoleServlet" ou "/AllRoleServlet". En outre, l'URL de demande ne doit pas contenir "/ManagerRoleServlet" et la demande doit émaner d'un agent utilisateur Internet Explorer.
<authFilter id="myAuthFilter">
         <requestUrl id="myURL1" urlPattern="/SimpleServlet|/EmployeeRoleServlet|/AllRoleServlet" matchType="contains" />
         <requestUrl id="myURL2" urlPattern="/ManagerRoleServlet" matchType="notContain" />
         <userAgent id="myAgent" agent="IE" matchType="contains" />
</authFilter>
Exemple d'utilisation de tous les sous-éléments
Pour traiter une demande entrante avec le service configuré pour l'utilisation de ce filtre, il est nécessaire que cette demande respecte les conditions suivantes :
  • Elle contient le masque "/SimpleServlet" dans l'URL de demande
  • Elle cible un domaine contenant "host.example.com"
  • Elle provient de l'adresse IP 127.0.0.1
  • Elle émane d'un navigateur Firefox
  • Le nom de l'application cible est myApp
<authFilter id="myAuthFilter">
         <requestUrl id="myRequestUrl" urlPattern="/SimpleServlet" matchType="contains"/>
         <host id="myHost" name="host.example.com" matchType="contains"/>
         <remoteAddress id="myAddress" ip="127.0.0.1" matchType="equals" />
         <userAgent id="myUserAgent" agent="Firefox" matchType="equals"/>
         <webApp id="myWebApp" name="myApp" matchType="contains"/>
</authFilter>

Icône indiquant le type de rubrique Rubrique de référence

Nom du fichier : rwlp_auth_filter.html