
![[8.5.5.5 oder höher]](../ng_v8555.gif)
Authentifizierungsfilter
Sie können den Authentifizierungsfilter verwenden, um festzustellen, ob bestimmte HTTP-Servletanforderungen von bestimmten Providern verarbeitet werden.
Der Authentifizierungsfilter des Liberty Profile-Servers verwendet die Filterkriterien, die im Element authFilter in der Datei server.xml angegeben sind, um festzustellen, ob bestimmte HTTP-Servletanforderungen von bestimmten Providern wie OpenID, OpenID Connect oder SPNEGO zur Authentifizierung verarbeitet werden.
Wenn alle Bedingungen im authFilter-Element erfüllt sind, wird die HTTP-Servletanforderung von dem Provider, der auf dieses authFilter-Element verweist, verarbeitet. Wird eine der Bedingungen innerhalb des authFilter-Elements nicht erfüllt,wird die HTTP-Servletanforderung vom Provider nicht verarbeitet.
Unterstützte Elemente
Das Element authFilter unterstützt die folgenden Elemente: userAgent, host, webApp, remoteAddress und requestUrl.
- Das userAgent-Element wird mit einem entsprechenden Headerwert verglichen, der aus der eingehenden HTTP-Servletanforderung extrahiert wird. Das userAgent-Element wird mit dem HTTP-Anforderungsheader "User-Agent", der die von der ursprünglichen Anforderung verwendete Client-Software angibt, verglichen. Bei Web-Client-Browsern spiegelt dieser Wert den Browsertyp wieder, mit dem die Anforderung initiiert wird (Internet Explorer, Firefox, Safari etc.).
- Das host-Element wird in ähnlicher Weise verwendet wie das userAgent-Element. Das host-Element wird mit dem HTTP-Anforderungsheader "Host", der den Namen des Zielhosts der Anforderung angibt, verglichen.
- Das webApp-Element wird verwendet, um die Anwendung bzw. die Liste der Anwendungen anzugeben, die auf dem durch diesen Authentifizierungsfilter geschützten Liberty Profile-Server gehostet werden.
- Das remoteAddress-Element wird mit der fernen TCP/IP-Adresse der Clientanwendung verglichen, die die HTTP-Anforderung gesendet hat. Sie können Platzhalterzeichen für die Angabe von Teilnetzen und Bereichen konfigurieren. Verwenden Sie dazu die Werte lessThan und greaterThan des Attributs matchType, wie in den weiter unten in diesem Abschnitt genannten Beispielen dargestellt.
- Das requestUrl-Element wird mit der URL, die von der Clientanwendung für die Anforderung verwendet wird, verglichen. Es werden einzelne URL-Muster oder mit Pipezeichen verkettete Wertelisten konfiguriert, wie in den weiter unten in diesem Abschnitt genannten Beispielen dargestellt.
Beispiele für Authentifizierungsfilter
Das folgende Beispiel zeigt eine typische Konfiguration für einen Authentifizierungsfilter. Hier wird jede eingehende Anforderung mit einer Anforderungs-URL, die die Angabe"/SimpleServlet" enthält, von dem Service, der für die Verwendung dieses Filters konfiguriert ist, verarbeitet.
<authFilter id="myAuthFilter">
<requestUrl id="myRequestUrl" urlPattern="/SimpleServlet" matchType="contains"/>
</authFilter>
Im folgenden Beispiel wird eine mit Pipezeichen verkettete Liste von Anforderungs-URL-Mustern angegeben. Damit eine eingehende Anforderung mit dem für die Verwendung dieses Filters konfigurierten Service verarbeitet werden kann, muss die URL der eingehenden Anforderung eine der folgenden Angaben enthalten: "/SimpleServlet", "/EmployeeRoleServlet" oder "/AllRoleServlet".
<authFilter id="myAuthFilter">
<requestUrl id="myURL" urlPattern="/SimpleServlet|/EmployeeRoleServlet|/AllRoleServlet" matchType="contains" />
</authFilter>
Im folgenden Beispiel wird der Name einer Webanwendung im Authentifizierungsfilter angegeben. Eingehende Anforderungen müssen darauf abzielen, dass die Anwendung "myApp" von dem Service, der für die Verwendung dieses Filters konfiguriert ist, verarbeitet wird.
<authFilter id="myAuthFilter">
<webApp id="myWebApp" name="myApp" matchType="contains"/>
</authFilter>
Im folgenden Beispiel wird eine mit Pipezeichen verkettete Liste von Webanwendungen angegeben. Damit eine eingehende Anforderung mit dem für die Verwendung dieses Filters konfigurierten Service verarbeitet werden kann, muss die eingehende Anforderung sich auf eine der folgenden Anwendungen beziehen: "myApp1", "myApp2" oder "myApp3".
<authFilter id="myAuthFilter">
<webApp id="myWebApp" name="myApp1|myApp2|myApp3" matchType="contains"/>
</authFilter>
Das folgende Beispiel zeigt, wie Platzhalterzeichen im remoteAddress-Element verwendet werden. Mit dieser Konfiguration verarbeitet der Service, der für die Verwendung dieses Filters konfiguriert ist, die eingehende Anforderung, falls die Anforderung von einer IP-Adresse im Bereich 127.0.0.* kommt.
<authFilter id="myAuthFilter">
<remoteAddress id="myRemoteAddress" ip="127.0.0.*" matchType="equals"/>
</authFilter>
Das folgende Beispiel zeigt, wie eine mit Pipezeichen verkettete Werteliste für das requestUrl-Element verwendet wird. Liegt eine Übereinstimmung mit einem der Muster in der Liste vor, so reicht das aus, um die Voraussetzungen für dieses bestimmte Element zu erfüllen. In diesem Beispiel muss die Anforderungs-URL eine der folgenden Angaben enthalten: "/SimpleServlet", "/EmployeeRoleServlet" oder "/AllRoleServlet". Außerdem darf die Anforderungs-URL die Angabe "/ManagerRoleServlet" nicht enthalten und muss von einem Internet Explorer-Benutzeragenten kommen.
<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>
- Die Anforderung enthält das Muster "/SimpleServlet" in der Anforderungs-URL.
- Die Anforderung bezieht sich auf eine Domäne, die die Angabe "host.example.com" enthält.
- Die Anforderung kommt von der IP-Adresse 127.0.0.1.
- Die Anforderung kommt von einem Firefox-Browser.
- Der Name der Zielanwendung ist 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>