Berechtigungsmodelle von Web Services Security
Provideranwendungen, die als Servlets oder EJBs (Enterprise JavaBeans) implementiert sind, können Web-Services verwenden und mit Web Services Security geschützt werden. Die rollenbasierte Java EE-Berechtigung (Java Platform, Enterprise Edition) kann verwendet werden, um den Zugriff auf die als Servlets oder EJBs implementierten Web-Service-Provideranwendungen zu steuern. Obwohl Sicherheitsrollen für Servlet- und EJB-Implementierungen auf dieselbe Art und Weise konfiguriert werden, ist der Zugriff auf die Services je nach Implementierung verschieden.
- Ein Sicherheitstoken wird im HTTP-Header der SOAP-Anforderung übergeben.
- Der Web-Container authentifiziert das Sicherheitstoken und führt anschließend die rollenbasierte Berechtigung des Benutzers durch.
- Ist die Benutzerberechtigung erfolgreich, ruft der Web-Container die Web-Services-Engine mit der ankommenden Nachricht auf.
In der folgenden Abbildung ist dargestellt, welcher Schritt im Prozess der rollenbasierten Berechtigung für Servlets ausgeführt wird.

- Ein Sicherheitstoken für die Benutzeridentität wird im Sicherheitsheader der SOAP-Anforderung übergeben.
- Web Services Security authentifiziert das Token.
- Web Services Security verwendet eine Callerkonfiguration, um die Identität des authentifizierten Token im aktuellen Thread festzulegen.
- Wenn der Endpunkt von der Web-Services-Engine aufgerufen wird, führt der EJB-Container eine rollenbasierte Berechtigung für die Identität im aktuellen Thread durch.
In der folgenden Abbildung ist dargestellt, welcher Schritt im Prozess der rollenbasierten Berechtigung für EJBs ausgeführt wird.

Wird ein Web-Service-Provider als Servlet implementiert, kann ein Token, das von Web Services Security im Sicherheitsheader der SOAP-Anforderung übergeben wird, nicht für die rollenbasierte Berechtigung zwecks Zugriff auf den Service verwendet werden.
Wird ein Web-Service-Provider als EJB implementiert, kann ein Token, das von Web Services Security im Sicherheitsheader der SOAP-Anforderung übergeben wird, nur dann für die rollenbasierte Berechtigung durch den EJB-Container zwecks Zugriff auf den Service verwendet werden, wenn eine Callerkonfiguration für das betreffende Token in den Vorgaben von Web Services Security aktiv ist.
Web-Service-Provider, die als EJBs implementiert sind, können auch den Web-Container verwenden, um eine rollenbasierte Berechtigung durchzuführen. Dazu wird das in Abbildung EJB-Berechtigung in Web Services Security dargestellte Router-Servlet mit der HTTP-Basisauthentifizierung geschützt. Anschließend wird der Prozess wie in Abbildung Servletberechtigung in Web Services Security dargestellt fortgesetzt.
Wenn in den aktiven Vorgaben für Web Services Security für ein ankommendes Token eine Callerkonfiguration existiert, wird das betreffende Token im Sicherheitskontext des aktuellen Thread als runAs-Identität festgelegt. Die geschützte Provideranwendung selbst kann auf der Basis dieser Identität Berechtigungsentscheidungen treffen. Dies gilt sowohl für Servlets als auch für EJBs.