Назад | Перейти на главную страницу

Spring Security 3.1 и Active Directory - как настроить конфигурацию для пользователей и групп

Я не смог найти ничего, что касалось бы того, чего я хочу достичь

У меня есть веб-система, использующая Spring Secuirty 3.1, которой необходимо связывать пользователей из Active Directory. Для своего разработчика я просто хранил их в файле spring -security.xml. Это было нормально, но для производства мне нужно связать пользователей из Active Directory. У меня это работает, поэтому я могу войти в систему и т. Д., Так что проблема не в этом. У меня проблема в том, что в моей локальной разработке у меня были пользователи и «группы», то есть ROLE_USER и ROLE_ADMIN.

В Active Directory этим именам соответствуют две группы. Мне нужно сделать URL-адрес перехвата на основе этих типов ролей, но я не знаю, как это сделать для активного каталога.

Это моя локальная версия для разработчиков, которая жестко кодирует пользователей в провайдере аутентификации. Это должен быть активный каталог:

<http auto-config="true" disable-url-rewriting="true">
    <intercept-url pattern="/test/*" access="ROLE_USER, ROLE_ADMIN"  />
    <intercept-url pattern="/admin" access="ROLE_ADMIN"  />
    <intercept-url pattern="/list*" access="ROLE_USER, ROLE_ADMIN" />
    <form-login login-page="/login" 
            default-target-url="/home" 
            authentication-failure-url="/loginfailed" />
    <logout invalidate-session="true" logout-success-url="/logout" />
    <session-management invalid-session-url="/login">
        <concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
    </session-management>       
</http> 

<authentication-manager>
    <authentication-provider>
        <user-service>
            <user name="test" password="test" authorities="ROLE_USER" />
            <user name="admin" password="admin" authorities="ROLE_ADMIN" />
        </user-service>
    </authentication-provider>
</authentication-manager>

НО, что мне нужно сделать, так это заменить его менеджером аутентификации на основе активного каталога.

<authentication-manager>
    <authentication-provider ref="ldapActiveDirectoryAuthProvider"/>
</authentication-manager>   

Я знаю, что пользователи находятся в этом каталоге для AD:

OU = Пользователи, OU = Z3, DC = i1, DC = z12, DC = r1, DC = net

и группы находятся в:

OU = группы, OU = Z3, DC = i1, DC = z12, DC = r1, DC = net

Ключевым атрибутом Active Directory, который используется для входа в систему, является SAM-Account-Name.

Пожалуйста помоги.

Взгляните на Справочник по безопасности Spring!

Глава 19.5 Аутентификация Active Directory