2012-03-29 1 views
1

Ich bin neu in Jboss und Spring. Aber verstehen Sie, wie die PKI 509 funktioniert, und wissen Sie, wie Sie die benötigten Zertifikate für sie generieren können. Das Problem besteht in der Einrichtung von Jboss mit Spring Security PKI 509-basierten Login.
Was ein gutes Tutorial wäre, das gleiche zu erreichen ...Wie konfiguriert man JBoss mit Spring Security PKI 509 Login?

dank
Nohsib

Antwort

2

Zum einen müssen Sie SSL für JBoss ermöglichen, Ihre Server-Zertifikat als Schlüsselspeicher verwenden, und ein zugehöriges-Vertrauens Für die CA Cert-Ketten, die die Server-Zertifikate signiert haben, und alle Ketten, die zur Signierung der Client-Zertifikate verwendet werden, möchten Sie mit Ihrem Server interagieren. Sie sollten auch clientAuth auf "true" (Clients müssen ein cert haben) oder "will" setzen (so dass auf eine andere Authentifizierungsmethode wie BASIC zurückgegriffen werden kann, falls der Client kein Client-Zertifikat hat):

nun in Ihrem Web-Anwendung benötigen Sie Frühling konfigurieren und die X509 Pre Auth Filter aktivieren. Dadurch wird der DN des Clients aus dem Servlet-Anforderungsattribut javax.servlet.request.X509Certificate abgerufen. Ein Teil dieser DN kann dann extrahiert werden (zum Beispiel das CN), und dies wird dann in Verbindung mit einer UserDetailsService Implementierung verwendet, um die Benutzerdetails (in einer DB oder über einen WS-Ruf zum Beispiel) zu suchen.

Darüber hinaus können Sie die Berechtigung auf der Grundlage der Benutzer Details liefern, wie Rollen, Gruppen, Orgs usw.

Eine einfache Spring-Konfiguration dafür könnte etwa so aussehen (ungeprüft und rein aus dem Gedächtnis der vielen Male, die ich so etwas geschrieben habe):

<http:http> 
    <!-- X509 Filter to extract PKI CN field as the users name, which is then 
     passed to the userService to lookup their details (such as roles) --> 
    <http:x509 subject-principal-regex="CN=(.*?)," 
     user-service-ref="userService"/> 

    <!-- filter all traffic to any URL, user must be authenticated and had the specified 
     role in their UserDetails object --> 
    <intercept-url pattern='/**' access='ROLE_USER' /> 
</http:http> 

<!-- Custom user service that calls out to Restful web service to acquire user 
    details information, based upon the PKI Certs CN field --> 
<beans:bean id="userService" 
    class="com.domain.security.user.ws.RestfulUserService"> 
</beans:bean> 

Endlich ist es eine ganze Menge Text zu lesen, aber die Dokumentation für Spring Security ist ziemlich gut, und bietet Beispiele und Einblicke, was hinter den Kulissen vor sich geht - ich würde es sehr empfehlen zu lesen (es ist, wo ich das alles gelernt habe!):