Как настроить Jboss для входа в Spring security PKI 509? - PullRequest
1 голос
/ 29 марта 2012

Я новичок в Jboss и Spring. Но вы понимаете, как работает PKI 509, и знаете, как создать необходимые сертификаты для этого. Проблема заключается в настройке Jboss с логином Spring security PKI 509.
Что было бы хорошим уроком для достижения того же ...

спасибо
Nohsib

1 Ответ

2 голосов
/ 30 марта 2012

Во-первых, вам нужно включить SSL для JBoss, используя сертификат сервера в качестве хранилища ключей, и связанное хранилище доверенных сертификатов для цепочек сертификатов CA, которые подписали сертификат серверов, и любые цепочки, которые используются для подписи клиента, удостоверяющего вас. хотите взаимодействовать с вашим сервером. Вы также захотите установить для clientAuth либо «true» (клиенты должны иметь сертификат), либо «want» (позволяющий использовать другой метод аутентификации, такой как BASIC, в случае, если у клиента нет сертификата клиента):

Теперь в вашем веб-приложении вам необходимо настроить Spring и включить фильтр предварительной авторизации X509. Это извлекает DN клиента из атрибута запроса сервлета javax.servlet.request.X509Certificate. Часть этого DN затем может быть извлечена (например, CN), и затем она используется вместе с реализацией UserDetailsService для поиска (в БД или посредством вызова WS, например) информации о пользователях.

Помимо этого, вы можете предоставлять авторизацию на основе таких данных пользователя, как роли, группы, организации и т. Д.

Простая конфигурация Spring для этого может выглядеть примерно так (непроверено и чисто по памяти много раз, когда я писал что-то подобное):

<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>

Наконец, это много текста для чтения, но документация для Spring Security довольно хорошая, и содержит примеры и понимание того, что происходит за кулисами - я очень рекомендую прочитать (это то место, где я все это узнал! ):

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...